dune-uggrid issueshttps://gitlab.dune-project.org/staging/dune-uggrid/-/issues2023-11-08T08:50:16Zhttps://gitlab.dune-project.org/staging/dune-uggrid/-/issues/61DropMarks in refine.cc disabled on purpose?2023-11-08T08:50:16ZChristoph GrüningerDropMarks in refine.cc disabled on purpose?27 years ago Stefan Lang disabled `DropMarks` with 82e4d9f7b4651eaccb3dde47b8dfbc98fa3d5599. The resulting code is misleading, as the return statement is easily overlooked.
We should investigate, if this commit was on purpose or only a ...27 years ago Stefan Lang disabled `DropMarks` with 82e4d9f7b4651eaccb3dde47b8dfbc98fa3d5599. The resulting code is misleading, as the return statement is easily overlooked.
We should investigate, if this commit was on purpose or only a temporary fixup. If it is okay, we should get rid of `DropMarks` altogether.https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/60Begin iterator takes too much time2023-09-29T12:45:46ZSantiago Ospina De Los Ríossospinar@gmail.comBegin iterator takes too much timeWhile doing some micro benchmarks I noticed that the `begin()` iterator of leaf grid view takes a lot of time compared to the grid loop. This only affects grid loops that have little work per entity. In my measurements, `auto it = gv.tem...While doing some micro benchmarks I noticed that the `begin()` iterator of leaf grid view takes a lot of time compared to the grid loop. This only affects grid loops that have little work per entity. In my measurements, `auto it = gv.template begin<0>();` takes between 10% and 27% of the loop time. I have seen this on grids with any global refinement. I don't know how this affects other kind of refinements.
The following code can be used to test this. I tried this on `test-ug`
```c++
volatile void const * do_not_optimize;
template<typename GridView>
void iteratorTest(GridView gv) {
std::cout << "***********************************" << std::endl;
std::cout << "gv.size(0) := " << gv.size(0) << std::endl;
Dune::Timer timer;
auto it = gv.template begin<0>();
auto begin_time = timer.elapsed();
timer.reset();
auto end_it = gv.template end<0>();
auto end_time = timer.elapsed();
timer.reset();
for (; it != end_it; it++) {
do_not_optimize = &*it;
}
auto loop_time = timer.elapsed();
auto total_time = begin_time + end_time + loop_time;
std::cout.precision(2);
std::cout << "auto it = gv.template begin<0>(); | " << std::scientific << begin_time << "s | " << std::fixed << 100*begin_time/total_time << " %" << std::endl;
std::cout << "auto end gv.template end<0>(); | " << std::scientific << end_time << "s | " << std::fixed << 100*end_time/total_time << " %" << std::endl;
std::cout << "for (; it != end_it; it++) {} | " << std::scientific << loop_time << "s | " << std::fixed << 100*loop_time/total_time << " %" << std::endl;
}
```Oliver Sanderoliver.sander@tu-dresden.deOliver Sanderoliver.sander@tu-dresden.dehttps://gitlab.dune-project.org/staging/dune-uggrid/-/issues/59allow installing dune-grid via pip2022-06-29T07:53:00ZChristian Engwerallow installing dune-grid via pipIt is possible to install `dune-grid` via pip, but this `dune-grid` version then does not include any uggrid support.
I'm unsure where we have to add the corresponding support, but it would be good to be able to install uggrid also via ...It is possible to install `dune-grid` via pip, but this `dune-grid` version then does not include any uggrid support.
I'm unsure where we have to add the corresponding support, but it would be good to be able to install uggrid also via pip. This allows to use uggrid for example via google colab or other cloud based jupyter environments.
@samuel.burbulla do you have a suggestion how to best add support for uggrid? To some extent this boils down to a more general question of how to handle suggestions...https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/54Undefined behavior in several files2021-05-14T08:38:19ZTobias LeibnerUndefined behavior in several filesWhen compiling the dune-grid tests with clang's "-fsanitize=undefined", the following errors are reported. In the following I give the output of the mcmgmappertest, many of the other tests show the same five errors.
```
2: Test command:...When compiling the dune-grid tests with clang's "-fsanitize=undefined", the following errors are reported. In the following I give the output of the mcmgmappertest, many of the other tests show the same five errors.
```
2: Test command: build/clang-sanitizer/dune-grid/dune/grid/common/test/mcmgmappertest
2: dune-uggrid/dune/uggrid/gm/enrol.cc:262:7: runtime error: index -1 out of bounds for type 'UG::INT [4]'
2: #0 0x7f796ff9526c in UG::D2::CreateFormat(char*, int, int, int (*)(void*, char const*, char*), int (*)(void*, char const*, char*), int (*)(void*, char const*, char*), int (*)(int, void*, char const*, char*), int (*)(int, void*, char const*, char*), int, UG::D2::VectorDescriptor*, int, UG::D2::MatrixDescriptor*, short*, int (*) [4], int, int) dune-uggrid/dune/uggrid/gm/enrol.cc:262:7
2: #1 0x7f796fee36ce in UG::D2::CreateFormatCmd(int, char**) dune-uggrid/dune/uggrid/numerics/formats.cc:1946:15
2: #2 0x7f7972f1b0b2 in Dune::UG_NS<2>::CreateFormatCmd(int, char**) dune-grid/dune/grid/uggrid/ugwrapper.hh:1119:14
2: #3 0x7f7972f19aee in Dune::UGGrid<2>::UGGrid(Dune::Communication<ompi_communicator_t*>) dune-grid/dune/grid/uggrid/uggrid.cc:106:11
2: #4 0x7f7973029ebf in Dune::GridFactory<Dune::UGGrid<2> >::GridFactory() dune-grid/dune/grid/uggrid/uggridfactory.cc:79:15
2: #5 0x629e66 in Dune::ToUniquePtr<Dune::UGGrid<2> > Dune::make2DHybridTestGrid<Dune::UGGrid<2> >() dune-grid/dune/grid/common/test/../../../../doc/grids/gridfactory/hybridtestgrids.hh:25:27
2: #6 0x628475 in main dune-grid/dune/grid/common/test/mcmgmappertest.cc:357:32
2: #7 0x7f796deb90b2 in __libc_start_main /build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16
2: #8 0x57d8ad in _start (build/clang-sanitizer/dune-grid/dune/grid/common/test/mcmgmappertest+0x57d8ad)
2: SUMMARY: UndefinedBehaviorSanitizer: out-of-bounds-index dune-uggrid/dune/uggrid/gm/enrol.cc:262:7
2: dune-uggrid/dune/uggrid/gm/enrol.cc:263:7: runtime error: index -1 out of bounds for type 'UG::INT [4]'
2: #0 0x7f796ff954c5 in UG::D2::CreateFormat(char*, int, int, int (*)(void*, char const*, char*), int (*)(void*, char const*, char*), int (*)(void*, char const*, char*), int (*)(int, void*, char const*, char*), int (*)(int, void*, char const*, char*), int, UG::D2::VectorDescriptor*, int, UG::D2::MatrixDescriptor*, short*, int (*) [4], int, int) dune-uggrid/dune/uggrid/gm/enrol.cc:263:7
2: #1 0x7f796fee36ce in UG::D2::CreateFormatCmd(int, char**) dune-uggrid/dune/uggrid/numerics/formats.cc:1946:15
2: #2 0x7f7972f1b0b2 in Dune::UG_NS<2>::CreateFormatCmd(int, char**) dune-grid/dune/grid/uggrid/ugwrapper.hh:1119:14
2: #3 0x7f7972f19aee in Dune::UGGrid<2>::UGGrid(Dune::Communication<ompi_communicator_t*>) dune-grid/dune/grid/uggrid/uggrid.cc:106:11
2: #4 0x7f7973029ebf in Dune::GridFactory<Dune::UGGrid<2> >::GridFactory() dune-grid/dune/grid/uggrid/uggridfactory.cc:79:15
2: #5 0x629e66 in Dune::ToUniquePtr<Dune::UGGrid<2> > Dune::make2DHybridTestGrid<Dune::UGGrid<2> >() dune-grid/dune/grid/common/test/../../../../doc/grids/gridfactory/hybridtestgrids.hh:25:27
2: #6 0x628475 in main dune-grid/dune/grid/common/test/mcmgmappertest.cc:357:32
2: #7 0x7f796deb90b2 in __libc_start_main /build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16
2: #8 0x57d8ad in _start (build/clang-sanitizer/dune-grid/dune/grid/common/test/mcmgmappertest+0x57d8ad)
SUMMARY: UndefinedBehaviorSanitizer: out-of-bounds-index dune-uggrid/dune/uggrid/gm/enrol.cc:263:7
2: dune-uggrid/dune/uggrid/gm/gm.h:1587:26: runtime error: applying non-zero offset 18446743819571280256 to null pointer
2: #0 0x7f79701daec2 in auto UG::D2::multigrid::FaceHasher::operator()(UG::D2::multigrid::FaceNodes const&) const::'lambda'(auto, auto)::operator()<int, UG::D2::node*>(auto, auto) const dune-uggrid/dune/uggrid/gm/gm.h:1587:26
2: #1 0x7f79701dabd4 in auto std::accumulate<UG::D2::node* const*, int, UG::D2::multigrid::FaceHasher::operator()(UG::D2::multigrid::FaceNodes const&) const::'lambda'(auto, auto)>(auto, auto, auto, UG::D2::multigrid::FaceHasher::operator()(UG::D2::multigrid::FaceNodes const&) const::'lambda'(auto, auto)) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_numeric.h:166:11
2: #2 0x7f79701da973 in UG::D2::multigrid::FaceHasher::operator()(UG::D2::multigrid::FaceNodes const&) const dune-uggrid/dune/uggrid/gm/gm.h:1585:14
2: #3 0x7f79701d8dfb in std::__detail::_Hash_code_base<UG::D2::multigrid::FaceNodes, std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> >, std::__detail::_Select1st, UG::D2::multigrid::FaceHasher, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, true>::_M_hash_code(UG::D2::multigrid::FaceNodes const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable_policy.h:1384:9
2: #4 0x7f79701d816c in std::pair<std::__detail::_Node_iterator<std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> >, false, true>, bool> std::_Hashtable<UG::D2::multigrid::FaceNodes, std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> >, std::allocator<std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> > >, std::__detail::_Select1st, std::equal_to<UG::D2::multigrid::FaceNodes>, UG::D2::multigrid::FaceHasher, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_emplace<UG::D2::multigrid::FaceNodes&, std::pair<UG::D2::element*, int> >(std::integral_constant<bool, true>, UG::D2::multigrid::FaceNodes&, std::pair<UG::D2::element*, int>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h:1643:21
2: #5 0x7f79701d79f6 in std::pair<std::__detail::_Node_iterator<std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> >, false, true>, bool> std::_Hashtable<UG::D2::multigrid::FaceNodes, std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> >, std::allocator<std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> > >, std::__detail::_Select1st, std::equal_to<UG::D2::multigrid::FaceNodes>, UG::D2::multigrid::FaceHasher, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::emplace<UG::D2::multigrid::FaceNodes&, std::pair<UG::D2::element*, int> >(UG::D2::multigrid::FaceNodes&, std::pair<UG::D2::element*, int>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/hashtable.h:749:11
2: #6 0x7f79701d29bc in std::pair<std::__detail::_Node_iterator<std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> >, false, true>, bool> std::unordered_map<UG::D2::multigrid::FaceNodes, std::pair<UG::D2::element*, int>, UG::D2::multigrid::FaceHasher, std::equal_to<UG::D2::multigrid::FaceNodes>, std::allocator<std::pair<UG::D2::multigrid::FaceNodes const, std::pair<UG::D2::element*, int> > > >::emplace<UG::D2::multigrid::FaceNodes&, std::pair<UG::D2::element*, int> >(UG::D2::multigrid::FaceNodes&, std::pair<UG::D2::element*, int>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unordered_map.h:388:16
2: #7 0x7f79701406a0 in NeighborSearch_O_n(int, UG::D2::element*, UG::D2::node**, UG::D2::multigrid*, int*, UG::D2::element**) dune-uggrid/dune/uggrid/gm/ugm.cc:4599:34
2: #8 0x7f797013c04d in UG::D2::InsertElement(UG::D2::grid*, int, UG::D2::node**, UG::D2::element**, int*, int*) dune-uggrid/dune/uggrid/gm/ugm.cc:4861:5
2: #9 0x7f7973047458 in Dune::GridFactory<Dune::UGGrid<2> >::createGrid() dune-grid/dune/grid/uggrid/uggridfactory.cc:551:9
2: #10 0x62afe2 in Dune::ToUniquePtr<Dune::UGGrid<2> > Dune::make2DHybridTestGrid<Dune::UGGrid<2> >() dune-grid/dune/grid/common/test/../../../../doc/grids/gridfactory/hybridtestgrids.hh:87:20
2: #11 0x628475 in main dune-grid/dune/grid/common/test/mcmgmappertest.cc:357:32
2: #12 0x7f796deb90b2 in __libc_start_main /build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16
2: #13 0x57d8ad in _start (build/clang-sanitizer/dune-grid/dune/grid/common/test/mcmgmappertest+0x57d8ad)
2:
2: SUMMARY: UndefinedBehaviorSanitizer: nullptr-with-nonzero-offset dune-uggrid/dune/uggrid/gm/gm.h:1587:26
2: dune-uggrid/dune/uggrid/gm/ugm.cc:3735:5: runtime error: left shift of 17 by 28 places cannot be represented in type 'UG::INT' (aka 'int')
2: #0 0x7f79713f60d2 in UG::D3::DisposeElement(UG::D3::grid*, UG::D3::element*, int) dune-uggrid/dune/uggrid/gm/ugm.cc:3735:5
2: #1 0x7f79716b5c08 in UnrefineElement(UG::D3::grid*, UG::D3::element*) dune-uggrid/dune/uggrid/gm/refine.cc:3401:9
2: #2 0x7f79716af222 in AdaptLocalGrid(UG::D3::grid*, int*) dune-uggrid/dune/uggrid/gm/refine.cc:5747:11
2: #3 0x7f797164ef18 in AdaptGrid(UG::D3::grid*, int, int, int, int*) dune-uggrid/dune/uggrid/gm/refine.cc:5892:9
2: #4 0x7f7971640f3d in UG::D3::AdaptMultiGrid(UG::D3::multigrid*, int, int, int) dune-uggrid/dune/uggrid/gm/refine.cc:6619:11
2: #5 0x7f7972f44f8c in Dune::UGGrid<3>::adapt() dune-grid/dune/grid/uggrid/uggrid.cc:309:12
2: #6 0x7f7972f5842f in Dune::UGGrid<3>::globalRefine(int) dune-grid/dune/grid/uggrid/uggrid.cc:346:5
2: #7 0x6289e6 in main dune-grid/dune/grid/common/test/mcmgmappertest.cc:375:11
2: #8 0x7f796deb90b2 in __libc_start_main /build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16
2: #9 0x57d8ad in _start (build/clang-sanitizer/dune-grid/dune/grid/common/test/mcmgmappertest+0x57d8ad)
2:
2: SUMMARY: UndefinedBehaviorSanitizer: invalid-shift-base dune-uggrid/dune/uggrid/gm/ugm.cc:3735:5
2: dune-uggrid/dune/uggrid/gm/ugm.cc:3741:5: runtime error: left shift of 18 by 28 places cannot be represented in type 'UG::INT' (aka 'int')
2: #0 0x7f79713f6aeb in UG::D3::DisposeElement(UG::D3::grid*, UG::D3::element*, int) dune-uggrid/dune/uggrid/gm/ugm.cc:3741:5
2: #1 0x7f79716b5c08 in UnrefineElement(UG::D3::grid*, UG::D3::element*) dune-uggrid/dune/uggrid/gm/refine.cc:3401:9
2: #2 0x7f79716af222 in AdaptLocalGrid(UG::D3::grid*, int*) dune-uggrid/dune/uggrid/gm/refine.cc:5747:11
2: #3 0x7f797164ef18 in AdaptGrid(UG::D3::grid*, int, int, int, int*) dune-uggrid/dune/uggrid/gm/refine.cc:5892:9
2: #4 0x7f7971640f3d in UG::D3::AdaptMultiGrid(UG::D3::multigrid*, int, int, int) dune-uggrid/dune/uggrid/gm/refine.cc:6619:11
2: #5 0x7f7972f44f8c in Dune::UGGrid<3>::adapt() dune-grid/dune/grid/uggrid/uggrid.cc:309:12
2: #6 0x7f7972f5842f in Dune::UGGrid<3>::globalRefine(int) dune-grid/dune/grid/uggrid/uggrid.cc:346:5
2: #7 0x6289e6 in main dune-grid/dune/grid/common/test/mcmgmappertest.cc:375:11
2: #8 0x7f796deb90b2 in __libc_start_main /build/glibc-YYA7BZ/glibc-2.31/csu/../csu/libc-start.c:308:16
2: #9 0x57d8ad in _start (build/clang-sanitizer/dune-grid/dune/grid/common/test/mcmgmappertest+0x57d8ad)
2:
2: SUMMARY: UndefinedBehaviorSanitizer: invalid-shift-base dune-uggrid/dune/uggrid/gm/ugm.cc:3741:5 in
```https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/53Warnings about undefined behavior and too large allocations2022-02-08T11:13:35ZSimon PraetoriusWarnings about undefined behavior and too large allocationsI get the following warnings when compiling dune-ug:
```
dune-uggrid/dune/uggrid/gm/ugio.cc:3366:39: warning: argument 1 value »18446744073709551614« exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
3366 | ...I get the following warnings when compiling dune-ug:
```
dune-uggrid/dune/uggrid/gm/ugio.cc:3366:39: warning: argument 1 value »18446744073709551614« exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
3366 | ProcList = (unsigned short*)malloc(PROCLISTSIZE*sizeof(unsigned short));
```
and
```
dune-uggrid/dune/uggrid/gm/er.cc:1666:50: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
1666 | sonData->corners[k] = ur->sons[j].corners[k];
dune-uggrid/dune/uggrid/gm/er.cc:1668:40: warning: iteration 4 invokes undefined behavior [-Waggressive-loop-optimizations]
1668 | sonData->nb[k] = ur->sons[j].nb[k];
```
To look at these undefined behaviours and exceeding of maximal allocation size could be important, I think.https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/49Replace ModelP by HAVE_MPI2019-12-14T16:12:22ZChristoph GrüningerReplace ModelP by HAVE_MPIIn Dune module `HAVE_MPI` indicates the parallel case. dune-uggrid uses `ModelP`. We should drop the latter and use the variable of the other Dune modules.In Dune module `HAVE_MPI` indicates the parallel case. dune-uggrid uses `ModelP`. We should drop the latter and use the variable of the other Dune modules.https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/45parallel grids with 0 elements on a process2019-06-26T08:26:12ZAnsgar Burchardtansgar.burchardt@tu-dresden.deparallel grids with 0 elements on a processWe had confusion when load balancing resulted in a parallel grid with 0 elements on a process (the grid only had very few elements in total to make it easier to find bugs).
This isn't necessary a bug in UGGrid, but it might helpful to gi...We had confusion when load balancing resulted in a parallel grid with 0 elements on a process (the grid only had very few elements in total to make it easier to find bugs).
This isn't necessary a bug in UGGrid, but it might helpful to give an error when this happens. There can be a switch to allow this if someone specifically wants to allow this.https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/37`setIndices` is extremely slow2018-02-19T15:49:57ZChristian Engwer`setIndices` is extremely slowAlthough the mentioned code is in dune-grid, I think this is the right spot to post the issue, as I believe the proper way to fix it requires support in the UG core.
When setting up a grid via the grid factory, 60% of the time are spent...Although the mentioned code is in dune-grid, I think this is the right spot to post the issue, as I believe the proper way to fix it requires support in the UG core.
When setting up a grid via the grid factory, 60% of the time are spent in setting up the indices. Perhaps we can improve this by adding support in dune-uggrid directly.https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/30Unify IdCounters2017-08-27T20:18:15ZOliver Sanderoliver.sander@tu-dresden.deUnify IdCountersThe struct 'multigrid' (in gm.h) contains five counters:
INT vertIdCounter;
INT nodeIdCounter;
INT elemIdCounter;
INT edgeIdCounter;
INT vectorIdCounter;
These are used to produce the 'id' fields in the respective o...The struct 'multigrid' (in gm.h) contains five counters:
INT vertIdCounter;
INT nodeIdCounter;
INT elemIdCounter;
INT edgeIdCounter;
INT vectorIdCounter;
These are used to produce the 'id' fields in the respective objects (also in gm.h).
However, these id fields are nowadays really only used for the dune-grid IdSets (this needs to be checked). Those want a single id for all entities, not one for each codimension. The five counters could then be replaced by a single idCounter.https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/28Creation (and destruction) of several UG grids fails with segmentation fault2018-03-19T16:49:04ZJakob SchneckCreation (and destruction) of several UG grids fails with segmentation faultMaybe this is an already known issue, but creation (and destruction) of several grids (as in the example [threeUgGrids.cpp](/uploads/ca5d1ec9e4b4c274a13ab8b383fe7f5f/threeUgGrids.cpp)) fails with a segmentation fault for me. See also the...Maybe this is an already known issue, but creation (and destruction) of several grids (as in the example [threeUgGrids.cpp](/uploads/ca5d1ec9e4b4c274a13ab8b383fe7f5f/threeUgGrids.cpp)) fails with a segmentation fault for me. See also the corresponding valgrind output [valgrind.out](/uploads/cc86512a6f016074d74bbec57b7a322c/valgrind.out).https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/27Bun in GmshReader with multiprocessor2017-07-09T14:12:16ZAlireza MazaheriBun in GmshReader with multiprocessorThere seems to be a bug with the GmshReader when # processors > 1. Please see the log files (one of the logs is with debug flags on).
Compiler: GCC 6.2
MPI environment: MPT (the SGI MPI) version 2.15r20
[gmshtest-uggrid_Debug.log.zip](...There seems to be a bug with the GmshReader when # processors > 1. Please see the log files (one of the logs is with debug flags on).
Compiler: GCC 6.2
MPI environment: MPT (the SGI MPI) version 2.15r20
[gmshtest-uggrid_Debug.log.zip](/uploads/b9b72bfb8c38463b22ae291d6ba63cc2/gmshtest-uggrid_Debug.log.zip)
[gmshtest-uggrid.log.zip](/uploads/fd062903e0acfacb81ded6fd5b212908/gmshtest-uggrid.log.zip)https://gitlab.dune-project.org/staging/dune-uggrid/-/issues/25Local red-green refinement copies elements2017-06-12T19:22:45ZCarsten Gräsergraeser@math.fau.deLocal red-green refinement copies elementsAccording to the documentation of `Dune::UGGrid::LOCAL` new levels will only contain refined elements and closures. However, with red-green refinement there are additionally two layers of copied elements.
This may be on purpose to ease ...According to the documentation of `Dune::UGGrid::LOCAL` new levels will only contain refined elements and closures. However, with red-green refinement there are additionally two layers of copied elements.
This may be on purpose to ease the implementation of adaptive geometric multigrid. Hence, it's either a bug in dune-uggrid or a bug in the documentation of `Dune::UGGrid`. In the latter case it would also be interesting if this can be disabled.