Skip to content
Snippets Groups Projects
Commit 1baedfab authored by Robert K's avatar Robert K
Browse files

[!302] Make apply<forward> work with BlockPreconditioner and NonoverlappingBlockPreconditioner

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 [core/dune-istl!302]

  [!274]: gitlab.dune-project.org/NoneNone/merge_requests/274
  [#69]: gitlab.dune-project.org/NoneNone/issues/69
  [core/dune-istl!302]: gitlab.dune-project.org/core/dune-istl/merge_requests/302
parents d34592d9 2dd068b9
No related branches found
No related tags found
Loading
Pipeline #19506 passed
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment