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

Reply via email to