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

Markus Mayr markus.mayr at tuwien.ac.at
Mon Nov 28 09:06:17 CST 2011


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