mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Enable user control of linear solver for full and elliptic system.
This is done by using parameter subgroups 'cpr_elliptic' and 'cpr_full'. If groups are not present, parent (root) group will be queried.
This commit is contained in:
parent
54c07f3d0c
commit
3e41bf11e9
@ -22,7 +22,7 @@
|
||||
#include <opm/autodiff/NewtonIterationBlackoilCPR.hpp>
|
||||
#include <opm/autodiff/AutoDiffHelpers.hpp>
|
||||
#include <opm/core/utility/ErrorMacros.hpp>
|
||||
#include <opm/core/linalg/LinearSolverUmfpack.hpp>
|
||||
#include <opm/core/linalg/LinearSolverFactory.hpp>
|
||||
|
||||
namespace Opm
|
||||
{
|
||||
@ -31,7 +31,10 @@ namespace Opm
|
||||
/// \param[in] linsolver linear solver to use
|
||||
NewtonIterationBlackoilCPR::NewtonIterationBlackoilCPR(const parameter::ParameterGroup& param)
|
||||
{
|
||||
linsolver_full_.reset(new LinearSolverUmfpack);
|
||||
parameter::ParameterGroup cpr_elliptic = param.getDefault("cpr_elliptic", param);
|
||||
linsolver_elliptic_.reset(new LinearSolverFactory(cpr_elliptic));
|
||||
parameter::ParameterGroup cpr_full = param.getDefault("cpr_full", param);
|
||||
linsolver_full_.reset(new LinearSolverFactory(cpr_full));
|
||||
}
|
||||
|
||||
/// Solve the linear system Ax = b, with A being the
|
||||
|
Loading…
Reference in New Issue
Block a user