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)