Core Modules issueshttps://gitlab.dune-project.org/groups/core/-/issues2022-05-06T16:25:19Zhttps://gitlab.dune-project.org/core/dune-common/-/issues/303[python] pybind11 name of FieldVector does not contain the field type2022-05-06T16:25:19ZChristian Engwer[python] pybind11 name of FieldVector does not contain the field typeThe field type changes the type of the FieldVector, but registerFieldVector only considers the dimension and does not adhere the field type.
This breaks any code using `field_type != double`.The field type changes the type of the FieldVector, but registerFieldVector only considers the dimension and does not adhere the field type.
This breaks any code using `field_type != double`.https://gitlab.dune-project.org/core/dune-common/-/issues/298Test failure alignedallocatortest on AppleClang2022-05-06T11:02:28ZTimo KochTest failure alignedallocatortest on AppleClangWith "The CXX compiler identification is AppleClang 12.0.5.12050022"
I get an `std::bad_alloc` in the `alignedallocatortest` on master.
```
Start 113: alignedallocatortest
113: Test command: dune-common/build-cmake/dune/common/test/ali...With "The CXX compiler identification is AppleClang 12.0.5.12050022"
I get an `std::bad_alloc` in the `alignedallocatortest` on master.
```
Start 113: alignedallocatortest
113: Test command: dune-common/build-cmake/dune/common/test/alignedallocatortest
113: Test timeout computed to be: 300
113: libc++abi: terminating with uncaught exception of type std::bad_alloc: std::bad_alloc
1/1 Test #113: alignedallocatortest .............Subprocess aborted***Exception: 0.02 sec
```https://gitlab.dune-project.org/core/dune-grid/-/issues/127[python] Segfault in element iterator2022-05-02T14:21:53ZTimo Koch[python] Segfault in element iteratorI'm running a freshly installed basic setup with python modules installed in my home folder. It's macOS Big Sur.
```py
#!/usr/bin/env python3
from dune.grid import structuredGrid
gridView = structuredGrid([0,0],[1,1],[5,5])
for e in g...I'm running a freshly installed basic setup with python modules installed in my home folder. It's macOS Big Sur.
```py
#!/usr/bin/env python3
from dune.grid import structuredGrid
gridView = structuredGrid([0,0],[1,1],[5,5])
for e in gridView.elements:
print(gridView.indexSet.index(e))
print("done")
```
I run this script and I get this output (shortened the output a bit where `...`)
```
0
1
2
3
...
21
22
23
24
[eduroam-193-157-160-95:15313] *** Process received signal ***
[eduroam-193-157-160-95:15313] Signal: Segmentation fault: 11 (11)
[eduroam-193-157-160-95:15313] Signal code: Address not mapped (1)
[eduroam-193-157-160-95:15313] Failing at address: 0x9
[eduroam-193-157-160-95:15313] [ 0] 0 libsystem_platform.dylib 0x00007fff203a9d7d _sigtramp + 29
[eduroam-193-157-160-95:15313] [ 1] 0 ??? 0x0000000000000000 0x0 + 0
[eduroam-193-157-160-95:15313] [ 2] 0 libstdc++.6.dylib 0x000000010dda731a _ZL16get_adjusted_ptrPKSt9type_infoS1_PPv + 74
[eduroam-193-157-160-95:15313] *** End of error message ***
Segmentation fault: 11
```
The segfault always occurs after the last element and as you can see `done` is not printed anymore.
Might be the same thing causing problems in #124?
Any help on how to get out more information would be appreciated.
I added
```
import faulthandler
faulthandler.enable()
```
which gives me
```
Fatal Python error: Segmentation fault
Current thread 0x000000010b7cae00 (most recent call first):
File "<path_to_script>", line 9 in <module>
```
and line 9 is the line with the element for-loop.
I also tried only `print(e)` to make sure this is not connected to the indexSet. The segfault persists.
Previously this had been working for me. But I haven't had time to look for the commit which might break this.https://gitlab.dune-project.org/core/dune-istl/-/issues/103BCRSMatrix deallocator seems to have a memory leak2022-05-02T12:00:49ZSantiago Ospina De Los Ríossospinar@gmail.comBCRSMatrix deallocator seems to have a memory leakWhen using an address sanitizer (`-fsanitize=address`), I get a message on matrix deconstruction saying that objects passed on delete do not match. The important bit is the size of the allocated and deallocated memory:
* size of the all...When using an address sanitizer (`-fsanitize=address`), I get a message on matrix deconstruction saying that objects passed on delete do not match. The important bit is the size of the allocated and deallocated memory:
* size of the allocated type: 19208 bytes;
* size of the deallocated type: 8 bytes.
Checking out the lines where it diagnoses the issue, allocation happens when [resting the shaped pointer to the sparsity pattern `j_`](https://gitlab.dune-project.org/core/dune-istl/-/blob/9dae4be71564781f0650c87ef8f380c4c00abe8f/dune/istl/bcrsmatrix.hh#L2245):
```c++
j_.reset(sizeAllocator_.allocate(allocationSize_),Deallocator(sizeAllocator_));
```
Now, the `Deallocator` functor in the line above looks like this:
```c++
void operator()(size_type* p) { sizeAllocator_.deallocate(p,1); }
```
The second argument refers to the size to the deallocation chunk. `1` means that it will only deallocate `1*sizeof(T)` bytes while we actually need `allocationSize_*sizeof(T)` bytes which matches with the allocated chunk of memory. So this may explain the warning. When setting the deallocator with `allocationSize_` the warning goes away. I could not find the `Deallocator` object being used elsewhere, so it seems safe to change its behaviour here. If this makes sense, I can push a MR with the fix.https://gitlab.dune-project.org/core/dune-common/-/issues/305[python][bug] Deadlock in cmakebuilder2022-04-25T08:52:36ZTimo Koch[python][bug] Deadlock in cmakebuilderCommit d3e697332dcc80fd1535c694466eda7649bb93d7 introduces a bug in the cmake builder.
`Popen.wait` deadlocks if the command produces enough output to fill the buffer. The docs clearly warns about this https://docs.python.org/3/library/s...Commit d3e697332dcc80fd1535c694466eda7649bb93d7 introduces a bug in the cmake builder.
`Popen.wait` deadlocks if the command produces enough output to fill the buffer. The docs clearly warns about this https://docs.python.org/3/library/subprocess.html#subprocess.Popen.wait. `communicate` has to be called.Timo KochTimo Kochhttps://gitlab.dune-project.org/core/dune-common/-/issues/304Messed up python compile output after !11152022-04-25T08:51:45ZTimo KochMessed up python compile output after !1115Commit eebb02805eaca397c54a82bf54789ffaf62c921e messed up the Python log output. The message differentiating between different compilation modes (`PrintCompiling`, no idea why the variable name is uppercase.., e.g. here https://gitlab.du...Commit eebb02805eaca397c54a82bf54789ffaf62c921e messed up the Python log output. The message differentiating between different compilation modes (`PrintCompiling`, no idea why the variable name is uppercase.., e.g. here https://gitlab.dune-project.org/core/dune-common/-/blob/master/python/dune/generator/cmakebuilder.py#L275) is lost because the local variable has no effect when it's in a separate function.Timo KochTimo Kochhttps://gitlab.dune-project.org/core/dune-common/-/issues/295Python tests fail with "ValueError: Invalid file object: <_io.BufferedReader ...2022-04-15T21:57:02ZChristoph GrüningerPython tests fail with "ValueError: Invalid file object: <_io.BufferedReader name=20>"Changes to code that is unrelated to Python and Python tests leads to error like
```
DUNE-INFO: Compiling HierarchicalGrid (new)
Traceback (most recent call last):
File "test_gf1.py", line 56, in <module>
gridView = structuredGri...Changes to code that is unrelated to Python and Python tests leads to error like
```
DUNE-INFO: Compiling HierarchicalGrid (new)
Traceback (most recent call last):
File "test_gf1.py", line 56, in <module>
gridView = structuredGrid([0,0],[1,1],[10,10])
File "/builds/core/dune-grid/build-cmake/python/dune/grid/core.py", line 52, in structuredGrid
return yaspGrid(domain, dimgrid=len(lower))
File "/builds/core/dune-grid/build-cmake/python/dune/grid/_grids.py", line 38, in yaspGrid
gridModule = module(includes, typeName, ctor)
File "/builds/core/dune-grid/build-cmake/python/dune/grid/grid_generator.py", line 348, in module
module = generator.load(includes, typeName, typeHash, *args, **kwargs)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/generator.py", line 169, in load
return self.post(moduleName, source, postscript, extraCMake)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/generator.py", line 121, in post
module = builder.load(moduleName, source, self.typeName[0], extraCMake)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 341, in load
self.compile(infoTxt=PrintCompiling, target=moduleName)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 237, in compile
logLevel=logging.INFO
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 215, in callCMake
_, stderr = cmake.communicate()
File "/usr/lib/python3.7/subprocess.py", line 939, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "/usr/lib/python3.7/subprocess.py", line 1672, in _communicate
selector.register(self.stdout, selectors.EVENT_READ)
File "/usr/lib/python3.7/selectors.py", line 352, in register
key = super().register(fileobj, events, data)
File "/usr/lib/python3.7/selectors.py", line 238, in register
key = SelectorKey(fileobj, self._fileobj_lookup(fileobj), events, data)
File "/usr/lib/python3.7/selectors.py", line 225, in _fileobj_lookup
return _fileobj_to_fd(fileobj)
File "/usr/lib/python3.7/selectors.py", line 40, in _fileobj_to_fd
"{!r}".format(fileobj)) from None
ValueError: Invalid file object: <_io.BufferedReader name=20>
```
This happens at least for dune-grid and dune-functions, see for example dune-grid!571https://gitlab.dune-project.org/core/ci-config/-/issues/3CI problems with some combinations of runner & python tests2022-04-15T21:57:01ZChristian EngwerCI problems with some combinations of runner & python testsSome pipelines fail with hard to debug errors, see e.g.
[jobs/332326](https://gitlab.dune-project.org/core/dune-grid/-/jobs/332326),
[jobs/332326](https://gitlab.dune-project.org/core/dune-grid/-/jobs/332326),
[jobs/332335](https://gitla...Some pipelines fail with hard to debug errors, see e.g.
[jobs/332326](https://gitlab.dune-project.org/core/dune-grid/-/jobs/332326),
[jobs/332326](https://gitlab.dune-project.org/core/dune-grid/-/jobs/332326),
[jobs/332335](https://gitlab.dune-project.org/core/dune-grid/-/jobs/332335) or
[jobs/334487](https://gitlab.dune-project.org/core/dune-grid/-/jobs/334487).
The problem are `ValueError: Invalid file object: <_io.BufferedReader name=20>` in the python bindings during `callCMake`:
```
DUNE-INFO: Rebuilding dune-py module
Traceback (most recent call last):
File "test-ug.py", line 14, in <module>
grid = dune.grid.ugGrid(reader, dimgrid=2)
File "/builds/core/dune-grid/build-cmake/python/dune/grid/_grids.py", line 235, in ugGrid
gridModule = module(includes, typeName)
File "/builds/core/dune-grid/build-cmake/python/dune/grid/grid_generator.py", line 349, in module
module = generator.load(includes, typeName, typeHash, *args, **kwargs)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/generator.py", line 169, in load
return self.post(moduleName, source, postscript, extraCMake)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/generator.py", line 121, in post
module = builder.load(moduleName, source, self.typeName[0], extraCMake)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 345, in load
self.compile(infoTxt=PrintCompiling, target=moduleName)
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 241, in compile
logLevel=logging.INFO
File "/duneci/modules/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 219, in callCMake
_, stderr = cmake.communicate()
File "/usr/lib/python3.7/subprocess.py", line 939, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "/usr/lib/python3.7/subprocess.py", line 1672, in _communicate
selector.register(self.stdout, selectors.EVENT_READ)
File "/usr/lib/python3.7/selectors.py", line 352, in register
key = super().register(fileobj, events, data)
File "/usr/lib/python3.7/selectors.py", line 238, in register
key = SelectorKey(fileobj, self._fileobj_lookup(fileobj), events, data)
File "/usr/lib/python3.7/selectors.py", line 225, in _fileobj_lookup
return _fileobj_to_fd(fileobj)
File "/usr/lib/python3.7/selectors.py", line 40, in _fileobj_to_fd
"{!r}".format(fileobj)) from None
ValueError: Invalid file object: <_io.BufferedReader name=20>
```
These errors are unrelated to the changes of the corresponding MR. It seems that some runners are more likely to experience these problems, but I currently don't understand what exactly leads to the problem.
I observed the problem with `dune-ci@epic.uni-muenster.de`, `dune-ci@sky.uni-muenster.de`, `ci-tu-dresden` and one further Dresden runner. On the other hand it is not strictly due to some particular runner, as for an job, I observed, that it failed a couple of times in Dresden and the went through on sky.
I' unsure whether this is is a problem of the python bindings or of the docker images?!https://gitlab.dune-project.org/core/dune-common/-/issues/302Python and MPI does not work anymore.2022-04-08T12:12:17ZRobert KPython and MPI does not work anymore.Somewhere between commit 240bccb5ad830f791d38bea43fad285aa1b4ae76 (works fine) and commit 73ec17e1f45a376f7e026d9ce6b2d404531f83b6 (does not work) the ability to run DUNE Python scripts with MPI broke.
With the current master I get:
Wit...Somewhere between commit 240bccb5ad830f791d38bea43fad285aa1b4ae76 (works fine) and commit 73ec17e1f45a376f7e026d9ce6b2d404531f83b6 (does not work) the ability to run DUNE Python scripts with MPI broke.
With the current master I get:
With the current master I get
```
Traceback (most recent call last):
File "/home/robertk/work/Dune/stable/cfd-playground/examples/euler/euler.py", line 67, in <module>
gridView = view( grid( Model.domain, dimgrid=dim ) ) in
File "/home/robertk/work/Dune/stable/dune-grid/build-cmake/python/dune/grid/_grids.py", line 195, in yaspGrid
gridView = view( grid( Model.domain, dimgrid=dim ) )
File "/home/robertk/work/Dune/stable/dune-grid/build-cmake/python/dune/grid/_grids.py", line 195, in yaspGrid
constructor = equidistantOffsetCoordinates(
File "/home/robertk/work/Dune/stable/dune-grid/build-cmake/python/dune/grid/_grids.py", line 122, in equidistantOffsetCoordinates
constructor = equidistantOffsetCoordinates( on
File "/home/robertk/work/Dune/stable/dune-grid/build-cmake/python/dune/grid/_grids.py", line 122, in equ.tidistantOffsetCoordinates
mod = moduleYaspCoordinates(dim) on
File "/home/robertk/work/Dune/stable/dune-grid/build-cmake/python/dune/grid/_grids.py", line 116, in mod.tuleYaspCoordinates
mod = moduleYaspCoordinates(dim)
File "/home/robertk/work/Dune/stable/dune-grid/build-cmake/python/dune/grid/_grids.py", line 116, in moduleYaspCoordinates ul
module = builder.load(moduleName, source, "yasp coordinates dim={dim}".format(dim = dim)) # , self.typeName[0], extraCMake) eN
File "/home/robertk/work/Dune/stable/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 276, in load e
module = builder.load(moduleName, source, "yasp coordinates dim={dim}".format(dim = dim)) # , self.typeName[0], extraCMake)
File "/home/robertk/work/Dune/stable/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line e 276, in load
self.initialize()
File "/home/robertk/work/Dune/stable/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", linine 191, in initialize
removeGenerated(['30'], date=True, verbose=False)
File "/home/robertk/work/Dune/stable/dune-common/build-cmake/python/dune/generator/remove.py", line 82, e in removeGenerated
self.initialize()
File "/home/robertk/work/Dune/stable/dune-common/build-cmake/python/dune/generator/cmakebuilder.py", line 191, in initialize
for line in fileinput.input( os.path.join(generated_dir, 'CMakeLists.txt'), inplace = True): in
File "/usr/lib/python3.9/fileinput.py", line 249, in __next__
removeGenerated(['30'], date=True, verbose=False)
File "/home/robertk/work/Dune/stable/dune-common/build-cmake/python/dune/generator/remove.py", line 82, in removeGenerated
for line in fileinput.input( os.path.join(generated_dir, 'CMakeLists.txt'), inplace = True):
File "/usr/lib/python3.9/fileinput.py", line 249, in __next__
line = self._readline()
File "/usr/lib/python3.9/fileinput.py", line 343, in _readline
line = self._readline() on
File "/usr/lib/python3.9/fileinput.py", line 343, in _readline .t
os.rename(self._filename, self._backupfilename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/robertk/work/Dune/stable/cache/dune-py/pythonon/dune/generated/CMakeLists.txt' -> '/home/robertk/work/Dune/stable/cache/dune-py/python/dune/generated/C.tMakeLists.txt.bak'
os.rename(self._filename, self._backupfilename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/robertk/work/Dune/stable/cache/dune-py/python/dune/generated/CMakeLists.txt' -> '/home/robertk/work/Dune/stable/cache/dune-py/python/dune/generated/CulMakeLists.txt.bak'
```https://gitlab.dune-project.org/core/dune-common/-/issues/301How call GenerateTypeName for `Foo<Signature>`2022-04-01T13:37:37ZChristian EngwerHow call GenerateTypeName for `Foo<Signature>`When defining function bindings, it is not so uncommon, that the first template argument is a signature, e.g.
`double(Dune::FieldVector<double,2>)`.
I couldn't figure out how to specify such a type for the python type registry.
If I c...When defining function bindings, it is not so uncommon, that the first template argument is a signature, e.g.
`double(Dune::FieldVector<double,2>)`.
I couldn't figure out how to specify such a type for the python type registry.
If I call
```
GenerateTypeName("Foo", "double(Dune::FieldVector<double,2>)")
```
it interprets the second string as a member name and tries to register `Foo::double(Dune::FieldVector<double,2>)`.
If I try something like
```
GenerateTypeName("Foo", MetaType<double(Dune::FieldVector<double,2>)>)
```
it fails, because the signature is nothing we could register as a complete type, or could and should we?https://gitlab.dune-project.org/core/dune-grid/-/issues/150python bindings don't allow shared_ptr<Grid>2022-03-26T19:19:09ZChristian Engwerpython bindings don't allow shared_ptr<Grid>A `Grid` can not be copied and as such has to be passed around either by reference or as a `shared_ptr`. The python bindings use the default holder type, which is `unique_ptr`. This makes it really difficult to pass a Grid constructed vi...A `Grid` can not be copied and as such has to be passed around either by reference or as a `shared_ptr`. The python bindings use the default holder type, which is `unique_ptr`. This makes it really difficult to pass a Grid constructed via the `python` bindings to existing code that stores the grid as a `shared_ptr`. I assume it would work with a reference, but the bindings should be flexible enough to work with different (reasonable) usage patterns.
We should switch the holder type of the `Grid` to `shared_ptr`. For other types like `GridView` I guess `unique_ptr` is OK, as we nowadays encourage people to copy a `GridView`, as it is supposed to be light weight.https://gitlab.dune-project.org/core/dune-grid/-/issues/139Is GridView::conforming really needed to be a constexpr?2022-03-10T17:45:37ZRobert KIs GridView::conforming really needed to be a constexpr?Is GridView::conforming really needed as a compile time constant?
In my opinion this feature is enough to be available dynamically, as a method on GridView. For UGGrid this can anyway only be implemented dynamically in my opinion, sinc...Is GridView::conforming really needed as a compile time constant?
In my opinion this feature is enough to be available dynamically, as a method on GridView. For UGGrid this can anyway only be implemented dynamically in my opinion, since it depends on the type of refinement used which is also a dynamic variable.
For ALUGrid it prevents the merge of Simplex and Conforming as types. These only differ by this one bool flag (conforming).https://gitlab.dune-project.org/core/dune-istl/-/issues/102BCRSMatrix with empty rows. What is the expected behavior?2022-03-04T20:00:38ZRobert KBCRSMatrix with empty rows. What is the expected behavior?For example, empty rows lead to the failure of the SeqJac preconditioner, because the implementation does assume that this does not happen. This is either a bug in the SeqJac implementation, or empty rows should just be skipped entirely ...For example, empty rows lead to the failure of the SeqJac preconditioner, because the implementation does assume that this does not happen. This is either a bug in the SeqJac implementation, or empty rows should just be skipped entirely when calling `A.begin()`.https://gitlab.dune-project.org/core/dune-common/-/issues/293Option DUNE_ENABLE_PYTHONBINDINGS not used2022-03-01T15:03:39ZMarkus BlattOption DUNE_ENABLE_PYTHONBINDINGS not usedIt seems to indicate that one would be able to deactivate python (all these env buildings), but it is never used (Only set to OFF if Python is not found. OFF is the default anyway).
I propose to remove it.
BTW what is the recommended w...It seems to indicate that one would be able to deactivate python (all these env buildings), but it is never used (Only set to OFF if Python is not found. OFF is the default anyway).
I propose to remove it.
BTW what is the recommended way to skip the python (I keep getting troubles...)? -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON?https://gitlab.dune-project.org/core/dune-common/-/issues/255tests fail with ffast-math (using clang-11)2022-02-25T17:24:30ZAndreas Dednertests fail with ffast-math (using clang-11)On my local machine quite a few tests fail when I use -ffast-math with clang-11. An example is `fmatrixtest` which outputs
```
error: norm not NaN: frobenius_norm() on line 760 (type: Dune::FieldVector<double, 2> const)
```
`looptest` is...On my local machine quite a few tests fail when I use -ffast-math with clang-11. An example is `fmatrixtest` which outputs
```
error: norm not NaN: frobenius_norm() on line 760 (type: Dune::FieldVector<double, 2> const)
```
`looptest` is another example (with a lot of output).https://gitlab.dune-project.org/core/dune-common/-/issues/225I'd like to see the Python binding enabled by default for Dune 2.8. Not sure ...2022-02-24T19:35:04ZAndreas DednerI'd like to see the Python binding enabled by default for Dune 2.8. Not sure how long we should wait to do this step.@gruenich wrote some time ago:
> I'd like to see the Python binding enabled by default for Dune 2.8. Not sure how long we should wait to do this step.
I would also like to do that - any objections? It shouldn't really change a lot excep...@gruenich wrote some time ago:
> I'd like to see the Python binding enabled by default for Dune 2.8. Not sure how long we should wait to do this step.
I would also like to do that - any objections? It shouldn't really change a lot except
- running the test will be slightly longer
- `make install` will by default also install the python bindings. There is an issue here that without a virtual env and without `DUNE_PYTHON_INSTALL_LOCATION=user` root rights would be required to run `make install` after this change.DUNE 2.8.0https://gitlab.dune-project.org/core/dune-common/-/issues/215[python] Print message when JIT compiler starts compiling2022-02-24T17:16:43ZTimo Koch[python] Print message when JIT compiler starts compilingJIT compilation of the Python bindings (especially dune-grid) can take quite a while. It would be nice to inform users what is happening.
What is the right place for this? We could print a message in the `SimpleGenerator` class.JIT compilation of the Python bindings (especially dune-grid) can take quite a while. It would be nice to inform users what is happening.
What is the right place for this? We could print a message in the `SimpleGenerator` class.https://gitlab.dune-project.org/core/dune-grid/-/issues/146YaspGrid needs to construct a geometry to return a GeometryType2022-02-14T15:15:02ZSantiago Ospina De Los Ríossospinar@gmail.comYaspGrid needs to construct a geometry to return a GeometryTypeToday, when analyzing performance for low order DG methods with @rhess, we found out that the entity implementation of `YaspGrid` needs to construct a `Geometry` object whenever `entity.type()` is called. This (together with https://gitl...Today, when analyzing performance for low order DG methods with @rhess, we found out that the entity implementation of `YaspGrid` needs to construct a `Geometry` object whenever `entity.type()` is called. This (together with https://gitlab.dune-project.org/core/dune-localfunctions/-/commit/99a99e855209a392f0a8135d34f07016d3a30175) caused a big performance penalty according to our tests. This is happening because `YaspEntity` inherits from `EntityDefaultImplementation` which returns [`impl().geometry().type()`](https://gitlab.dune-project.org/core/dune-grid/-/blob/master/dune/grid/common/entity.hh#L582). A faster approach would be to overload the `type()` function to construct the geometry type on-the-fly.https://gitlab.dune-project.org/core/dune-istl/-/issues/101Why do we derive `ISTLError` from `Dune::MathError`? Is it better to derive f...2022-02-02T08:34:44ZPatrick JaapWhy do we derive `ISTLError` from `Dune::MathError`? Is it better to derive from `Dune::Exception`?Currently, we have the following situation.
```
//! derive error class from the base class in common
class ISTLError : public Dune::MathError {};
//! Error specific to BCRSMatrix.
class BCRSMatrixError
: public ISTLError
...Currently, we have the following situation.
```
//! derive error class from the base class in common
class ISTLError : public Dune::MathError {};
//! Error specific to BCRSMatrix.
class BCRSMatrixError
: public ISTLError
{};
```
I am working on a project that uses `Dune::MathError` to track insufficient regularization. From the documentation in `dune-common` it is stated for `MathError`:
```
This is the superclass for all errors which are caused by
mathematical problems like
- matrix not invertible
- not convergent
```
In `dune-istl` the `ISTLError` and its derived classes are used for all kind of errors like index failure of `BCRSMatrix`.
Therefore my question: Should this be changed that `ISTLError` derives from `Dune::Exception`?https://gitlab.dune-project.org/core/dune-grid/-/issues/145Can't build module because of python2022-01-28T13:03:24ZMarkus BlattCan't build module because of pythonI have no idea what I have done wrong, but it seeems like python prevents me from successfully building dune-grid:
```
[100%] Built target dunealbertagrid2d
Obtaining file:///home/mblatt/src/dune/opm-master/dune-grid/opm-parallel/python
...I have no idea what I have done wrong, but it seeems like python prevents me from successfully building dune-grid:
```
[100%] Built target dunealbertagrid2d
Obtaining file:///home/mblatt/src/dune/opm-master/dune-grid/opm-parallel/python
Preparing metadata (setup.py) ... done
ERROR: Could not find a version that satisfies the requirement dune-common (from dune-grid) (from versions: none)
ERROR: No matching distribution found for dune-common
make[2]: *** [python/CMakeFiles/env_install_python__home_mblatt_src_dune_opm-master_dune-grid_python_..dir/build.make:77: python/CMakeFiles/env_install_python__home_mblatt_src_dune_opm-master_dune-grid_python_.] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:4133: python/CMakeFiles/env_install_python__home_mblatt_src_dune_opm-master_dune-grid_python_..dir/all] Fehler 2
make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet....
[100%] Linking CXX static library lib/libdunealbertagrid3d.a
[100%] Built target dunealbertagrid3d
make: *** [Makefile:160: all] Fehler 2
--- Failed to build dune-grid ---
Terminating dunecontrol due to previous errors!
Build took place in {dune|opm}-*/opm-parallel
```
Maybe it is searching for dune-common as a python module?