[MOAB-dev] Question: Exchange part of mesh so that it is available to all processes

Hong-Jun Kim hongjun at mcs.anl.gov
Mon Nov 28 09:55:00 CST 2011


I think "exchange_owned_meshs" is the right one for you.

You should give a pair of processor and entity information with "exchange_procs" and "exchange_ents" to the function.
If you want to exchange mesh entities(entity 1~10) from p0 to p1 and mesh entities(5~17) from p2 to p0, you can make the argument list as follows.

p0 : exchange_procs(1), exchange_ents(1~10)
p2 : exchange_procs(0), exchange_ents(5~17)

To exchange remote handle information, you can turn on "store_remote_handles" option.
In addition, tag information is automatically exchanged by the function.

Thanks.

-----------------------------
Hong-Jun Kim
Post-doc researcher
MCS, Argonne National Laboratory
9700 S. Cass Ave. B240/R2147
Argonne, IL 60439
630-252-4791
hongjun at mcs.anl.gov
-----------------------------

----- Original Message -----
> From: "Markus Mayr" <markus.mayr at tuwien.ac.at>
> To: moab-dev at mcs.anl.gov
> Sent: Monday, November 28, 2011 9:06:17 AM
> Subject: [MOAB-dev] Question: Exchange part of mesh so that it is available to all processes
> Dear list,
> 
> I have got a question regarding a distributed mesh.
> 
> Although I know this is necessarily inefficient, I would like to make
> a
> part of the mesh available to all processes, more precisely the
> boundary
> faces and vertices of my volume mesh.
> 
> I do not know which function I am supposed to use or even if there is
> a
> function that does what I want. As far as I can see, send_/recv_
> functions send a message from one process to another one, so these
> functions probably do not what I want.
> 
> broadcast_entities might be the right thing, maybe something like
> broadcast_entities(mpi_rank, owned_boundary_entities)
> results in owned_boundary_entities containing *all* boundary entities?
> But on the other hand, according to the documentation all processes
> should know about the whole mesh, which is not the case for me. Apart
> from that I do not know what remote handles are.
> 
> The other option would be exchange_owned_mesh(s), I think. Is
> exchange_procs simply a list of all processes involved and
> exchange_ents
> a list containing the local part of each process right after calling
> that function? What about remote handles? Am I supposed to use
> exchange_owned_mesh or exchange_owned_meshs?
> 
> In either case: Can I exchange tags using the exchange_tags functions
> afterwards?
> 
> Maybe someone can help me?
> 
> Thanks!
> 
> Best regards,
> Markus Mayr


More information about the moab-dev mailing list