Hi,

We're running into a intermittent deadlock when calling 
assign_global_indices().  The problem only appears on >= 5 processors, 
and even then it only appears intermittently.

Here's the error we see:

  Assertion `hi <= node_upper_bounds[communicator.rank()]' failed.
hi = 887794606_2212644264_162978473
node_upper_bounds[communicator.rank()] = 583640776_2377824377_539889346
[0] src/mesh/mesh_communication_global_indices.C, line 412, compiled Oct 
29 2013 at 08:06:24

Valgrind for this code returns no problems, both with and without the 
intermittent error.

The code generating this error is as follows:

int main(void) {

   //create a mesh
   const int dim=3;
   Mesh mesh(dim);
   MeshTools::Generation::build_cube(mesh,
   5000, 5000, 5000, //increase this if needed to generate the bug.
   -1,1,
   -1,1,
   -1,1,
   HEX8
   );

   MeshCommunication().broadcast(mesh);
   mesh.allow_renumbering(false);
   mesh.partitioner() = AutoPtr<Partitioner>(new LinearPartitioner);
   mesh.prepare_for_use();
   mesh.all_second_order(true); //not sure if this is strictly 
necessary, but we need 2nd order elements for our application. Included 
for completeness.

   using libMesh::MeshTools::Private::globally_renumber_nodes_and_elements;
   globally_renumber_nodes_and_elements(mesh);

   mesh.fix_broken_node_and_element_numbering();

   return 0;
}


We need this code in order to write partition-agnostic custom checkpoint 
files for a cardiac simulation.  I wrote this code based on the file IO 
within the libmesh internals.  If it's broken for me, input/output might 
also be broken for others.

------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to