dune-istl issueshttps://gitlab.dune-project.org/core/dune-istl/-/issues2020-06-23T13:08:07Zhttps://gitlab.dune-project.org/core/dune-istl/-/issues/45ParMETIS with `real_t != float` not supported2020-06-23T13:08:07ZSimon PraetoriusParMETIS with `real_t != float` not supportedWhen compiling dune-istl with ParMETIS, I get the error
```
dune/istl/repartition.hh:1381:27: error: cannot convert 'float*' to 'real_t* {aka double*}'
for argument '10' to 'int ParMETIS_V3_PartKway'
```
**Explanation:** ParMETIS wa...When compiling dune-istl with ParMETIS, I get the error
```
dune/istl/repartition.hh:1381:27: error: cannot convert 'float*' to 'real_t* {aka double*}'
for argument '10' to 'int ParMETIS_V3_PartKway'
```
**Explanation:** ParMETIS was compiled with double precision instead of single precision
**Difficulty:** I think, old versions of ParMETIS do not have a `#define real_t ...`
**Solution:**
Use `real_t*` instead of `float*`, with additionally something like
```c++
#ifndef REALTYPEWIDTH
#define real_t float
#endif
```
This issue is relevant for the Dune 2.6 release.DUNE 2.6.02018-01-19https://gitlab.dune-project.org/core/dune-istl/-/issues/40multirhstest fails to compile when arpack++ is installed2018-04-17T20:53:29ZJö Fahlkejorrit@jorrit.demultirhstest fails to compile when arpack++ is installedSee also !102.
When arpack++ is installed, `multirhstest` fails to compile: the condition estimate calculation can only handle `double` and `float` but it is instantiated here with a different type (`AlignedNumber<double>`). It should ...See also !102.
When arpack++ is installed, `multirhstest` fails to compile: the condition estimate calculation can only handle `double` and `float` but it is instantiated here with a different type (`AlignedNumber<double>`). It should probably suppress its instantiation using `Hybrid::ifElse()`, the same way it suppressed instantiation of `std::real()` elsewhere.DUNE 2.6.0Linus SeelingerLinus Seelinger2017-12-15https://gitlab.dune-project.org/core/dune-istl/-/issues/38Mention Vc support in changelog2018-01-30T20:18:42ZJö Fahlkejorrit@jorrit.deMention Vc support in changelogSee also core/dune-common#94See also core/dune-common#94DUNE 2.6.0Christian EngwerChristian Engwer2018-01-26https://gitlab.dune-project.org/core/dune-istl/-/issues/37Remove #warning reminders2017-10-21T12:21:37ZMartin NolteRemove #warning remindersThere are two reminders to rethink the dune-istl interface in form of #warning. These are annoying and do not convey any information to the user.There are two reminders to rethink the dune-istl interface in form of #warning. These are annoying and do not convey any information to the user.DUNE 2.6.0https://gitlab.dune-project.org/core/dune-istl/-/issues/34Memory corruption when calling BCRSMatrix::setSize with three arguments2017-12-23T07:10:58ZOliver Sanderoliver.sander@tu-dresden.deMemory corruption when calling BCRSMatrix::setSize with three argumentsSomething fishy goes on when calling BCRSMatrix::setSize with three arguments (the third is the number of nonzeros). To reproduce, simply run matrixtest under valgrind:
~/dune/dune-istl/build-cmake/dune/istl/test(master)> valgrind ...Something fishy goes on when calling BCRSMatrix::setSize with three arguments (the third is the number of nonzeros). To reproduce, simply run matrixtest under valgrind:
~/dune/dune-istl/build-cmake/dune/istl/test(master)> valgrind ./matrixtest
==4936== Memcheck, a memory error detector
==4936== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4936== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==4936== Command: ./matrixtest
==4936==
==4936== Conditional jump or move depends on uninitialised value(s)
==4936== at 0x16D7DD: Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >::equals(Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> > const&) const (basearray.hh:611)
==4936== by 0x15CA46: std::enable_if<std::is_convertible<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> > >::value, bool>::type Dune::operator==<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&, long, Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&>(Dune::BidirectionalIteratorFacade<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&, long> const&, Dune::BidirectionalIteratorFacade<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&, long> const&) (iteratorfacades.hh:381)
==4936== by 0x1557A3: Dune::EnableIfInterOperable<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, bool>::type Dune::operator!=<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&, long, Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&>(Dune::BidirectionalIteratorFacade<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&, long> const&, Dune::BidirectionalIteratorFacade<Dune::Imp::compressed_base_array_unmanaged<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::RealIterator<Dune::FieldMatrix<double, 2, 2> >, Dune::FieldMatrix<double, 2, 2>, Dune::FieldMatrix<double, 2, 2>&, long> const&) (iteratorfacades.hh:419)
==4936== by 0x155338: Dune::BCRSMatrix<Dune::FieldMatrix<double, 2, 2>, std::allocator<Dune::FieldMatrix<double, 2, 2> > >::endindices() (bcrsmatrix.hh:1233)
==4936== by 0x151697: main (matrixtest.cc:391)
==4936==
==4936==
==4936== HEAP SUMMARY:
==4936== in use at exit: 8 bytes in 1 blocks
==4936== total heap usage: 196 allocs, 195 frees, 265,272 bytes allocated
==4936==
==4936== LEAK SUMMARY:
==4936== definitely lost: 0 bytes in 0 blocks
==4936== indirectly lost: 0 bytes in 0 blocks
==4936== possibly lost: 0 bytes in 0 blocks
==4936== still reachable: 8 bytes in 1 blocks
==4936== suppressed: 0 bytes in 0 blocks
==4936== Rerun with --leak-check=full to see details of leaked memory
==4936==
==4936== For counts of detected and suppressed errors, rerun with: -v
==4936== Use --track-origins=yes to see where uninitialised values come from
==4936== ERROR SUMMARY: 6 errors from 1 contexts (suppressed: 0 from 0)DUNE 2.6.0Christian EngwerChristian Engwer2017-11-10https://gitlab.dune-project.org/core/dune-istl/-/issues/28Suprising behaviour of BCRSMatrix.nonzeroes()2017-12-23T07:10:58ZJanick GerstenbergerSuprising behaviour of BCRSMatrix.nonzeroes()`BCRSMatrix.nonzeroes()` can be 0 even when the matrix has entries (e.g. when read with `loadMatrixMarket()`) and changes its value when copied.
Both are highly surprising and I would consider the first one a defect. Attached is a simpl...`BCRSMatrix.nonzeroes()` can be 0 even when the matrix has entries (e.g. when read with `loadMatrixMarket()`) and changes its value when copied.
Both are highly surprising and I would consider the first one a defect. Attached is a simple example.
[nonzeroes.cc](/uploads/0430b3b94de2177a8f0016577186957a/nonzeroes.cc)
[test.mm](/uploads/de25f3779afd3b9505e18a60c6ee9244/test.mm)DUNE 2.6.02017-11-10https://gitlab.dune-project.org/core/dune-istl/-/issues/17Pardiso bindings essentially broken with CMake2017-12-23T07:10:58ZDominic Kempfdominic.kempf@iwr.uni-heidelberg.dePardiso bindings essentially broken with CMakeThere is no CMake test for Pardiso. As a result, even if a user would manually specify the paths, he would still need to manually hack around the enable trick.
The correct solution would be to write FindPardiso.cmake, I guess.
Affe...There is no CMake test for Pardiso. As a result, even if a user would manually specify the paths, he would still need to manually hack around the enable trick.
The correct solution would be to write FindPardiso.cmake, I guess.
Affects master and release branch.DUNE 2.6.0