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>
28namespace Opm::Properties {
34template<
class TypeTag,
class MyTypeTag>
36 using type = UndefinedProperty;
38template<
class TypeTag,
class MyTypeTag>
40 using type = UndefinedProperty;
42template<
class TypeTag,
class MyTypeTag>
44 using type = UndefinedProperty;
46template<
class TypeTag,
class MyTypeTag>
48 using type = UndefinedProperty;
50template<
class TypeTag,
class MyTypeTag>
52 using type = UndefinedProperty;
54template<
class TypeTag,
class MyTypeTag>
56 using type = UndefinedProperty;
58template<
class TypeTag,
class MyTypeTag>
60 using type = UndefinedProperty;
62template<
class TypeTag,
class MyTypeTag>
64 using type = UndefinedProperty;
66template<
class TypeTag,
class MyTypeTag>
68 using type = UndefinedProperty;
70template<
class TypeTag,
class MyTypeTag>
72 using type = UndefinedProperty;
74template<
class TypeTag,
class MyTypeTag>
76 using type = UndefinedProperty;
78template<
class TypeTag,
class MyTypeTag>
80 using type = UndefinedProperty;
82template<
class TypeTag,
class MyTypeTag>
84 using type = UndefinedProperty;
86template<
class TypeTag,
class MyTypeTag>
88 using type = UndefinedProperty;
90template<
class TypeTag,
class MyTypeTag>
92 using type = UndefinedProperty;
94template<
class TypeTag,
class MyTypeTag>
96 using type = UndefinedProperty;
98template<
class TypeTag,
class MyTypeTag>
100 using type = UndefinedProperty;
102template<
class TypeTag,
class MyTypeTag>
104 using type = UndefinedProperty;
106template<
class TypeTag,
class MyTypeTag>
108 using type = UndefinedProperty;
110template<
class TypeTag,
class MyTypeTag>
112 using type = UndefinedProperty;
115template<
class TypeTag,
class MyTypeTag>
117 using type = UndefinedProperty;
119template<
class TypeTag,
class MyTypeTag>
121 using type = UndefinedProperty;
123template<
class TypeTag,
class MyTypeTag>
125 using type = UndefinedProperty;
127template<
class TypeTag,
class MyTypeTag>
129 using type = UndefinedProperty;
131template<
class TypeTag,
class MyTypeTag>
133 using type = UndefinedProperty;
135template<
class TypeTag,
class MyTypeTag>
137 using type = UndefinedProperty;
139template<
class TypeTag,
class MyTypeTag>
141 using type = UndefinedProperty;
143template<
class TypeTag,
class MyTypeTag>
145 using type = UndefinedProperty;
147template<
class TypeTag,
class MyTypeTag>
149 using type = UndefinedProperty;
151template<
class TypeTag,
class MyTypeTag>
153 using type = UndefinedProperty;
155template<
class TypeTag,
class MyTypeTag>
157 using type = UndefinedProperty;
159template<
class TypeTag,
class MyTypeTag>
161 using type = UndefinedProperty;
163template<
class TypeTag,
class MyTypeTag>
165 using type = UndefinedProperty;
168template<
class TypeTag>
170 using type = GetPropType<TypeTag, Scalar>;
171 static constexpr type value = 1.0;
173template<
class TypeTag>
175 using type = GetPropType<TypeTag, Scalar>;
176 static constexpr type value = 0.2;
178template<
class TypeTag>
180 using type = GetPropType<TypeTag, Scalar>;
181 static constexpr type value = 1e7;
183template<
class TypeTag>
185 using type = GetPropType<TypeTag, Scalar>;
186 static constexpr type value = 0.03;
188template<
class TypeTag>
190 using type = GetPropType<TypeTag, Scalar>;
191 static constexpr type value = 1e-6;
193template<
class TypeTag>
195 using type = GetPropType<TypeTag, Scalar>;
196 static constexpr type value = 1e-2;
198template<
class TypeTag>
200 using type = GetPropType<TypeTag, Scalar>;
201 static constexpr type value = 1;
203template<
class TypeTag>
205 using type = GetPropType<TypeTag, Scalar>;
206 static constexpr type value = 1e-4;
208template<
class TypeTag>
210 using type = GetPropType<TypeTag, Scalar>;
211 static constexpr type value = 1e-7;
213template<
class TypeTag>
215 static constexpr int value = 30;
217template<
class TypeTag>
219 static constexpr bool value =
true;
221template<
class TypeTag>
223 using type = GetPropType<TypeTag, Scalar>;
224 static constexpr type value = 20.0;
226template<
class TypeTag>
228 static constexpr int value = 0;
230template<
class TypeTag>
232 static constexpr bool value =
true;
234template<
class TypeTag>
236 static constexpr bool value =
false;
238template<
class TypeTag>
240 static constexpr bool value =
true;
242template<
class TypeTag>
244 static constexpr bool value =
false;
246template<
class TypeTag>
248 using type = GetPropType<TypeTag, Scalar>;
249 static constexpr type value = 0.01*1e5;
251template<
class TypeTag>
253 using type = GetPropType<TypeTag, Scalar>;
254 static constexpr type value = 10*1e5;
256template<
class TypeTag>
258 static constexpr int value = 8;
260template<
class TypeTag>
262 static constexpr int value = 100;
264template<
class TypeTag>
266 static constexpr int value = 50;
268template<
class TypeTag>
270 static constexpr bool value =
true;
272template<
class TypeTag>
274 static constexpr bool value =
true;
276template<
class TypeTag>
278 static constexpr int value = 6;
280template<
class TypeTag>
282 static constexpr int value = 40;
284template<
class TypeTag>
286 using type = GetPropType<TypeTag, Scalar>;
287 static constexpr type value = 100;
289template<
class TypeTag>
291 static constexpr bool value =
true;
293template<
class TypeTag>
295 static constexpr bool value =
false;
297template<
class TypeTag>
299 using type = GetPropType<TypeTag, Scalar>;
300 static constexpr type value = 1e-3;
302template<
class TypeTag>
304 using type = GetPropType<TypeTag, Scalar>;
305 static constexpr type value = 1.0e4;
307template<
class TypeTag>
309 static constexpr int value = 3;
314template<
class TypeTag>
315struct 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, RegularizationFactorWells,
"Regularization factor for 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, MinStrictCnvIter,
"Minimum number of Newton iterations before relaxed tolerances can be 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 (can be used when iter >= min_strict_cnv_iter_ && cnvViolatedPV <...
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
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
int min_strict_cnv_iter_
Minimum number of Newton iterations before we can use relaxed CNV convergence criterion.
Definition: BlackoilModelParametersEbos.hpp:392
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
double regularization_factor_wells_
Regularization factor for 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:75
Definition: BlackoilModelParametersEbos.hpp:164
Definition: BlackoilModelParametersEbos.hpp:87
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