Block Gauss--Seidel steps and related tests
- deprecate current redundant solvers
- test non-scalar block problems where local ignore nodes are not either all true or all false
- test that ignore nodes are respected.
- currently the ProjectedBlockGS is tested, but the obstacles are not relevant to the exact solution
- provide implementation for cachedldlt local solver (necessary?)
-
extend the framework to support nonlinear steps, e.g.
::ProjectedBlockGS
(overlap with dune-tnnmg/feature/new_tnnmg) - allow more deeply nested blocks (and ignore nodes)
-
extend recursively, in analogy to the
::TruncatedBlockGS
class -
provide Gauss--Seidel loop that accounts for a SumOperator with LowRankFactor (eventually enables fully replacing
::TruncatedBlockGSStep
) - test TrustRegionGSStep (in an appropriate setting, i.e. with non-convex block problems)
- provide some mechanism or at least satisfying documentation to warn about local solvers eventually not generating a symmetric linear iteration step despite the outer Gauss--Seidel loop being symmetric (i.e. forward and backward)
- provide a test that assures that non-existing (diagonal) blocks yields the same result as zero (diagonal) blocks.
- provide checks (or at least documentation) that semidefinite diagonal blocks impose assumptions on the sanity of the rhs.
- make use of row iterators (maybe using a range-based for wrapper to be provided to dune-common or dune-matrix-vector soon)
-
allow for generic ignore nodes implementations (out-source the usage of
any()
and alike because the ignore nodes type might not provide these methods) - remove support for an ignore node set that is not set (i.e. add existence checks before the actual solve and do not create temporary local ignore nodes)