Fails to create simple 2d-3d grid
When reading the following dgf file mortar.dgf of a cube surface grid (2d in 3d) the intersection iterator fails because it triggers the following assert (https://gitlab.dune-project.org/extensions/dune-alugrid/-/blob/master/dune/alugrid/3d/faceutility_imp.cc#L76)
// if not true we are accessing a fake bnd
alugrid_assert ( outerElement_->isRealObject() );
backtrace
#3 0x00007ffff596aa76 in __assert_fail () from /lib64/libc.so.6
#4 0x00000000012ad104 in Dune::ALU3dGridFaceInfo<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm>::updateFaceInfo (this=0x1c31650, face=..., innerLevel=0, innerTwist=3)
at dune-alugrid/dune/alugrid/3d/faceutility_imp.cc:76
#5 0x00000000012d7d19 in Dune::ALU3dGridLevelIntersectionIterator<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const>::setNewFace (this=0x1c31650, newFace=...)
at dune-alugrid/dune/alugrid/3d/iterator_imp.cc:627
#6 0x00000000012a48c5 in Dune::ALU3dGridLevelIntersectionIterator<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const>::increment (this=0x1c31650)
at dune-alugrid/dune/alugrid/3d/iterator_imp.cc:611
#7 0x00000000012762d3 in Dune::IntersectionIteratorWrapper<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const, Dune::ALU3dGridLevelIntersectionIterator<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const> >::increment (this=0x7ffffffef378) at dune-alugrid/dune/alugrid/common/intersectioniteratorwrapper.hh:81
#8 0x000000000124348a in Dune::LevelIntersectionIteratorWrapper<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const>::increment (this=0x7ffffffef378)
at dune-alugrid/dune/alugrid/common/intersectioniteratorwrapper.hh:411
#9 0x0000000001215d7a in Dune::IntersectionIterator<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const, Dune::LevelIntersectionIteratorWrapper<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const>, Dune::LevelIntersectionWrapper<Dune::ALU3dGrid<2, 3, (Dune::ALU3dGridElementType)7, Dune::ALUGridMPIComm> const> >::operator++ (this=0x7ffffffef378) at dune-grid/dune/grid/common/intersectioniterator.hh:191
#10 0x00000000011ec1c7 in Dune::GridPtr<Dune::ALUGrid<2, 3, (Dune::ALUGridElementType)1, (Dune::ALUGridRefinementType)1, Dune::ALUGridMPIComm> >::initialize (this=0x7ffffffefcc0, dgfFactory=...)
at dune-grid/dune/grid/io/file/dgfparser/gridptr.hh:439
#11 0x00000000011b9180 in Dune::GridPtr<Dune::ALUGrid<2, 3, (Dune::ALUGridElementType)1, (Dune::ALUGridRefinementType)1, Dune::ALUGridMPIComm> >::GridPtr (this=0x7ffffffefcc0, filename=..., comm=0x196e5e0 <ompi_mpi_comm_world>)
at dune-grid/dune/grid/io/file/dgfparser/gridptr.hh:173
Is there something wrong with the file? The same error occurs if I directly use the grid factory with insertVertex
and insertElement
. Can't ALUGrid automatically determine the boundary segments?