Use special default for LinearSolverMaxIter for CPR and honor CprMaxEllIter

This commit is contained in:
Markus Blatt
2020-03-31 10:03:15 +02:00
parent 2c1df912fe
commit 2fc2703aba
3 changed files with 5 additions and 3 deletions

View File

@@ -58,7 +58,7 @@ setupPropertyTree(const FlowLinearSolverParameters& p)
if((conf == "cpr_trueimpes") || (conf == "cpr_quasiimpes")){
prm.put("tol", p.linear_solver_reduction_);
if (EWOMS_PARAM_IS_SET(TypeTag, double, LinearSolverMaxIter))
if (EWOMS_PARAM_IS_SET(TypeTag, int, LinearSolverMaxIter))
prm.put("maxiter", p.linear_solver_maxiter_);// Trust that the user knows what he does
else
prm.put("maxiter", 20); // Use our own default.
@@ -78,7 +78,7 @@ setupPropertyTree(const FlowLinearSolverParameters& p)
prm.put("preconditioner.coarsesolver.preconditioner.type","amg");
prm.put("preconditioner.coarsesolver.preconditioner.alpha",0.333333333333);
prm.put("preconditioner.coarsesolver.preconditioner.relaxation",1.0);
if (EWOMS_PARAM_IS_SET(TypeTag, double, CprMaxEllIter))
if (EWOMS_PARAM_IS_SET(TypeTag, int, CprMaxEllIter))
prm.put("preconditioner.coarsesolver.preconditioner.iterations", p.cpr_max_ell_iter_);
prm.put("preconditioner.coarsesolver.preconditioner.iterations",1);
prm.put("preconditioner.coarsesolver.preconditioner.coarsenTarget",1200);