38 #include <opm/simulators/aquifers/BlackoilAquiferModel.hpp> 43 #include <opm/simulators/linalg/ISTLSolver.hpp> 45 #include <opm/simulators/timestepping/EclTimeSteppingParams.hpp> 47 #include <opm/simulators/wells/BlackoilWellModel.hpp> 50 template <
class TypeTag>
60 using InheritsFrom = std::tuple<FlowBaseProblemBlackoil, BlackOilModel>;
66 template<
class TypeTag>
67 struct Problem<TypeTag, TTag::FlowExpTypeTag> {
74 template<
class TypeTag>
76 static constexpr
bool value =
true;
80 template<
class TypeTag>
85 template<
class TypeTag>
91 template<
class TypeTag>
93 static constexpr
bool value =
true;
97 template<
class TypeTag>
99 static constexpr
bool value =
false;
103 template<
class TypeTag>
109 template<
class TypeTag>
119 template<
class TypeTag>
128 template <
class TypeTag>
137 OPM_TIMEBLOCK(problemWriteOutput);
140 if (Parameters::Get<Parameters::EnableWriteAllSolutions>() ||
141 this->simulator().episodeWillBeOver())
149 static void registerParameters()
154 Parameters::Register<Parameters::EnableTerminalOutput>(
"Do *NOT* use!");
155 Parameters::Hide<Parameters::DbhpMaxRel<Scalar>>();
156 Parameters::Hide<Parameters::DwellFractionMax<Scalar>>();
157 Parameters::Hide<Parameters::MaxResidualAllowed<Scalar>>();
158 Parameters::Hide<Parameters::ToleranceMb<Scalar>>();
159 Parameters::Hide<Parameters::ToleranceMbRelaxed<Scalar>>();
160 Parameters::Hide<Parameters::ToleranceCnv<Scalar>>();
161 Parameters::Hide<Parameters::ToleranceCnvRelaxed<Scalar>>();
162 Parameters::Hide<Parameters::ToleranceWells<Scalar>>();
163 Parameters::Hide<Parameters::ToleranceWellControl<Scalar>>();
164 Parameters::Hide<Parameters::MaxWelleqIter>();
165 Parameters::Hide<Parameters::UseMultisegmentWell>();
166 Parameters::Hide<Parameters::TolerancePressureMsWells<Scalar>>();
167 Parameters::Hide<Parameters::MaxPressureChangeMsWells<Scalar>>();
168 Parameters::Hide<Parameters::MaxInnerIterMsWells>();
169 Parameters::Hide<Parameters::MaxNewtonIterationsWithInnerWellIterations>();
170 Parameters::Hide<Parameters::MaxInnerIterWells>();
171 Parameters::Hide<Parameters::MaxWellStatusSwitchInInnerIterWells>();
172 Parameters::Hide<Parameters::MaxWellStatusSwitchForWells>();
173 Parameters::Hide<Parameters::MaxSinglePrecisionDays<Scalar>>();
174 Parameters::Hide<Parameters::MinStrictCnvIter>();
175 Parameters::Hide<Parameters::MinStrictMbIter>();
176 Parameters::Hide<Parameters::SolveWelleqInitially>();
177 Parameters::Hide<Parameters::PreSolveNetwork>();
178 Parameters::Hide<Parameters::UpdateEquationsScaling>();
179 Parameters::Hide<Parameters::UseUpdateStabilization>();
180 Parameters::Hide<Parameters::MatrixAddWellContributions>();
181 Parameters::Hide<Parameters::EnableTerminalOutput>();
186 Parameters::SetDefault<Parameters::ThreadsPerProcess>(2);
191 Parameters::SetDefault<Parameters::ContinueOnConvergenceError>(
true);
193 Parameters::SetDefault<Parameters::NewtonMaxIterations>(8);
194 Parameters::SetDefault<Parameters::NewtonTolerance<Scalar>>(1e-2);
195 Parameters::SetDefault<Parameters::EclNewtonRelaxedTolerance<Scalar>>(1e-1);
196 Parameters::SetDefault<Parameters::EclNewtonRelaxedVolumeFraction<Scalar>>(0.0);
197 Parameters::SetDefault<Parameters::EclNewtonSumTolerance<Scalar>>(1e-5);
198 Parameters::SetDefault<Parameters::EnableTerminalOutput>(
false);
203 Parameters::SetDefault<Parameters::UseMultisegmentWell>(
false);
204 Parameters::SetDefault<Parameters::MatrixAddWellContributions>(
false);
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowProblemBlackoil.hpp:86
A newton solver.
Definition: FlowExpNewtonMethod.hpp:70
Definition: flowexp.hpp:58
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(...))
Definition: propertysystem.hh:233
Definition: FlowBaseProblemProperties.hpp:68
Specifies the type of the actual Newton method.
Definition: fvbaseproblem.hh:54
Class for handling the blackoil well model.
Definition: BlackoilModelProperties.hpp:32
This class solves the fully implicit black-oil system by solving the reduced system (after eliminatin...
Definition: FlowLinearSolverParameters.hpp:40
Class for handling the blackoil aquifer model.
Definition: BlackoilAquiferModel.hpp:49
FlowProblemBlackoil(Simulator &simulator)
Definition: FlowProblemBlackoil.hpp:189
void writeOutput(const bool verbose) override
Write the requested quantities of the current solution into the output files.
Definition: FlowProblemBlackoil.hpp:600
Structs needed for tpfalinearizer and its gpuparams struct extracted to be defined in one place that ...
Definition: blackoilbioeffectsmodules.hh:45
Base class for all problems which use a finite volume spatial discretization.
Solver parameters for the NonlinearSystemBlackOilReservoir.
Definition: BlackoilModelParameters.hpp:200
This problem simulates an input file given in the data format used by the commercial ECLiPSE simulato...
Definition: FlowBaseProblemProperties.hpp:98
static void registerParameters()
Registers all available parameters for the problem and the model.
Definition: FlowProblemBlackoil.hpp:175
Definition: fvbaseproperties.hh:59
Specify if experimental features should be enabled or not.
Definition: fvbaseproperties.hh:256
Enable surface volume scaling.
Definition: blackoilproperties.hh:59
The type of the problem.
Definition: fvbaseproperties.hh:87
The Opm property system, traits with inheritance.
Definition: flowexp.hpp:51
Definition: FlowLinearSolverParameters.hpp:51
Definition: blackoilmodel.hh:75
void writeOutput(bool verbose=true) override
Write the requested quantities of the current solution into the output files.
Definition: flowexp.hpp:135
Provides convenience routines to bring up the simulation at runtime.
The type of the linear solver to be used.
Definition: linalgproperties.hh:38
Definition: ISTLSolver.hpp:70
Specify whether to use volumetric residuals or not.
Definition: fvbaseproperties.hh:252