Skip to content

New istl linear solvers

Timo Koch requested to merge feature/new-istl-linear-solvers-rebased into master

MR description (based on !2213 (merged)):

  • Revisit template arguments
  • Introduce linear algebra backend or similar to make usage simpler
  • Adapt all linear solvers to provide norm
  • In Newton call linearSolver->norm(r) if available otherwise call assembler->residualNorm(); (depends on !2311 (merged) to be merged)
  • Deprecate conversion of multitype matrices in Newton (do in solver instead if necessary)
  • Fix parallel helper to work with UG

Depends on !3385 (merged) to be merged

The matrix and vector type now have to be known to construct the solver. This was previously delayed until the solve call but made the structure kind of intransparent because it wasn't really clear which vector type has to come in but only specific types work anyway.

Hard coding the solver hopefully reduces compile times wrt the factory. Also the implementation should be

  • more compact than the old backends

  • have more runtime option due to parameter tree-based params

  • work in parallel as well

  • We could deprecated the old solver backends? (not the entire header though) different MR

Updated version as replacement for !2113 (closed).

Edited by Timo Koch

Merge request reports