diff --git a/opm/autodiff/ISTLSolver.hpp b/opm/autodiff/ISTLSolver.hpp index daf64989d..90b2bbe79 100644 --- a/opm/autodiff/ISTLSolver.hpp +++ b/opm/autodiff/ISTLSolver.hpp @@ -295,8 +295,9 @@ namespace Opm template std::unique_ptr constructPrecond(Operator& opA, const Dune::Amg::SequentialInformation&) const { - const double relax = 0.9; - std::unique_ptr precond(new SeqPreconditioner(opA.getmat(), relax)); + const double relax = parameters_.ilu_relaxation_; + const int iteration = parameters_.ilu_iteration_; + std::unique_ptr precond(new SeqPreconditioner(opA.getmat(), iteration, relax)); return precond; } @@ -308,7 +309,7 @@ namespace Opm constructPrecond(Operator& opA, const Comm& comm) const { typedef std::unique_ptr Pointer; - const double relax = 0.9; + const double relax = parameters_.ilu_relaxation_; return Pointer(new ParPreconditioner(opA.getmat(), comm, relax)); } #endif diff --git a/opm/autodiff/NewtonIterationBlackoilInterleaved.hpp b/opm/autodiff/NewtonIterationBlackoilInterleaved.hpp index 0e010a0a0..543a486e3 100644 --- a/opm/autodiff/NewtonIterationBlackoilInterleaved.hpp +++ b/opm/autodiff/NewtonIterationBlackoilInterleaved.hpp @@ -37,9 +37,11 @@ namespace Opm struct NewtonIterationBlackoilInterleavedParameters { double linear_solver_reduction_; + double ilu_relaxation_; int linear_solver_maxiter_; int linear_solver_restart_; int linear_solver_verbosity_; + int ilu_iteration_; bool newton_use_gmres_; bool require_full_sparsity_pattern_; bool ignoreConvergenceFailure_; @@ -61,6 +63,8 @@ namespace Opm require_full_sparsity_pattern_ = param.getDefault("require_full_sparsity_pattern", require_full_sparsity_pattern_); ignoreConvergenceFailure_ = param.getDefault("linear_solver_ignoreconvergencefailure", ignoreConvergenceFailure_); linear_solver_use_amg_ = param.getDefault("linear_solver_use_amg", linear_solver_use_amg_ ); + ilu_relaxation_ = param.getDefault("ilu_relaxation", ilu_relaxation_ ); + ilu_iteration_ = param.getDefault("ilu_iteration", ilu_iteration_ ); } // set default values @@ -74,6 +78,8 @@ namespace Opm require_full_sparsity_pattern_ = false; ignoreConvergenceFailure_ = false; linear_solver_use_amg_ = false; + ilu_iteration_ = 0; + ilu_relaxation_ = 0.9; } };