Core Modules issueshttps://gitlab.dune-project.org/groups/core/-/issues2019-07-08T12:58:59Zhttps://gitlab.dune-project.org/core/dune-common/-/issues/166Don't derive from std::iterator which is deprecated in C++172019-07-08T12:58:59ZChristoph GrüningerDon't derive from std::iterator which is deprecated in C++17Visual C++ warns About deriving from the deprecated std::Iterator which was never required in the first place. From the warning message it is not clear what line in Code causes the Problem. I compiled dune-grid, but I guess it is iterato...Visual C++ warns About deriving from the deprecated std::Iterator which was never required in the first place. From the warning message it is not clear what line in Code causes the Problem. I compiled dune-grid, but I guess it is iteratorfacades.hh.
warning C4996
: 'std::iterator<std::random_access_iterator_tag,Dune::FieldVector<double,3>,D,V *,R>::reference': warning STL4015: The std
::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. (The <iterator> header is NOT d
eprecated.) The C++ Standard has never required user-defined iterators to derive from std::iterator. To fix this warning, st
op deriving from std::iterator and start providing publicly accessible typedefs named iterator_category, value_type, differe
nce_type, pointer, and reference. Note that value_type is required to be non-const, even for constant iterators. You can def
ine _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that yo
u have received this warning.DUNE 2.7.0https://gitlab.dune-project.org/core/dune-common/-/issues/159Copy construction of VariableSizeCommunicator leads to runtime errors.2020-01-07T19:32:59ZLasse Hinrichsen-Bischofflh1887@mi.fu-berlin.deCopy construction of VariableSizeCommunicator leads to runtime errors.`VariableSizeCommunicator` does not have copy constructors (or assignment operator) implemented.
The default generated constructor copies the `MPI_Comm communication_` member without using `MPI_Comm_dup`.
Thus, when the copy constructed ...`VariableSizeCommunicator` does not have copy constructors (or assignment operator) implemented.
The default generated constructor copies the `MPI_Comm communication_` member without using `MPI_Comm_dup`.
Thus, when the copy constructed object and its source both have a `communication_` member pointing to the same data, which is double freed (by `MPI_Comm_free`) when the objects get destructed. This could be fixed by writing a suitable copy constructor.
I only had a quick glance, but it seems that `BufferedCommunicator` uses neither `MPI_Comm_dup` nor `MPI_Comm_free` and thus does not assume any responsibility for its data. Maybe this would be a viable approach, too.DUNE 2.7.0Markus BlattMarkus Blatthttps://gitlab.dune-project.org/core/dune-common/-/issues/152deprecate `VectorSize`2019-09-09T14:44:29ZAnsgar Burchardtansgar.burchardt@tu-dresden.dedeprecate `VectorSize`In densematrix.hh there is a helper class `VectorSize` that returns `N` for objects `v` of type `FieldVector<K,N>` and returns `v.size()` for other objects.
Given `FieldVector` also provides a `size()` method, this helper class seems unn...In densematrix.hh there is a helper class `VectorSize` that returns `N` for objects `v` of type `FieldVector<K,N>` and returns `v.size()` for other objects.
Given `FieldVector` also provides a `size()` method, this helper class seems unneeded: just call `v.size()`.
It does not seem to be used in other core module.
I propose to deprecate the helper class.DUNE 2.7.0https://gitlab.dune-project.org/core/dune-common/-/issues/142[SIMD] subsume checkMask() into checkVector()2019-01-29T13:03:18ZJö Fahlkejorrit@jorrit.de[SIMD] subsume checkMask() into checkVector()See https://gitlab.dune-project.org/core/dune-common/merge_requests/609#note_53119See https://gitlab.dune-project.org/core/dune-common/merge_requests/609#note_53119DUNE 2.7.0Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-common/-/issues/141[SIMD] make Mask an alias to Rebind<bool, ...>2019-01-28T14:27:22ZJö Fahlkejorrit@jorrit.de[SIMD] make Mask an alias to Rebind<bool, ...>See https://gitlab.dune-project.org/core/dune-common/merge_requests/609#note_53119See https://gitlab.dune-project.org/core/dune-common/merge_requests/609#note_53119DUNE 2.7.0Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-common/-/issues/135SIMD Interface should not provide `Index`2019-01-25T14:19:08ZJö Fahlkejorrit@jorrit.deSIMD Interface should not provide `Index`The concept of an `Index` type isn't really feasible. E.g. it attempts to be an integer simd type usable for indexing of the same width as the original simd type, that also fits into into a simd register. This isn't quite possible e.g....The concept of an `Index` type isn't really feasible. E.g. it attempts to be an integer simd type usable for indexing of the same width as the original simd type, that also fits into into a simd register. This isn't quite possible e.g. if the original type has `char` elements.
The datapar stuff the got into Parallism TS recently does not have such an index type. Instead it allows to construct simd types of a given element type and width. These types may no longer fit into a single register, but I guess that is what is necessary for correctness.
I believe the only uses for the `Index` type currently is in the `luDecomposition()` of `DenseMatrix`, ~~but possibly also in ISTL~~.
I'd like to get this out and possibly replace it before it becomes part of an official release.DUNE 2.7.0Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-istl/-/issues/612.6 Suffers from eigenvalue test funkyness2018-12-14T14:20:27ZJö Fahlkejorrit@jorrit.de2.6 Suffers from eigenvalue test funkynessSee #48 (fixed by !221) and Jobs [#73094](https://gitlab.dune-project.org/core/dune-istl/-/jobs/73094) and [#73093](https://gitlab.dune-project.org/core/dune-istl/-/jobs/73093)See #48 (fixed by !221) and Jobs [#73094](https://gitlab.dune-project.org/core/dune-istl/-/jobs/73094) and [#73093](https://gitlab.dune-project.org/core/dune-istl/-/jobs/73093)DUNE 2.6.1https://gitlab.dune-project.org/core/dune-istl/-/issues/60[2.6] multirhstest tries to put a simd type into an ostream2018-12-13T17:17:37ZJö Fahlkejorrit@jorrit.de[2.6] multirhstest tries to put a simd type into an ostreamJob [#72996](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72996) failed for 9af998aa817094f95386d257032037ff3e23ed81:
```
In file included from /builds/core/dune-istl/dune/istl/test/multirhstest.cc:31:
/builds/core/dune-istl/dun...Job [#72996](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72996) failed for 9af998aa817094f95386d257032037ff3e23ed81:
```
In file included from /builds/core/dune-istl/dune/istl/test/multirhstest.cc:31:
/builds/core/dune-istl/dune/istl/solvers.hh:627:22: error: invalid operands to binary expression ('basic_ostream<char, std::char_traits<char> >' and 'Dune::InverseOperator<Dune::BlockVector<Dune::FieldVector<Vc_1::SimdArray<double, 2, Vc_1::Vector<double, Vc_1::VectorAbi::Scalar>, 1>, 1>, Dune::AlignedAllocator<Dune::FieldVector<Vc_1::SimdArray<double, 2, Vc_1::Vector<double, Vc_1::VectorAbi::Scalar>, 1>, 1>, -1> >, Dune::BlockVector<Dune::FieldVector<Vc_1::SimdArray<double, 2, Vc_1::Vector<double, Vc_1::VectorAbi::Scalar>, 1>, 1>, Dune::AlignedAllocator<Dune::FieldVector<Vc_1::SimdArray<double, 2, Vc_1::Vector<double, Vc_1::VectorAbi::Scalar>, 1>, 1>, -1> > >::field_type' (aka 'Vc_1::SimdArray<double, 2, Vc_1::Vector<double, Vc_1::VectorAbi::Scalar>, 1>'))
<< rho << " <= EPSILON " << max_value(EPSILON)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/duneci/modules/dune-common/dune/common/exceptions.hh:217:58: note: expanded from macro 'DUNE_THROW'
th__out << THROWSPEC(E) << m; th__ex.message(th__out.str()); throw th__ex; \
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
```DUNE 2.6.1Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-istl/-/issues/59multirhstest can't find Vc::Vector::index_type with Vc 1.3.32018-12-13T16:04:12ZJö Fahlkejorrit@jorrit.demultirhstest can't find Vc::Vector::index_type with Vc 1.3.3Failing jobs:
- debian:10 gcc-8-noassert-17 build: Job [#72799](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72799) failed for 9af998aa817094f95386d257032037ff3e23ed81
- ubuntu:18.04 clang-6-17 build: Job [#72805](https://gitlab...Failing jobs:
- debian:10 gcc-8-noassert-17 build: Job [#72799](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72799) failed for 9af998aa817094f95386d257032037ff3e23ed81
- ubuntu:18.04 clang-6-17 build: Job [#72805](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72805)
The successful debian:10 clang-7-libcpp-17 build is probably due to Vc being disabled currently for clang 7, see docker/ci!29 and docker/ci!30.
Older images (debian:9, ubuntu:16.04) don't include Vc so are unaffectedDUNE 2.6.1Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-istl/-/issues/58dotproducttest fails with libc++ on 2.6 branch2018-12-13T18:24:13ZJö Fahlkejorrit@jorrit.dedotproducttest fails with libc++ on 2.6 branchJob [#72800](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72800) failed for 9af998aa817094f95386d257032037ff3e23ed81.
See also #51, !254 on masterJob [#72800](https://gitlab.dune-project.org/core/dune-istl/-/jobs/72800) failed for 9af998aa817094f95386d257032037ff3e23ed81.
See also #51, !254 on masterDUNE 2.6.1https://gitlab.dune-project.org/core/dune-istl/-/issues/572.6 release fails the test suite in multirhstest2018-12-12T15:06:52ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.de2.6 release fails the test suite in multirhstestCompilation of `multirhstest` fails due to some conversion failure in `Dune::AlignedNumberImpl`, which seems to be related to SIMD stuff. For the compile error, see https://gitlab.dune-project.org/core/dune-istl/-/jobs/72380Compilation of `multirhstest` fails due to some conversion failure in `Dune::AlignedNumberImpl`, which seems to be related to SIMD stuff. For the compile error, see https://gitlab.dune-project.org/core/dune-istl/-/jobs/72380DUNE 2.6.1Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-istl/-/issues/56CreateVector of VariableBlockVector is broken2019-12-19T22:34:16ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.deCreateVector of VariableBlockVector is broken`VariableBlockVector` can be initialized by iterating over the blocks with a `CreateIterator` and setting the block sizes. This can be done by either calling the method `setblocksize(int)` on the iterator or by assigning the block size t...`VariableBlockVector` can be initialized by iterating over the blocks with a `CreateIterator` and setting the block sizes. This can be done by either calling the method `setblocksize(int)` on the iterator or by assigning the block size to the dereferenced iterator. The allocation is handled in the prefix `operator++()`. The iterator claims to be an output iterator, but it is in fact not even that, because assignment to the result of the postfix `operator++(int)` will fail to correctly initialize blocks. This became apparent when I replaced a call to `std::fill()` in the test suite with `std::fill_n()`, which calls the postfix operator. By assigning to the result of the postfix operator, the block size is stored in the temporary iterator returned by the postfix operator, and as that temporary is thrown away without ever having its prefix `operator++()` called, the corresponding block is never allocated.
AFAICT, the only real way of fixing this would be to cache the assigned block sizes in the `VariableBlockVector` instead of storing them in the iterator and to delay the block allocation until the iterator reaches the end state. This would, however, change the behavior of the vector.
I don't really use this thing, could someone with more experience perhaps chime in?DUNE 2.7.0https://gitlab.dune-project.org/core/dune-common/-/issues/132dune-common does not build with clang 7 and Vc2020-06-26T09:56:19ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.dedune-common does not build with clang 7 and VcVc does some intrinsics call that clang is decidedly unhappy with:
https://gitlab.dune-project.org/core/dune-common/-/jobs/71080
I'll disable Vc for clang 7 in the CI for the time being.Vc does some intrinsics call that clang is decidedly unhappy with:
https://gitlab.dune-project.org/core/dune-common/-/jobs/71080
I'll disable Vc for clang 7 in the CI for the time being.DUNE 2.7.0Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-grid/-/issues/82Unused headers in dgfparser/blocks2018-11-20T13:11:09ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.deUnused headers in dgfparser/blocksIn the `dgfparser/blocks` subdirectory there are two headers listed among the source files, `polyhedron.hh` and `polygon.hh`. Those files do not get installed and they also don't seem to be included anywhere. Are those files still needed...In the `dgfparser/blocks` subdirectory there are two headers listed among the source files, `polyhedron.hh` and `polygon.hh`. Those files do not get installed and they also don't seem to be included anywhere. Are those files still needed by the dgfparser?DUNE 2.7.0https://gitlab.dune-project.org/core/dune-istl/-/issues/52BCRSMatrix: iterating over rows and accesing entries results in invalid memor...2018-07-11T11:53:50ZAnsgar Burchardtansgar.burchardt@tu-dresden.deBCRSMatrix: iterating over rows and accesing entries results in invalid memory accessUsing a loop over the rows of a `BCRSMatrix` of the form
```c++
for (auto row = m.begin(); row != m.end(); ++row) {
row[ row.index() ] = 1.0;
// m[row.index()][row.index()] = 1.0; // This is okay.
}
```
results in an invalid ...Using a loop over the rows of a `BCRSMatrix` of the form
```c++
for (auto row = m.begin(); row != m.end(); ++row) {
row[ row.index() ] = 1.0;
// m[row.index()][row.index()] = 1.0; // This is okay.
}
```
results in an invalid memory access reported by valgrind:
```
==12712== Invalid read of size 8
==12712== at 0x40408B: operator= (bvector.hh:798)
==12712== by 0x40408B: operator= (bvector.hh:1097)
==12712== by 0x40408B: main (test-bcrsmatrix-rowwise.cc:18)
==12712== Address 0xffe7d00 is 16 bytes after a block of size 80 in arena "client"
```
and crashes in my use of it.
The example program resulting in the valgrind output above is attached.
[test-bcrsmatrix-rowwise.cc](/uploads/4a6bbfc443e66e296cdae697f4e18f74/test-bcrsmatrix-rowwise.cc)DUNE 2.7.0https://gitlab.dune-project.org/core/dune-common/-/issues/127Quadmath support breaks compilation with clang when using dune_enable_all_pac...2019-09-10T20:21:15ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.deQuadmath support breaks compilation with clang when using dune_enable_all_packages()The CMake test for quadmath adds a library to the Dune package database by calling `dune_register_package_flags()`, but does not provide a corresponding `add_quadmath_flags()` or something similar. For that reason, nothing in dune-common...The CMake test for quadmath adds a library to the Dune package database by calling `dune_register_package_flags()`, but does not provide a corresponding `add_quadmath_flags()` or something similar. For that reason, nothing in dune-common tests whether these flags actually work.
I just stumbled over this trying to rebuild the CI images for PDELab (which uses `dune_enable_all_packages()` and thus pulls in the quadmath library definition). Unfortunately, in addition to adding the required linker flags, the CMake test also adds `-fext-numeric-literals` to the compile options, which is a GCC extension not understood by clang, causing the build to fail, cf. https://gitlab.dune-project.org/docker/ci/-/jobs/44285.
I think we need to do two things:
- Add a test to dune-common that actually uses the quadmath library as defined in `dune_register_package_flags()`.
- Check that the compiler actually understands `-fext-numeric-literals`. I have no idea whether it is better to disable the whole feature if the option is missing, or whether we should just drop the compile option in that case.DUNE 2.7.0Simon PraetoriusSimon Praetoriushttps://gitlab.dune-project.org/core/dune-common/-/issues/126dune-ctest does not like non-ASCII test output2018-08-30T08:18:41ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.dedune-ctest does not like non-ASCII test outputThe ARPACK test in dune-istl produces non-ASCII output (in particular, a `λ`), which `dune-ctest` doesn't like (cf. https://gitlab.dune-project.org/core/dune-istl/-/jobs/42887, it complains about ordinal not in ASCII range). This confuse...The ARPACK test in dune-istl produces non-ASCII output (in particular, a `λ`), which `dune-ctest` doesn't like (cf. https://gitlab.dune-project.org/core/dune-istl/-/jobs/42887, it complains about ordinal not in ASCII range). This confuses me a little because we use `latin-1` for reading in the test output. @ansgar: Can we just change that codec to `utf-8`, or might that break other stuff?DUNE 2.7.0https://gitlab.dune-project.org/core/dune-istl/-/issues/50SIMD-related build failure in CI when using clang 62018-12-12T14:25:48ZSteffen Müthingsteffen.muething@iwr.uni-heidelberg.deSIMD-related build failure in CI when using clang 6The new CI setup contains two tests with clang 6, which both fail to build due to some errors related to SIMD and Vc, e.g. https://gitlab.dune-project.org/core/dune-istl/-/jobs/42892.
See !220The new CI setup contains two tests with clang 6, which both fail to build due to some errors related to SIMD and Vc, e.g. https://gitlab.dune-project.org/core/dune-istl/-/jobs/42892.
See !220DUNE 2.7.0Jö Fahlkejorrit@jorrit.deJö Fahlkejorrit@jorrit.dehttps://gitlab.dune-project.org/core/dune-istl/-/issues/46Excessive deprecation warnings when including AMG2020-01-20T19:00:40ZJanick GerstenbergerExcessive deprecation warnings when including AMG```bash
/duneci/modules/dune-istl/dune/istl/paamg/smoother.hh:241:31: warning: 'template<class M, class X, class Y, int l> class Dune::SeqILU0' is deprecated [-Wdeprecated-declarations]
struct ConstructionTraits<SeqILU0<M,X,Y> >
```...```bash
/duneci/modules/dune-istl/dune/istl/paamg/smoother.hh:241:31: warning: 'template<class M, class X, class Y, int l> class Dune::SeqILU0' is deprecated [-Wdeprecated-declarations]
struct ConstructionTraits<SeqILU0<M,X,Y> >
```
The following warnings are emitted for `SeqILU0` and `SeqILUn`:
```bash
/duneci/modules/dune-istl/dune/istl/paamg/smoother.hh:243:39: warning: 'template<class M, class X, class Y, int l> class Dune::SeqILU0' is deprecated [-Wdeprecated-declarations]
typedef DefaultConstructionArgs<SeqILU0<M,X,Y> > Arguments;
```
```bash
/duneci/modules/dune-istl/dune/istl/paamg/smoother.hh:245:21: warning: 'template<class M, class X, class Y, int l> class Dune::SeqILU0' is deprecated [-Wdeprecated-declarations]
static inline SeqILU0<M,X,Y>* construct(Arguments& args)
```
```bash
/duneci/modules/dune-istl/dune/istl/paamg/smoother.hh:251:31: warning: 'template<class M, class X, class Y, int l> class Dune::SeqILU0' is deprecated [-Wdeprecated-declarations]
static void deconstruct(SeqILU0<M,X,Y>* ilu)
```
```bash
/duneci/modules/dune-istl/dune/istl/paamg/smoother.hh:247:20: warning: 'template<class M, class X, class Y, int l> class Dune::SeqILU0' is deprecated [-Wdeprecated-declarations]
return new SeqILU0<M,X,Y>(args.getMatrix(),
```
In addition I think there are no bindings for the non deprecated `SeqILU` for use with the AMG.DUNE 2.6.1https://gitlab.dune-project.org/core/dune-localfunctions/-/issues/9test-genericfem breaks CI in master2018-04-08T20:46:55ZMartin Noltetest-genericfem breaks CI in masterDUNE 2.6.0Martin NolteMartin Nolte2018-02-09