20 #ifndef OPM_BLACKOILMODELPARAMETERS_EBOS_HEADER_INCLUDED
21 #define OPM_BLACKOILMODELPARAMETERS_EBOS_HEADER_INCLUDED
23 #include <opm/models/utils/propertysystem.hh>
24 #include <opm/models/utils/parametersystem.hh>
28 namespace Opm::Properties {
34 template<
class TypeTag,
class MyTypeTag>
36 using type = UndefinedProperty;
38 template<
class TypeTag,
class MyTypeTag>
40 using type = UndefinedProperty;
42 template<
class TypeTag,
class MyTypeTag>
44 using type = UndefinedProperty;
46 template<
class TypeTag,
class MyTypeTag>
48 using type = UndefinedProperty;
50 template<
class TypeTag,
class MyTypeTag>
52 using type = UndefinedProperty;
54 template<
class TypeTag,
class MyTypeTag>
56 using type = UndefinedProperty;
58 template<
class TypeTag,
class MyTypeTag>
60 using type = UndefinedProperty;
62 template<
class TypeTag,
class MyTypeTag>
64 using type = UndefinedProperty;
66 template<
class TypeTag,
class MyTypeTag>
68 using type = UndefinedProperty;
70 template<
class TypeTag,
class MyTypeTag>
72 using type = UndefinedProperty;
74 template<
class TypeTag,
class MyTypeTag>
76 using type = UndefinedProperty;
78 template<
class TypeTag,
class MyTypeTag>
80 using type = UndefinedProperty;
82 template<
class TypeTag,
class MyTypeTag>
84 using type = UndefinedProperty;
86 template<
class TypeTag,
class MyTypeTag>
88 using type = UndefinedProperty;
90 template<
class TypeTag,
class MyTypeTag>
92 using type = UndefinedProperty;
94 template<
class TypeTag,
class MyTypeTag>
96 using type = UndefinedProperty;
98 template<
class TypeTag,
class MyTypeTag>
100 using type = UndefinedProperty;
102 template<
class TypeTag,
class MyTypeTag>
104 using type = UndefinedProperty;
106 template<
class TypeTag,
class MyTypeTag>
108 using type = UndefinedProperty;
110 template<
class TypeTag,
class MyTypeTag>
112 using type = UndefinedProperty;
115 template<
class TypeTag,
class MyTypeTag>
117 using type = UndefinedProperty;
119 template<
class TypeTag,
class MyTypeTag>
121 using type = UndefinedProperty;
123 template<
class TypeTag,
class MyTypeTag>
125 using type = UndefinedProperty;
127 template<
class TypeTag,
class MyTypeTag>
129 using type = UndefinedProperty;
131 template<
class TypeTag,
class MyTypeTag>
133 using type = UndefinedProperty;
135 template<
class TypeTag,
class MyTypeTag>
137 using type = UndefinedProperty;
139 template<
class TypeTag,
class MyTypeTag>
141 using type = UndefinedProperty;
143 template<
class TypeTag,
class MyTypeTag>
145 using type = UndefinedProperty;
147 template<
class TypeTag,
class MyTypeTag>
149 using type = UndefinedProperty;
151 template<
class TypeTag,
class MyTypeTag>
153 using type = UndefinedProperty;
155 template<
class TypeTag,
class MyTypeTag>
157 using type = UndefinedProperty;
159 template<
class TypeTag,
class MyTypeTag>
161 using type = UndefinedProperty;
163 template<
class TypeTag,
class MyTypeTag>
165 using type = UndefinedProperty;
168 template<
class TypeTag>
170 using type = GetPropType<TypeTag, Scalar>;
171 static constexpr type value = 1.0;
173 template<
class TypeTag>
175 using type = GetPropType<TypeTag, Scalar>;
176 static constexpr type value = 0.2;
178 template<
class TypeTag>
180 using type = GetPropType<TypeTag, Scalar>;
181 static constexpr type value = 1e7;
183 template<
class TypeTag>
185 using type = GetPropType<TypeTag, Scalar>;
186 static constexpr type value = 0.03;
188 template<
class TypeTag>
190 using type = GetPropType<TypeTag, Scalar>;
191 static constexpr type value = 1e-6;
193 template<
class TypeTag>
195 using type = GetPropType<TypeTag, Scalar>;
196 static constexpr type value = 1e-2;
198 template<
class TypeTag>
200 using type = GetPropType<TypeTag, Scalar>;
201 static constexpr type value = 1;
203 template<
class TypeTag>
205 using type = GetPropType<TypeTag, Scalar>;
206 static constexpr type value = 1e-4;
208 template<
class TypeTag>
210 using type = GetPropType<TypeTag, Scalar>;
211 static constexpr type value = 1e-7;
213 template<
class TypeTag>
215 static constexpr
int value = 30;
217 template<
class TypeTag>
219 static constexpr
bool value =
true;
221 template<
class TypeTag>
223 using type = GetPropType<TypeTag, Scalar>;
224 static constexpr type value = 20.0;
226 template<
class TypeTag>
228 static constexpr
int value = 0;
230 template<
class TypeTag>
232 static constexpr
bool value =
true;
234 template<
class TypeTag>
236 static constexpr
bool value =
false;
238 template<
class TypeTag>
240 static constexpr
bool value =
true;
242 template<
class TypeTag>
244 static constexpr
bool value =
false;
246 template<
class TypeTag>
248 using type = GetPropType<TypeTag, Scalar>;
249 static constexpr type value = 0.01*1e5;
251 template<
class TypeTag>
253 using type = GetPropType<TypeTag, Scalar>;
254 static constexpr type value = 10*1e5;
256 template<
class TypeTag>
258 static constexpr
int value = 8;
260 template<
class TypeTag>
262 static constexpr
int value = 100;
264 template<
class TypeTag>
266 static constexpr
int value = 50;
268 template<
class TypeTag>
270 static constexpr
bool value =
false;
272 template<
class TypeTag>
274 static constexpr
bool value =
true;
276 template<
class TypeTag>
278 static constexpr
int value = 99;
280 template<
class TypeTag>
282 static constexpr
int value = 40;
284 template<
class TypeTag>
286 using type = GetPropType<TypeTag, Scalar>;
287 static constexpr type value = 1;
289 template<
class TypeTag>
291 static constexpr
bool value =
true;
293 template<
class TypeTag>
295 static constexpr
bool value =
false;
297 template<
class TypeTag>
299 using type = GetPropType<TypeTag, Scalar>;
300 static constexpr type value = 1;
302 template<
class TypeTag>
304 using type = GetPropType<TypeTag, Scalar>;
305 static constexpr type value = 0.5e5;
307 template<
class TypeTag>
309 static constexpr
int value = 3;
314 template<
class TypeTag>
315 struct ThreadsPerProcess<TypeTag, TTag::FlowModelParameters> {
316 static constexpr
int value = -1;
325 template <
class TypeTag>
329 using Scalar = GetPropType<TypeTag, Properties::Scalar>;
340 double relaxed_max_pv_fraction_;
432 relaxed_max_pv_fraction_ = EWOMS_GET_PARAM(TypeTag, Scalar, RelaxedMaxPvFraction);
433 tolerance_mb_ = EWOMS_GET_PARAM(TypeTag, Scalar, ToleranceMb);
460 deck_file_name_ = EWOMS_GET_PARAM(TypeTag, std::string, EclDeckFileName);
463 static void registerParameters()
465 EWOMS_REGISTER_PARAM(TypeTag, Scalar, DbhpMaxRel,
"Maximum relative change of the bottom-hole pressure in a single iteration");
466 EWOMS_REGISTER_PARAM(TypeTag, Scalar, DwellFractionMax,
"Maximum absolute change of a well's volume fraction in a single iteration");
467 EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxResidualAllowed,
"Absolute maximum tolerated for residuals without cutting the time step size");
468 EWOMS_REGISTER_PARAM(TypeTag, Scalar, RelaxedMaxPvFraction,
"The fraction of the pore volume of the reservoir "
469 "where the volumetric error (CNV) may be voilated during strict Newton iterations.");
470 EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceMb,
"Tolerated mass balance error relative to total mass present");
471 EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceCnv,
"Local convergence tolerance (Maximum of local saturation errors)");
472 EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceCnvRelaxed,
"Relaxed local convergence tolerance that applies for iterations after the iterations with the strict tolerance");
473 EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceWells,
"Well convergence tolerance");
474 EWOMS_REGISTER_PARAM(TypeTag, Scalar, ToleranceWellControl,
"Tolerance for the well control equations");
475 EWOMS_REGISTER_PARAM(TypeTag,
int, MaxWelleqIter,
"Maximum number of iterations to determine solution the well equations");
476 EWOMS_REGISTER_PARAM(TypeTag,
bool, UseMultisegmentWell,
"Use the well model for multi-segment wells instead of the one for single-segment wells");
477 EWOMS_REGISTER_PARAM(TypeTag, Scalar, TolerancePressureMsWells,
"Tolerance for the pressure equations for multi-segment wells");
478 EWOMS_REGISTER_PARAM(TypeTag, Scalar, RelaxedWellFlowTol,
"Relaxed tolerance for the well flow residual");
479 EWOMS_REGISTER_PARAM(TypeTag, Scalar, RelaxedPressureTolMsw,
"Relaxed tolerance for the MSW pressure solution");
480 EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxPressureChangeMsWells,
"Maximum relative pressure change for a single iteration of the multi-segment well model");
481 EWOMS_REGISTER_PARAM(TypeTag,
int, MaxInnerIterMsWells,
"Maximum number of inner iterations for multi-segment wells");
482 EWOMS_REGISTER_PARAM(TypeTag,
int, StrictInnerIterWells,
"Number of inner well iterations with strict tolerance");
483 EWOMS_REGISTER_PARAM(TypeTag,
int, StrictOuterIterWells,
"Number of newton iterations for which wells are checked with strict tolerance");
484 EWOMS_REGISTER_PARAM(TypeTag,
int, MaxNewtonIterationsWithInnerWellIterations,
"Maximum newton iterations with inner well iterations");
485 EWOMS_REGISTER_PARAM(TypeTag,
bool, ShutUnsolvableWells,
"Shut unsolvable wells");
486 EWOMS_REGISTER_PARAM(TypeTag,
int, MaxInnerIterWells,
"Maximum number of inner iterations for standard wells");
487 EWOMS_REGISTER_PARAM(TypeTag,
bool, AlternativeWellRateInit,
"Use alternative well rate initialization procedure");
488 EWOMS_REGISTER_PARAM(TypeTag, Scalar, RegularizationFactorMsw,
"Regularization factor for ms wells");
489 EWOMS_REGISTER_PARAM(TypeTag, Scalar, MaxSinglePrecisionDays,
"Maximum time step size where single precision floating point arithmetic can be used solving for the linear systems of equations");
490 EWOMS_REGISTER_PARAM(TypeTag,
int, MaxStrictIter,
"Maximum number of Newton iterations before relaxed tolerances are used for the CNV convergence criterion");
491 EWOMS_REGISTER_PARAM(TypeTag,
bool, SolveWelleqInitially,
"Fully solve the well equations before each iteration of the reservoir model");
492 EWOMS_REGISTER_PARAM(TypeTag,
bool, UpdateEquationsScaling,
"Update scaling factors for mass balance equations during the run");
493 EWOMS_REGISTER_PARAM(TypeTag,
bool, UseUpdateStabilization,
"Try to detect and correct oscillations or stagnation during the Newton method");
494 EWOMS_REGISTER_PARAM(TypeTag,
bool, MatrixAddWellContributions,
"Explicitly specify the influences of wells between cells in the Jacobian and preconditioner matrices");
495 EWOMS_REGISTER_PARAM(TypeTag,
bool, EnableWellOperabilityCheck,
"Enable the well operability checking");
496 EWOMS_REGISTER_PARAM(TypeTag,
bool, EnableWellOperabilityCheckIter,
"Enable the well operability checking during iterations");
497 EWOMS_REGISTER_PARAM(TypeTag,
int, MaximumNumberOfWellSwitches,
"Maximum number of times a well can switch to the same control");
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27
Solver parameters for the BlackoilModel.
Definition: BlackoilModelParametersEbos.hpp:327
double tolerance_cnv_relaxed_
Relaxed local convergence tolerance (used when iter >= max_strict_iter_).
Definition: BlackoilModelParametersEbos.hpp:346
int max_niter_inner_well_iter_
Maximum newton iterations with inner well iterations.
Definition: BlackoilModelParametersEbos.hpp:376
double dbhp_max_rel_
Max relative change in bhp in single iteration.
Definition: BlackoilModelParametersEbos.hpp:333
double tolerance_wells_
Well convergence tolerance.
Definition: BlackoilModelParametersEbos.hpp:348
bool shut_unsolvable_wells_
Whether to shut unsolvable well.
Definition: BlackoilModelParametersEbos.hpp:379
int max_inner_iter_ms_wells_
Maximum inner iteration number for ms wells.
Definition: BlackoilModelParametersEbos.hpp:364
int max_strict_iter_
Maximum number of Newton iterations before we give up on the CNV convergence criterion.
Definition: BlackoilModelParametersEbos.hpp:392
bool matrix_add_well_contributions_
Whether to add influences of wells between cells to the matrix and preconditioner matrix.
Definition: BlackoilModelParametersEbos.hpp:414
bool solve_welleq_initially_
Solve well equation initially.
Definition: BlackoilModelParametersEbos.hpp:395
bool use_update_stabilization_
Try to detect oscillation or stagnation.
Definition: BlackoilModelParametersEbos.hpp:401
double tolerance_pressure_ms_wells_
Tolerance for the pressure equations for multisegment wells.
Definition: BlackoilModelParametersEbos.hpp:353
std::string deck_file_name_
The file name of the deck.
Definition: BlackoilModelParametersEbos.hpp:411
double tolerance_cnv_
Local convergence tolerance (max of local saturation errors).
Definition: BlackoilModelParametersEbos.hpp:344
bool update_equations_scaling_
Update scaling factors for mass balance equations.
Definition: BlackoilModelParametersEbos.hpp:398
double relaxed_tolerance_flow_well_
Relaxed tolerance for for the well flow residual.
Definition: BlackoilModelParametersEbos.hpp:355
double tolerance_mb_
Relative mass balance tolerance (total mass balance error).
Definition: BlackoilModelParametersEbos.hpp:342
double relaxed_tolerance_pressure_ms_well_
Relaxed tolerance for the MSW pressure solution.
Definition: BlackoilModelParametersEbos.hpp:358
double max_pressure_change_ms_wells_
Maximum pressure change over an iteratio for ms wells.
Definition: BlackoilModelParametersEbos.hpp:361
bool check_well_operability_
Whether to check well operability.
Definition: BlackoilModelParametersEbos.hpp:417
BlackoilModelParametersEbos()
Construct from user parameters or defaults.
Definition: BlackoilModelParametersEbos.hpp:427
bool use_multisegment_well_
Whether to use MultisegmentWell to handle multisegment wells it is something temporary before the mul...
Definition: BlackoilModelParametersEbos.hpp:408
double max_residual_allowed_
Absolute max limit for residuals.
Definition: BlackoilModelParametersEbos.hpp:337
int strict_outer_iter_wells_
Newton iteration where wells are stricly convergent.
Definition: BlackoilModelParametersEbos.hpp:370
double tolerance_well_control_
Tolerance for the well control equations.
Definition: BlackoilModelParametersEbos.hpp:351
double maxSinglePrecisionTimeStep_
Tolerance for time step in seconds where single precision can be used for solving for the Jacobian.
Definition: BlackoilModelParametersEbos.hpp:389
int strict_inner_iter_wells_
Strict inner iteration number for wells.
Definition: BlackoilModelParametersEbos.hpp:367
int max_number_of_well_switches_
Maximum number of times a well can switch to the same controt.
Definition: BlackoilModelParametersEbos.hpp:422
int regularization_factor_ms_wells_
Regularization factor for ms wells.
Definition: BlackoilModelParametersEbos.hpp:373
double dwell_fraction_max_
Max absolute change in well volume fraction in single iteration.
Definition: BlackoilModelParametersEbos.hpp:335
bool check_well_operability_iter_
Whether to check well operability during iterations.
Definition: BlackoilModelParametersEbos.hpp:419
int max_inner_iter_wells_
Maximum inner iteration number for standard wells.
Definition: BlackoilModelParametersEbos.hpp:382
int max_welleq_iter_
Maximum iteration number of the well equation solution.
Definition: BlackoilModelParametersEbos.hpp:385
Definition: BlackoilModelParametersEbos.hpp:160
Definition: BlackoilModelParametersEbos.hpp:39
Definition: BlackoilModelParametersEbos.hpp:43
Definition: BlackoilModelParametersEbos.hpp:35
Definition: BlackoilModelParametersEbos.hpp:111
Definition: BlackoilModelParametersEbos.hpp:107
Definition: BlackoilModelParametersEbos.hpp:103
Definition: BlackoilModelParametersEbos.hpp:124
Definition: BlackoilModelParametersEbos.hpp:156
Definition: BlackoilModelParametersEbos.hpp:148
Definition: BlackoilModelParametersEbos.hpp:120
Definition: BlackoilModelParametersEbos.hpp:47
Definition: BlackoilModelParametersEbos.hpp:83
Definition: BlackoilModelParametersEbos.hpp:87
Definition: BlackoilModelParametersEbos.hpp:75
Definition: BlackoilModelParametersEbos.hpp:164
Definition: BlackoilModelParametersEbos.hpp:144
Definition: BlackoilModelParametersEbos.hpp:51
Definition: BlackoilModelParametersEbos.hpp:140
Definition: BlackoilModelParametersEbos.hpp:132
Definition: BlackoilModelParametersEbos.hpp:152
Definition: BlackoilModelParametersEbos.hpp:91
Definition: BlackoilModelParametersEbos.hpp:128
Definition: BlackoilModelParametersEbos.hpp:136
Definition: BlackoilModelParametersEbos.hpp:31
Definition: BlackoilModelParametersEbos.hpp:63
Definition: BlackoilModelParametersEbos.hpp:59
Definition: BlackoilModelParametersEbos.hpp:55
Definition: BlackoilModelParametersEbos.hpp:116
Definition: BlackoilModelParametersEbos.hpp:71
Definition: BlackoilModelParametersEbos.hpp:67
Definition: BlackoilModelParametersEbos.hpp:95
Definition: BlackoilModelParametersEbos.hpp:79
Definition: BlackoilModelParametersEbos.hpp:99