MeshPartitioning throws assertion

Asked by Simon Praetorius

I'm very new to FEniCS/Dolfin so hopefully this question is not a trivial one :)

I've implemented a sixth order pde (advected phase-field crystal model) that works fine in sequential processing, but when I start the program using mpirun with two (or more) processors the simulation crashes shortly after the beginning with
/.../FEniCS/src/dolfin-0.9.9/dolfin/mesh/MeshPartitioning.cpp:122: static void dolfin::MeshPartitioning::number_entities(const dolfin::Mesh&, dolfin::uint): Assertion `global_vertex_indices' failed.

Since I've not much knowlage about dolfin and parallel execution, I've not changed anything in my code for the parallel task. The cahn-hilliard demo works fine in parallel. Is there anything that must be considered in the programming for parallel execution with dolfin? Is it ok to use adaptive meshes in parallel? Is there something like repartitioning or mesh balancing implemented, if I would use an adaption loop in my simulations?

Some information about my environment:
ubuntu 10.10 (amd64 - version), quad-core amd phenom cpu
gcc 4.4.5, libcgal5_3.6.1-2, petsc-3.1-p4, dolfin 0.9.9, ffc 0.9.4

the program stops somewhere around the commands
    ns_pfc::FunctionSpace V(mesh);
    ns_pfc::CoefficientSpace_rho_old V0(mesh);
    ns_pfc::CoefficientSpace_vel W0(mesh);
The output messages before the error:
[...]
Process 0: Number of global vertices: 5551
Process 0: Number of global cells: 10800
Process 1: Partitioned mesh, edge cut is 61.
Process 0: Partitioned mesh, edge cut is 61.
Process 1: refine mesh... Creating directory "output".
Process 0: refine mesh... Creating directory "output".
Process 1: [ ok ]
Process 0: [ ok ]
Process 1: Vertices: 41737
Process 1: FunctionSpaces...
Process 0: Vertices: 45509
Process 0: FunctionSpaces...

where "refine mesh..." means that the a standard rectangle mesh will be refined locally using cell-marker and MeshFunction. The message "FunctionSpaces..." comes direktly before definition of FunctionSpace V(mesh).

It would be great to receive any answers to my question :)

Question information

Language:
English Edit question
Status:
Solved
For:
DOLFIN Edit question
Assignee:
No assignee Edit question
Solved by:
Garth Wells
Solved:
Last query:
Last reply:
Revision history for this message
Best Garth Wells (garth-wells) said :
#1

Adaptive meshes are not supported in parallel (yet). We'll add this in the future.

Revision history for this message
Simon Praetorius (simip) said :
#2

ok, I've disabled all refinement and it works! But if global refinement is used only, the same error occures. So I assume that the mesh partitioning will be performed before any refinement can be performed. It's a pity that adaptive meshes are not supported at the moment :(
But ok, I will try to use a finer initial mesh for testing purposes for now.

Revision history for this message
Simon Praetorius (simip) said :
#3

Thanks Garth Wells, that solved my question.