Error during refinement of a parallel distibuted quarter hyperball

17 views
Skip to first unread message

Stefan Käßmair

unread,
Oct 4, 2019, 1:12:22 PM10/4/19
to deal.II User Group
Dear all,

during the refinement of a quarter hyper ball in 3D in debug mode, I receive the following error when running on a single core (mpirun -np 1):

An error occurred in line <2764> of file </path/to/dealii-9.0.1/source/distributed/tria.cc> in function
    void dealii::parallel::distributed::Triangulation<dim, spacedim>::copy_local_forest_to_triangulation() [with int dim = 3; int spacedim = 3]
The violated condition was:
    static_cast<unsigned int>(parallel_forest->local_num_quadrants) == total_local_cells


When running on multiple cores I hit another error message (probably because there are no ghosts when using only one core):

An error occurred in line <2670> of file </path/to/dealii-9.0.1/source/distributed/tria.cc> in function
    void dealii::parallel::distributed::Triangulation<dim, spacedim>::copy_local_forest_to_triangulation() [with int dim = 3; int spacedim = 3]
The violated condition was:
    num_ghosts == parallel_ghost->ghosts.elem_cou
nt

Currently I am using deal.II 9.0.1.
This is the relevant part of the code (a full MWE is attached):
   
        const unsigned int dim = 3;

        parallel::distributed::Triangulation<dim> tria (
                          mpi_communicator,
                          typename Triangulation<dim>::MeshSmoothing(Triangulation<dim>::smoothing_on_refinement),
                          parallel::distributed::Triangulation<dim>::default_setting);

        GridGenerator::quarter_hyper_ball(tria);

        for (unsigned int i_refinement = 0; i_refinement < 6; ++i_refinement)
        {
            auto cell = tria.begin_active();
            auto endc = tria.end();

            for (; cell!=endc; ++cell)
                if(cell->is_locally_owned() && cell->at_boundary())
                    cell->set_refine_flag ();

            tria.prepare_coarsening_and_refinement ();
            tria.execute_coarsening_and_refinement ();
        }

Is there something wrong with my code? Or maybe with my installation (can anyone confirm the error)?
The code works in 2D but crashes in 3D. When the number of refinement cycles is reduced to 4 instead of 6, it also works.
Out of curiosity, I've tried using GridGenerator::hyper_cube instead of the hyper_ball, there the code works just fine in 2D and 3D.

I would really appreciate if anyone can help me with this.

Kind regards,
Stefan
mwe.cc

Daniel Arndt

unread,
Oct 5, 2019, 12:31:52 PM10/5/19
to dea...@googlegroups.com
Stefan,

I am getting

Abort: Expected '(int) edge_trees - (int) ta->elem_count': 'p8est_find_edge_transform_internal (conn, itree, iedge, ei, conn->edge_to_tree + ettae, conn->edge_to_edge + ettae, edge_trees)'
Abort: /home/darndt/Sources/p4est-2.2/src/p8est_connectivity.c:1111
Abort
[lap115343:18334] *** Process received signal ***
[lap115343:18334] Signal: Aborted (6)
[lap115343:18334] Signal code:  (-6)
[lap115343:18334] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20)[0x7ff7d31b2f20]
[lap115343:18334] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7ff7d31b2e97]
[lap115343:18334] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7ff7d31b4801]
[lap115343:18334] [ 3] /home/darndt/p4est-2.2/DEBUG/lib/libsc-2.2.so(sc_abort_verbose+0x0)[0x7ff7da6a1070]
[lap115343:18334] [ 4] /home/darndt/p4est-2.2/DEBUG/lib/libsc-2.2.so(sc_abort+0xd)[0x7ff7da6a0e5b]
[lap115343:18334] [ 5] /home/darndt/p4est-2.2/DEBUG/lib/libsc-2.2.so(sc_abort_verbosef+0x0)[0x7ff7da6a1104]
[lap115343:18334] [ 6] /home/darndt/p4est-2.2/DEBUG/lib/libp4est-2.2.so(p8est_find_edge_transform+0x1f4)[0x7ff7da9604b9]
[lap115343:18334] [ 7] /home/darndt/p4est-2.2/DEBUG/lib/libp4est-2.2.so(p8est_connectivity_is_valid+0x6a0)[0x7ff7da9547ed]
[lap115343:18334] [ 8] /home/darndt/dealii/build/lib/libdeal_II.g.so.9.2.0-pre(_ZN6dealii8parallel11distributed13TriangulationILi3ELi3EE31copy_new_triangulation_to_p4estESt17integral_constantIiLi3EE+0x3db)[0x7ff7e57cf53b]
[lap115343:18334] [ 9] /home/darndt/dealii/build/lib/libdeal_II.g.so.9.2.0-pre(_ZN6dealii8parallel11distributed13TriangulationILi3ELi3EE20create_triangulationERKSt6vectorINS_5PointILi3EdEESaIS6_EERKS4_INS_8CellDataILi3EEESaISC_EERKNS_11SubCellDataE+0x27)[0x7ff7e57edad7]
[lap115343:18334] [10] /home/darndt/dealii/build/lib/libdeal_II.g.so.9.2.0-pre(_ZN6dealii13GridGenerator18quarter_hyper_ballILi3EEEvRNS_13TriangulationIXT_EXT_EEERKNS_5PointIXT_EdEEd+0x647)[0x7ff7e4e20f47]
[lap115343:18334] [11] ./mwe(main+0x6c)[0x406ecc]
[lap115343:18334] [12] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7ff7d3195b97]
[lap115343:18334] [13] ./mwe(_start+0x2a)[0x406d9a]
[lap115343:18334] *** End of error message ***

when running your code. This might be related to https://github.com/dealii/dealii/issues/7428. Would you mind opening an issue for this at https://github.com/dealii/dealii/issues?

Best,
Daniel

--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/8d86f847-dab7-4d49-9d45-e2c83b5f9fcd%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages