diff --git a/opm/autodiff/CPRPreconditioner.hpp b/opm/autodiff/CPRPreconditioner.hpp index ceaba6de3..72c16656f 100644 --- a/opm/autodiff/CPRPreconditioner.hpp +++ b/opm/autodiff/CPRPreconditioner.hpp @@ -295,10 +295,10 @@ createEllipticPreconditionerPointer(const M& Ae, double relax, void reset() { cpr_relax_ = 1.0; - cpr_solver_tol_ = 1e-4; + cpr_solver_tol_ = 1e-2; cpr_ilu_n_ = 0; - cpr_max_ell_iter_ = 5000; - cpr_use_amg_ = false; + cpr_max_ell_iter_ = 25; + cpr_use_amg_ = true; cpr_use_bicgstab_ = true; cpr_solver_verbose_ = false; } diff --git a/opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp b/opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp index 90a8d8050..d870c57b3 100644 --- a/opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp +++ b/opm/autodiff/FullyImplicitBlackoilSolver_impl.hpp @@ -145,11 +145,11 @@ namespace detail { relax_increment_ = 0.1; relax_rel_tol_ = 0.2; max_iter_ = 15; // not more then 15 its by default - min_iter_ = 0; // keep the default as it was - max_residual_allowed_ = std::numeric_limits< double >::max(); - tolerance_mb_ = 1.0e-7; - tolerance_cnv_ = 1.0e-3; - tolerance_wells_ = 1./Opm::unit::day; + min_iter_ = 1; // Default to always do at least one nonlinear iteration. + max_residual_allowed_ = 1e5; + tolerance_mb_ = 1.0e-5; + tolerance_cnv_ = 1.0e-2; + tolerance_wells_ = 1.0e-2; } template diff --git a/opm/autodiff/NewtonIterationBlackoilCPR.cpp b/opm/autodiff/NewtonIterationBlackoilCPR.cpp index 7d14e7527..f38c85e5f 100644 --- a/opm/autodiff/NewtonIterationBlackoilCPR.cpp +++ b/opm/autodiff/NewtonIterationBlackoilCPR.cpp @@ -103,9 +103,9 @@ namespace Opm : cpr_param_( param ), iterations_( 0 ), parallelInformation_(parallelInformation), - newton_use_gmres_( param.getDefault("newton_use_gmres", true ) ), - linear_solver_reduction_( param.getDefault("linear_solver_reduction", 1e-3 ) ), - linear_solver_maxiter_( param.getDefault("linear_solver_maxiter", 150 ) ), + newton_use_gmres_( param.getDefault("newton_use_gmres", false ) ), + linear_solver_reduction_( param.getDefault("linear_solver_reduction", 1e-2 ) ), + linear_solver_maxiter_( param.getDefault("linear_solver_maxiter", 50 ) ), linear_solver_restart_( param.getDefault("linear_solver_restart", 40 ) ), linear_solver_verbosity_( param.getDefault("linear_solver_verbosity", 0 )) { diff --git a/opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp b/opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp index e963f425a..2df70b396 100644 --- a/opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp +++ b/opm/autodiff/SimulatorFullyImplicitBlackoil_impl.hpp @@ -232,7 +232,7 @@ namespace Opm // adaptive time stepping std::unique_ptr< AdaptiveTimeStepping > adaptiveTimeStepping; - if( param_.getDefault("timestep.adaptive", bool(false) ) ) + if( param_.getDefault("timestep.adaptive", true ) ) { adaptiveTimeStepping.reset( new AdaptiveTimeStepping( param_ ) ); }