- Jul 03, 2019
-
-
Robert K authored
Merge branch 'issue/apply_forward' into 'master' ref:core/dune-istl ### Summary Implement apply<forward> for NonoverlappingBlockPreconditioner and replace stored pointer with concrete type to allow the call to this non-virtual function. ### Details The method apply<forward>() is added for some preconditioners to allow to distinguish between forward and backward application. This is not part of the virtual interface in Preconditioner, so needs a concrete type to be called. The function was missing in the NonoverlappingBlockPreconditioner that wraps another preconditioner. For both block preconditioners, the function apply<forward>() is called on the abstract base class Preconditioner that does not have this method. So, instead of storing a pointer to the base class, store the passed preconditioner type directly that is available by template parameter. ### Backport In dune 2.6 the base-class problem was not a problem, since there always the template parameter type was stored. But the implementation in NonoverlappingBlockPreconditioner is missing there as well. This simply breaks generic code. Note, the problem was introduced in [!274]. This MR is related to issue [#69]. See merge request [!302] [!274]: gitlab.dune-project.org/NoneNone/merge_requests/274 [#69]: gitlab.dune-project.org/NoneNone/issues/69 [!302]: gitlab.dune-project.org/core/dune-istl/merge_requests/302
-
- Jun 27, 2019
-
-
Ansgar Burchardt authored
Merge branch 'issue/missing_gs_construction_traits' into 'master' ref:core/dune-istl ### Summary This MR adds a missing specialization of the template ConstructionTraits for the sequential preconditioner SeqGS. See merge request [!303] [!303]: gitlab.dune-project.org/core/dune-istl/merge_requests/303
-
Ansgar Burchardt authored
Merge branch 'feature/run-more-mpitests-in-parallel' into 'master' See merge request [!296] [!296]: Nonecore/dune-istl/merge_requests/296
-
- Jun 16, 2019
-
-
Simon Praetorius authored
-
Simon Praetorius authored
-
- Jun 15, 2019
-
-
Christoph Grüninger authored
Merge branch 'feature/use-umfpack-dl-func-versions' into 'master' See merge request [!301] [!301]: Nonecore/dune-istl/merge_requests/301
-
- Jun 13, 2019
-
-
Christoph Grüninger authored
-
With the *_dl_* versions instead of the *_di_* versions UMFPACK will not have a memory limit of just 2GB.
-
The index type was previously hard-coded to int. However, we might want to change the index type for compatibility with legacy interfaces of other libraries such as UMFPack. This patch makes the index type customizable and defaults to int for full backward-compatibility
-
- Jun 12, 2019
-
-
Oliver Sander authored
Merge branch 'implement-bdmatrix-solve' into 'master' ref:core/dune-istl This needs [!299]. See merge request [!300] [!299]: gitlab.dune-project.org/NoneNone/merge_requests/299 [!300]: gitlab.dune-project.org/core/dune-istl/merge_requests/300
-
Oliver Sander authored
-
- Jun 11, 2019
-
-
Ansgar Burchardt authored
Merge branch 'bugfix/paamg-hierarchy-weak-ptr-may-be-nullptr' into 'master' ref:core/dune-istl On the coarsest level, element_->coarser_ is empty and constructing a shared_ptr from a weak_ptr fails. The lock() method returns an empty shared_ptr instead. This fails when iterating over the hierarchy as the end of the iteration cannot be reached; the problem was previously described by @simon.praetorius [1]. See merge request [!297] [1]: https://lists.dune-project.org/pipermail/dune-devel/2019-March/002441.html [!297]: gitlab.dune-project.org/core/dune-istl/merge_requests/297
-
- Jun 04, 2019
-
-
Christian Engwer authored
Merge branch 'fix_checkIfDiagonalPresent_for_scalar_values_matrices' into 'master' ref:core/dune-istl This MR fixes CheckIfDiagonalPresent for scalar matrices, which is called by several preconditioners if dune-istl is compiled with DUNE_ISTL_WITH_CHECKING. See merge request [!298] [!298]: gitlab.dune-project.org/core/dune-istl/merge_requests/298
-
Nils-Arne Dreier authored
-
- Jun 03, 2019
-
- May 16, 2019
-
-
Ansgar Burchardt authored
On the coarsest level, `element_->coarser_` is empty and constructing a `shared_ptr` from a `weak_ptr` fails. The `lock()` method returns an empty `shared_ptr` instead. This fails when iterating over the hierarchy as the end of the iteration cannot be reached; the problem was previously described by @simon.praetorius [1]. [1]: https://lists.dune-project.org/pipermail/dune-devel/2019-March/002441.html
-
Timo Koch authored
-
Timo Koch authored
-
Timo Koch authored
-
-
-
* update MatrixAdapter, OverlappingSchwarzOperator and NonoverlappingSchwarzOperator * store matrix as `shared_ptr` * update construction traits accordingly
-
Timo Koch authored
-
- May 06, 2019
-
-
Christoph Grüninger authored
Merge branch 'feature/deprecate-superlu-4' into 'master' ref:core/dune-istl Removal of older SuperLU versions to reduce the number of combinations to check. SuperLU 5.0 was released in July 2015. If we deprecate SuperLU 4.x in Dune 2.7, it will be removed in 2020 with Dune 2.8. See merge request [!285] [!285]: gitlab.dune-project.org/core/dune-istl/merge_requests/285
-
Christoph Grüninger authored
-
- Apr 16, 2019
-
-
Oliver Sander authored
Merge branch 'feature/implement-scalarmatrixview' into 'master' ref:core/dune-istl This is based on [dune-common!656] which introduces Impl::asMatrix() using this we can avoid many Hybrid::ifElse constructions which increase complexity of the implementation and error messages. Furthermore we can drop toMatrix() which fixed [#63]. This is a clone of [!288]. Is was created in order to tell the CI to use the corresponding branch in dune-common using a matching branch name. See merge request [!289] [dune-common!656]: gitlab.dune-project.org/Nonedune-common/merge_requests/656 [#63]: gitlab.dune-project.org/NoneNone/issues/63 [!288]: gitlab.dune-project.org/NoneNone/merge_requests/288 [!289]: gitlab.dune-project.org/core/dune-istl/merge_requests/289 Closes #63
-
- Apr 10, 2019
-
-
Carsten Gräser authored
-
Carsten Gräser authored
-
Carsten Gräser authored
Replace many `Hybrid::ifElse(IsNumber<...` constructions by using `Impl::asMatrix()`. In some cases the (now only) implementation of the matrix branch was additionally cleaned up using range-based for.
-
Carsten Gräser authored
Using `Impl::asMatrix()` we can replace many special case implementations based on `Hybrid::ifElse(IsNumber...` which simplifies code and error messages and avoids some code duplication.
-
Carsten Gräser authored
-
Carsten Gräser authored
This invokes undefined behaviour and was now replaced by asMatrix() in dune-common.
-
Carsten Gräser authored
The fundamental difference is, that `toMatrix()` leads to undefined behaviour, because it dereference a pointer obtained from a `reinterpret_cast` violating strict aliasing rules. In contrast `asMatrix()` returns a wrapper modelling a proxy-matrix which is safe to use.
-
- Apr 09, 2019
-
-
Oliver Sander authored
Merge branch 'feature/simplify-scalar-entries' into 'master' ref:core/dune-istl Using the new Impl::asVector() from dune-common we can get rid of - several Hybrid::isElse() constructions used to implement special cases for isNumber, - undefined behaviour invoked by toVector() due to the latter violating strict aliasing rules. This also removed the dangerous toVector() methods. This is only a partial solution to [#63]. We also need to do the same for toMatrix() which requires an analogue Impl::asMatrix() function and a ScalarMatrixView wrapper class. See merge request [!287] [#63]: gitlab.dune-project.org/NoneNone/issues/63 [!287]: gitlab.dune-project.org/core/dune-istl/merge_requests/287
-
Using the wrapper generated by `asVector()` we can get rid of `toVector()`. The important difference is, that `toVector()` invokes undefined behaviour by dereferencing the result of an aliasing `reinterpret_cast`. However, there's no noteable properties of the new implementation: * You can't use `asVector()` directly in calls to `mv()` and friends, because the latter is not robust wrt. to proxy references. * When creating copies of values, you can't replace `auto rhs = v[i];` by `auto rhs = Impl::asVector(v[i])` because proxy references don't use deep copy on purpose. Instead we have to use the two step `auto rhsValue = v[i]; auto&& rhs = Impl::asVector(rhsValue);`
-
-
Using `Impl::asVector()` we can get rid of several `Hybrid::ifElse()` constructions used to implement the special case of scalar entries (i.e. `IsNumber==true`).
-
- Mar 28, 2019
-
-
Oliver Sander authored
Merge branch 'fix_matrixredistribute_for_scalar_valued_matrices' into 'master' ref:core/dune-istl This MR adapts matrixredistribute.hh for matrices with scalar block_type like BCRSMatrix<double> and adapts the matrixredistributetest. See merge request [!278] [!278]: gitlab.dune-project.org/core/dune-istl/merge_requests/278
-
- Mar 24, 2019
-
-
Oliver Sander authored
Merge branch 'improve-matrix-testing' into 'master' See merge request [!282] [!282]: Nonecore/dune-istl/merge_requests/282
-
- Mar 22, 2019
-
-
Christian Engwer authored
in order to get a `static constexpr` result, the method must be called via the type and not via `this`.
-