New istl linear solvers
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 callassembler->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