[WIP] Feature/solverfactory
This MR mainly contains the factory implementation from !5 (closed) with some cleanup:
-
Allow creating solvers / preconditioners from ParameterTrees.
-
A solver (including preconditioner) can now be configured via an ini file like this:
[solver]
precond = SeqSSOR
solver = CGSolver
[SeqSSOR]
iterations = 1
relaxation = 1.8
[CGSolver]
reduction=1e-9
maxit = 5000
verbose = 3
- The corresponding dune code currently looks like this:
auto solver = SolverPrecondFactory::create<VectorType> (matrix, configuration, "solver");
- Both the actual type of the solver/preconditioner and their parameters can chosen in the ini file.
- It is also possible to create only a solver or only a preconditioner this way. See the factory doxygen for details.
This MR depends on !84 (merged).
Note: change target branch to master, once !84 (merged) is merged!
Merge request reports
Activity
mentioned in merge request !5 (closed)
added 29 commits
- ba71efe8 - [compatibility] allow to disable the compatibility layer
- aef54c20 - [dynampic polymorphism] update the category implementation of the eigenvalue solvers
- b553e646 - [dynampic polymorphism] Add categories to spqr, ldl and umfpack
- 4d1af195 - [dynamic polymorphism] update the category implementation of pardiso
- 11cb86b3 - [dynamic polymorphism] Add dynamic category to SuperLU
- b3d733e6 - [dynamic polymorphism] update solvers to store shared_ptr instead of references
- e569bbf1 - [test] update inverseoperator2prectest to new category interface
- e8549ed3 - [dynamic polymorphism] update schwarz.hh to the new interface
- 60b2dc9a - [dynamic polymorphism] update overlappingschwarz.hh to the new interface
- 349bd0e9 - [dynamic polymorphism] update novlschwarz.hh to the new interface
- ddd1979e - [dynamic polymorphism] update twolevelmethod.hh to the new interface
- 762c8cbc - [amg] remove enum category from SequentialInformation
- b012c63f - [dynamic polymorphism] specialize category(...) for getSolverCategory()
- 70c12625 - [amg] add missing methods dot and norm to SequentialInformation
- 3209578d - [amg] make hierarchy creation dynamic
- b2e44205 - [dynamic polymorphism][amg] make AMG use a dynamic category
- ee064bfd - [dynamic polymorphism][amg] make FastAMG use a dynamic category
- 05a0ad9f - [dynamic polymorphism][amg] make KAMG use a dynamic category
- 48661315 - [dynamic polymorphism][amg] make TwoLevelMethod use a dynamic category
- 1945b555 - [dynamic polymorphism] replace ScalarProductChooser by a dynamic factory function
- 2d65fe6c - [factory] Add preconditioner / solver constructors supporting ParameterTrees
- 7b7816c8 - [amg][factory] Support building AMG from ParameterTree
- d1c58bca - [factory] update new constructors to take objects only as shared_ptr
- cf396345 - [factory] Initial solver factory
- bcd76822 - [factory] Add factory for parallel solvers
- fa35cbad - [factory] Parallel factory completed
- daf582f7 - [fix][factory] bugfix solver factory, fix call to scalarproduct factory
- d017736d - [test][factory] Add test for solver factory (based on parallel AMG test)
- a0adfa8b - [lib][factory] Introduce ISTL library with preinstantiated solvers to speed up compile times
Toggle commit listmentioned in issue #26 (closed)
added 9 commits
- 7dc95b08 - [amg][factory] Support building AMG from ParameterTree
- 8718a6ab - [factory] update new constructors to take objects only as shared_ptr
- f7f07d40 - [factory] Initial solver factory
- bce044ab - [factory] Add factory for parallel solvers
- 99a68142 - [factory] Parallel factory completed
- a1233cb8 - [fix][factory] bugfix solver factory, fix call to scalarproduct factory
- 3b0bfb4d - [test][factory] Add test for solver factory (based on parallel AMG test)
- 9b86c3c6 - [lib][factory] Introduce ISTL library with preinstantiated solvers to speed up compile times
- 6a3b3bba - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
Toggle commit listadded 1 commit
- 1d684cd3 - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
added 1 commit
- e2d91702 - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
added 1 commit
- 8c0af4fc - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
added 11 commits
-
08f4c432 - 1 commit from branch
feature/dynamicpolymorphism
- c7c01b56 - [factory] Add preconditioner / solver constructors supporting ParameterTrees
- 541d52a9 - [amg][factory] Support building AMG from ParameterTree
- 16e41952 - [factory] update new constructors to take objects only as shared_ptr
- b32c60d9 - [factory] Initial solver factory
- 0f5467b2 - [factory] Add factory for parallel solvers
- 82ee83d1 - [factory] Parallel factory completed
- d711f223 - [fix][factory] bugfix solver factory, fix call to scalarproduct factory
- b7fc8b69 - [test][factory] Add test for solver factory (based on parallel AMG test)
- 41c7002a - [lib][factory] Introduce ISTL library with preinstantiated solvers to speed up compile times
- 13fb32f7 - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
Toggle commit list-
08f4c432 - 1 commit from branch
added 11 commits
-
da90011f - 1 commit from branch
feature/dynamicpolymorphism
- 5460788e - [factory] Add preconditioner / solver constructors supporting ParameterTrees
- d80a345d - [amg][factory] Support building AMG from ParameterTree
- 9eefd73c - [factory] update new constructors to take objects only as shared_ptr
- 189d0452 - [factory] Initial solver factory
- a7f7b103 - [factory] Add factory for parallel solvers
- ffb906b7 - [factory] Parallel factory completed
- 00cd298b - [fix][factory] bugfix solver factory, fix call to scalarproduct factory
- 09193edf - [test][factory] Add test for solver factory (based on parallel AMG test)
- 1c6635bf - [lib][factory] Introduce ISTL library with preinstantiated solvers to speed up compile times
- 3727c398 - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
Toggle commit list-
da90011f - 1 commit from branch
mentioned in merge request !84 (merged)
added 293 commits
-
3727c398...d74bd9c2 - 283 commits from branch
master
- e1c491b9 - [factory] Add preconditioner / solver constructors supporting ParameterTrees
- f9969809 - [amg][factory] Support building AMG from ParameterTree
- 4ad0bea3 - [factory] update new constructors to take objects only as shared_ptr
- 11426be1 - [factory] Initial solver factory
- 4b8e8ab8 - [factory] Add factory for parallel solvers
- b617788a - [factory] Parallel factory completed
- f155f977 - [fix][factory] bugfix solver factory, fix call to scalarproduct factory
- 9b60571b - [test][factory] Add test for solver factory (based on parallel AMG test)
- d95f6fbe - [lib][factory] Introduce ISTL library with preinstantiated solvers to speed up compile times
- 834f92ca - [amg] update Hierarchy to internally manage the finest level vis shared_ptr
Toggle commit list-
3727c398...d74bd9c2 - 283 commits from branch
I force pushed a rebase to master. Thanks to @nils.dreier for taking care of this!
added 214 commits
-
834f92ca...929e5a4d - 213 commits from branch
master
- 55022351 - Merge remote-tracking branch 'origin/master' into feature/solverfactory
-
834f92ca...929e5a4d - 213 commits from branch
added 1 commit
- f8941358 - Merge remote-tracking branch 'origin/master' into feature/solverfactory
mentioned in merge request !315 (merged)
mentioned in commit 94577364
added 39 commits
-
f8941358...94577364 - 38 commits from branch
master
- 05338d53 - Merge branch 'master' into feature/solverfactory
-
f8941358...94577364 - 38 commits from branch
added 1 commit
- 09663f2a - [bugfix] reduction is handled as scalar_real_value