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

@ -28,7 +28,6 @@ list (APPEND MAIN_SOURCE_FILES
opm/simulators/timestepping/SimulatorReport.cpp
opm/simulators/flow/MissingFeatures.cpp
opm/simulators/linalg/ExtractParallelGridInformationToISTL.cpp
opm/simulators/linalg/setupPropertyTree.cpp
opm/simulators/timestepping/TimeStepControl.cpp
opm/simulators/timestepping/AdaptiveSimulatorTimer.cpp
opm/simulators/timestepping/SimulatorTimer.cpp
@ -169,6 +168,7 @@ list (APPEND PUBLIC_HEADER_FILES
opm/simulators/linalg/findOverlapRowsAndColumns.hpp
opm/simulators/linalg/getQuasiImpesWeights.hpp
opm/simulators/linalg/setupPropertyTree.hpp
opm/simulators/linalg/setupPropertyTree_impl.hpp
opm/simulators/timestepping/AdaptiveSimulatorTimer.hpp
opm/simulators/timestepping/AdaptiveTimeSteppingEbos.hpp
opm/simulators/timestepping/ConvergenceReport.hpp

View File

@ -32,4 +32,6 @@ boost::property_tree::ptree setupPropertyTree(const FlowLinearSolverParameters&
} // namespace Opm
#include "setupPropertyTree_impl.hpp"
#endif // OPM_SETUPPROPERTYTREE_HEADER_INCLUDED

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);