On Thu, 10 Mar 2016, Thiago Milanetto Schlittler wrote:

>    In my code, I have a situation where each processor needs a full
> copy of a rather small mesh. I seems like
> libMesh::ParallelMesh::allgather() does the trick,

It does, but if you're serializing a ParallelMesh then it's more
efficient to just use a SerialMesh in the first place.  You can mix
the two by specifying the mesh types in place of "Mesh" in application
codes; our configure option just indicates which class Mesh is a shim
for.

> but the documentation
> indicates to do not use this class "unless you're developing or
> debugging it". Still, I've seen other examples of people using it in
> this mailing list. So, is it safe to use this class in production code?

At the moment, the answer depends on what you're using it *with*.  On
the one hand, we run dozens of regression tests in both the libMesh
core and in libMesh apps which work fine with both SerialMesh and
ParallelMesh.  In my own codes, the only failure with ParallelMesh is
a failure in an application when we enable an integrodifferential
equation term for which my code lazily assumes the whole mesh is
visible.

On the other hand, there have been lots of examples, even recently, of
bugfixes with lesser-used and test-coverage-free features.  When I
got some real test coverage on unique_id() last November we discovered
it was horribly broken with ParallelMesh.  I'm currently getting test
coverage for hp refinement, and at the moment my branch to do that is
working with SerialMesh and failing with ParallelMesh.  There was a
recently uncovered bug with AdjointRefinementErrorEstimator
interaction with ParallelMesh.  So it's definitely still a riskier
class to develop with.

IMHO the recommended thing to do today is swap between SerialMesh and
ParallelMesh while developing and running small-scale problems, to
make sure that the latter isn't either responsible for or a red
herring for any application bugs, then after your code is ready to
scale up you switch to ParallelMesh.
---
Roy

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to