On Thu, 9 Dec 2010, Michael Povolotskyi wrote:

> My problem is that the coarse mesh cannot fit the on one CPU.
> Therefore I'd like to create it in parallel in a distributed way.
> Is this possible?

The good news:

ParallelMesh was designed to make this possible.
MeshBase::add_point()/add_elem() let you create new mesh nodes and
elements that are preassigned to specific processors and that don't
necessarily have to exist, even from step one, on other processors,
and the ParallelMesh routines will let these unstructured submesh
chunks still behave as a whole consistent mesh.

The bad news:

You'll probably have to set node and element ids manually in the
initial creation step, and you'll need to explicitly remember to
create all semilocal objects on every processor that needs them - this
may be a lot of bookkeeping depending on your mesh.

Nobody's ever done this before.  Distributed mesh usage is already
undertested (it's not even in our regular continuous regression test
suite at the moment); for distributed mesh creation you'd be the first
user I know of.


You may find it easier to do the mesh creation from another program
that can save to Nemesis format and read it into libMesh from that?
IIRC the mesh reading is currently serialized, but it's done in chunks
(which are freed after being distributed off the root node) to
conserve memory, so if memory-per-node is your limitation then that
will probably get around it.
---
Roy

------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to