I think my problem must be in my original mesh format. This simple code has the same problem:
int main (int argc, char** argv) { // Initialize libraries. LibMeshInit init (argc, argv); // Skip adaptive examples on a non-adaptive libMesh build #ifndef LIBMESH_ENABLE_AMR libmesh_example_requires(false, "--enable-amr"); #endif // Skip this default-2D example if libMesh was compiled as 1D-only. libmesh_example_requires(2 <= LIBMESH_DIM, "2D support"); libMesh::out<< "Reading in and building the mesh" << std::endl; const unsigned int dim = 2; // Create a mesh, with dimension to be overridden later, on the // default MPI communicator. Mesh mesh(init.comm(),dim); // Read in the mesh mesh.read("cantilever.xda"); // Create a mesh refinement object to do the initial uniform refinements // on the coarse grid read in from lshaped.xda MeshRefinement initial_uniform_refinements(mesh); initial_uniform_refinements.uniformly_refine(1); mesh.write("save.xda"); return 0; } My mesh cantilever.xda is DEAL 003:003 2 # Num. Elements 6 # Num. Nodes 8 # Length of connectivity vector (Num elements * Num Nodes) 2 # Num. Boundary Conds. 65536 # String Size (ignore) 1 # Num. Element Types. We just have quads, no triangles 5 # Element types in each block. 5 Corresponds to QUAD4 in the libMeshEnums::ElemType namespace 2 # Num. of elements in each block. Id String Title String 0 1 4 5 1 2 3 4 0. 0. 0. 50. 0. 0. 100. 0. 0. 100. 50. 0. 50. 50. 0. 0. 50. 0. 0 3 0 1 2 1 On Nov 18, 2015 15:35, "Miguel Angel Salazar de Troya" < salazardetr...@gmail.com> wrote: > I realized that my nodes id's are not continuous. Having 15 nodes in my > mesh, their id's are 0,1,2,3,4,5,6,8,10,12,14,16,18,20,22, hence why I get > that assertion error, which assumes that the nodes' id are within the > limits of the number of nodes I think. I'm going to try to get an example > that I can send and that reproduces the error. > > Miguel > On Nov 18, 2015 12:15, "Roy Stogner" <royst...@ices.utexas.edu> wrote: > >> >> On Wed, 18 Nov 2015, Miguel Angel Salazar de Troya wrote: >> >> I'm trying to output my mesh into a file with Mesh::write ("mesh.xda"). >>> Because my mesh is parallel I call Mesh::allgather () first. Then I call >>> Mesh::write("mesh.xda") which doesn't give me problems if I don't make >>> any >>> uniform refinement, however if I do, I obtain this assertion >>> >>> Assertion `(3*local_idx+2) < coords.size()' failed. >>> >>> (3*local_idx+2) = 38 >>> >>> coords.size() = 33 >>> >>> At the moment of the assertion, my mesh consists of eight elements in a >>> 4x2 >>> grid, coming from a 2x1 mesh before one single uniform refinement. Any >>> idea? >>> >> >> Not a clue. Can you boil this down into an example you can share? >> >> I tried to follow adjoint_ex3 and added >>> mesh.renumber_nodes_and_elements () before calling the write, but it >>> didn't >>> make a difference. >>> >> >> I'm not sure why adjoints_ex3 is doing that, but it shouldn't be >> necessary. >> --- >> Roy >> > ------------------------------------------------------------------------------ _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users