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)
Assignee Loading
Time tracking Loading