Add a generic factory for solver setup using configuration from a ParameterTree
This is a followup on !5 (closed) and !1 (closed).
The idea is to allow creating solvers / preconditioners from ParameterTrees.
A solver (including preconditioner) should be configurable via an ini file, similar to (we might want to change the semantics slightly in some places...):
[solver]
precond = SeqSSOR
solver = CGSolver
[SeqSSOR]
iterations = 1
relaxation = 1.8
[CGSolver]
reduction=1e-9
maxit = 5000
verbose = 3
Necessary steps:
-
make interface classes really dynamic (see !84 (merged)) -
add constructors taking a ParameterTree
(see !315 (merged)) -
use these new constructors in a solver factory (see !312 (merged)) -
rewrite the factories to use the ParameterizedFactory
indune-common
(see !312 (merged)) -
review and cleanup the ParameterTree
"interface" -
remove static AMG configurations (coarse solver, smoother, etc) (explicit dispatch in !312 (merged)) -
switch Hierarchy<T>
to usestd::shared_ptr
orstd::unique_ptr
for internal memory management instead of manualnew
/delete
)(see !274 (merged) and !333 (merged))
- introduce a value semantics wrapper class for the polymorphic interface classes
- add concepts for simple precompilation for a range of field types, e.g. vectorized data.
- review the concepts of how to instantiate and pre-compile the factories
Edited by Christian Engwer