mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
[feature] make ILU relaxation and iteration a dynamic parameter.
This commit is contained in:
parent
a774128fb7
commit
e4f1bf9955
@ -295,8 +295,9 @@ namespace Opm
|
||||
template <class Operator>
|
||||
std::unique_ptr<SeqPreconditioner> constructPrecond(Operator& opA, const Dune::Amg::SequentialInformation&) const
|
||||
{
|
||||
const double relax = 0.9;
|
||||
std::unique_ptr<SeqPreconditioner> precond(new SeqPreconditioner(opA.getmat(), relax));
|
||||
const double relax = parameters_.ilu_relaxation_;
|
||||
const int iteration = parameters_.ilu_iteration_;
|
||||
std::unique_ptr<SeqPreconditioner> 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<ParPreconditioner> Pointer;
|
||||
const double relax = 0.9;
|
||||
const double relax = parameters_.ilu_relaxation_;
|
||||
return Pointer(new ParPreconditioner(opA.getmat(), comm, relax));
|
||||
}
|
||||
#endif
|
||||
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user