BlackoilModelParameters.hpp
Go to the documentation of this file.
1/*
2 Copyright 2015 SINTEF ICT, Applied Mathematics.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef OPM_BLACKOILMODELPARAMETERS_HEADER_INCLUDED
21#define OPM_BLACKOILMODELPARAMETERS_HEADER_INCLUDED
22
24
25#include <string>
26
27namespace Opm::Parameters {
28
29template<class Scalar>
30struct DbhpMaxRel { static constexpr Scalar value = 1.0; };
31
32template<class Scalar>
33struct DwellFractionMax { static constexpr Scalar value = 0.2; };
34
35struct EclDeckFileName { static constexpr auto value = ""; };
36
37template<class Scalar>
38struct MaxResidualAllowed { static constexpr Scalar value = 1e7; };
39
40template<class Scalar>
41struct RelaxedMaxPvFraction { static constexpr Scalar value = 0.03; };
42
43template<class Scalar>
44struct ToleranceMb { static constexpr Scalar value = 1e-7; };
45
46template<class Scalar>
47struct ToleranceMbRelaxed { static constexpr Scalar value = 1e-6; };
48
49template<class Scalar>
50struct ToleranceEnergyBalance { static constexpr Scalar value = 1e-7; };
51
52template<class Scalar>
53struct ToleranceEnergyBalanceRelaxed { static constexpr Scalar value = 1e-6; };
54
55template<class Scalar>
56struct ToleranceCnv { static constexpr Scalar value = 1e-2; };
57
58template<class Scalar>
59struct ToleranceCnvRelaxed { static constexpr Scalar value = 1.0; };
60
61template<class Scalar>
62struct ToleranceCnvEnergy { static constexpr Scalar value = 1e-2; };
63
64template<class Scalar>
65struct ToleranceCnvEnergyRelaxed { static constexpr Scalar value = 1.0; };
66
67template<class Scalar>
68struct ToleranceWells { static constexpr Scalar value = 1e-4; };
69
70template<class Scalar>
71struct ToleranceWellControl { static constexpr Scalar value = 1e-7; };
72
73struct MaxWelleqIter { static constexpr int value = 30; };
74
75template<class Scalar>
76struct MaxSinglePrecisionDays { static constexpr Scalar value = 20.0; };
77
78struct MinStrictCnvIter { static constexpr int value = -1; };
79struct MinStrictMbIter { static constexpr int value = -1; };
80struct SolveWelleqInitially { static constexpr bool value = true; };
81struct UpdateEquationsScaling { static constexpr bool value = false; };
82struct UseUpdateStabilization { static constexpr bool value = true; };
83struct MatrixAddWellContributions { static constexpr bool value = false; };
84
85struct UseMultisegmentWell { static constexpr bool value = true; };
86
87template<class Scalar>
88struct TolerancePressureMsWells { static constexpr Scalar value = 0.01*1e5; };
89
90template<class Scalar>
91struct MaxPressureChangeMsWells { static constexpr Scalar value = 10*1e5; };
92
93struct MaxNewtonIterationsWithInnerWellIterations { static constexpr int value = 8; };
94struct MaxInnerIterMsWells { static constexpr int value = 100; };
95struct MaxInnerIterWells { static constexpr int value = 50; };
96struct ShutUnsolvableWells { static constexpr bool value = true; };
97struct AlternativeWellRateInit { static constexpr bool value = true; };
98struct StrictOuterIterWells { static constexpr int value = 6; };
99struct StrictInnerIterWells { static constexpr int value = 40; };
100
101template<class Scalar>
102struct RegularizationFactorWells { static constexpr Scalar value = 100.0; };
103
104struct EnableWellOperabilityCheck { static constexpr bool value = true; };
105struct EnableWellOperabilityCheckIter { static constexpr bool value = false; };
106struct DebugEmitCellPartition { static constexpr bool value = false; };
107
108template<class Scalar>
109struct RelaxedWellFlowTol { static constexpr Scalar value = 1e-3; };
110
111template<class Scalar>
112struct RelaxedPressureTolMsw { static constexpr Scalar value = 1e4; };
113
114struct MaximumNumberOfWellSwitches { static constexpr int value = 3; };
115struct UseAverageDensityMsWells { static constexpr bool value = false; };
116struct LocalWellSolveControlSwitching { static constexpr bool value = true; };
117struct UseImplicitIpr { static constexpr bool value = true; };
118
119// Network solver parameters
120struct NetworkMaxStrictIterations { static constexpr int value = 100; };
121struct NetworkMaxIterations { static constexpr int value = 200; };
122struct NonlinearSolver { static constexpr auto value = "newton"; };
123struct LocalSolveApproach { static constexpr auto value = "gauss-seidel"; };
124struct MaxLocalSolveIterations { static constexpr int value = 20; };
125
126template<class Scalar>
127struct LocalToleranceScalingMb { static constexpr Scalar value = 1.0; };
128
129template<class Scalar>
130struct LocalToleranceScalingCnv { static constexpr Scalar value = 0.1; };
131struct NlddNumInitialNewtonIter { static constexpr int value = 1; };
132struct NumLocalDomains { static constexpr int value = 0; };
133
134template<class Scalar>
135struct LocalDomainsPartitioningImbalance { static constexpr Scalar value = 1.03; };
136
137struct LocalDomainsPartitioningMethod { static constexpr auto value = "zoltan"; };
138struct LocalDomainsOrderingMeasure { static constexpr auto value = "maxpressure"; };
139
140} // namespace Opm::Parameters
141
142namespace Opm {
143
145template <class Scalar>
147{
148public:
177 // TODO: it might need to distinguish between rate control and pressure control later
183
186
189
192
195
198
201
204
207
210
213
217
220
223
226
229
232
239
241 std::string deck_file_name_;
242
245
250
253
256
259
262
265
268
270 std::string nonlinear_solver_;
273
275
278
284
285 bool write_partitions_{false};
286
289
290 static void registerParameters();
291};
292
293} // namespace Opm
294
295#endif // OPM_BLACKOILMODELPARAMETERS_HEADER_INCLUDED
Definition: blackoilnewtonmethodparams.hpp:31
Definition: blackoilboundaryratevector.hh:37
DomainOrderingMeasure
Measure to use for domain ordering.
Definition: SubDomain.hpp:39
DomainSolveApproach
Solver approach for NLDD.
Definition: SubDomain.hpp:33
Solver parameters for the BlackoilModel.
Definition: BlackoilModelParameters.hpp:147
bool write_partitions_
Definition: BlackoilModelParameters.hpp:285
Scalar tolerance_mb_relaxed_
Relaxed mass balance tolerance (can be used when iter >= min_strict_mb_iter_).
Definition: BlackoilModelParameters.hpp:161
Scalar tolerance_energy_balance_
Relative energy balance tolerance (total energy balance error).
Definition: BlackoilModelParameters.hpp:163
int max_niter_inner_well_iter_
Maximum newton iterations with inner well iterations.
Definition: BlackoilModelParameters.hpp:203
int max_number_of_well_switches_
Maximum number of times a well can switch to the same controt.
Definition: BlackoilModelParameters.hpp:252
bool use_average_density_ms_wells_
Whether to approximate segment densities by averaging over segment and its outlet.
Definition: BlackoilModelParameters.hpp:255
bool matrix_add_well_contributions_
Whether to add influences of wells between cells to the matrix and preconditioner matrix.
Definition: BlackoilModelParameters.hpp:244
bool solve_welleq_initially_
Solve well equation initially.
Definition: BlackoilModelParameters.hpp:225
bool update_equations_scaling_
Update scaling factors for mass balance equations.
Definition: BlackoilModelParameters.hpp:228
Scalar tolerance_well_control_
Tolerance for the well control equations.
Definition: BlackoilModelParameters.hpp:178
static void registerParameters()
int max_inner_iter_wells_
Maximum inner iteration number for standard wells.
Definition: BlackoilModelParameters.hpp:209
Scalar tolerance_energy_balance_relaxed_
Relaxed energy balance tolerance (can be used when iter >= min_strict_mb_iter_).
Definition: BlackoilModelParameters.hpp:165
bool shut_unsolvable_wells_
Whether to shut unsolvable well.
Definition: BlackoilModelParameters.hpp:206
bool use_implicit_ipr_
Whether to use implicit IPR for thp stability checks and solution search.
Definition: BlackoilModelParameters.hpp:261
int min_strict_mb_iter_
Minimum number of Newton iterations before we can use relaxed MB convergence criterion.
Definition: BlackoilModelParameters.hpp:222
int num_local_domains_
Definition: BlackoilModelParameters.hpp:280
Scalar max_pressure_change_ms_wells_
Maximum pressure change over an iteratio for ms wells.
Definition: BlackoilModelParameters.hpp:188
int min_strict_cnv_iter_
Minimum number of Newton iterations before we can use relaxed CNV convergence criterion.
Definition: BlackoilModelParameters.hpp:219
bool check_well_operability_
Whether to check well operability.
Definition: BlackoilModelParameters.hpp:247
bool check_well_operability_iter_
Whether to check well operability during iterations.
Definition: BlackoilModelParameters.hpp:249
Scalar local_tolerance_scaling_mb_
Definition: BlackoilModelParameters.hpp:276
Scalar dwell_fraction_max_
Max absolute change in well volume fraction in single iteration.
Definition: BlackoilModelParameters.hpp:152
int max_welleq_iter_
Maximum iteration number of the well equation solution.
Definition: BlackoilModelParameters.hpp:212
DomainOrderingMeasure local_domain_ordering_
Definition: BlackoilModelParameters.hpp:283
bool use_update_stabilization_
Try to detect oscillation or stagnation.
Definition: BlackoilModelParameters.hpp:231
int nldd_num_initial_newton_iter_
Definition: BlackoilModelParameters.hpp:279
std::string local_domain_partition_method_
Definition: BlackoilModelParameters.hpp:282
Scalar regularization_factor_wells_
Regularization factor for wells.
Definition: BlackoilModelParameters.hpp:200
DomainSolveApproach local_solve_approach_
'jacobi' and 'gauss-seidel' supported.
Definition: BlackoilModelParameters.hpp:272
BlackoilModelParameters()
Construct from user parameters or defaults.
Scalar tolerance_pressure_ms_wells_
Tolerance for the pressure equations for multisegment wells.
Definition: BlackoilModelParameters.hpp:180
Scalar tolerance_cnv_energy_
Local energy convergence tolerance (max of local energy errors).
Definition: BlackoilModelParameters.hpp:171
int max_local_solve_iterations_
Definition: BlackoilModelParameters.hpp:274
bool local_well_solver_control_switching_
Whether to allow control switching during local well solutions.
Definition: BlackoilModelParameters.hpp:258
Scalar tolerance_wells_
Well convergence tolerance.
Definition: BlackoilModelParameters.hpp:175
Scalar max_residual_allowed_
Absolute max limit for residuals.
Definition: BlackoilModelParameters.hpp:154
bool use_multisegment_well_
Definition: BlackoilModelParameters.hpp:238
int max_inner_iter_ms_wells_
Maximum inner iteration number for ms wells.
Definition: BlackoilModelParameters.hpp:191
int strict_outer_iter_wells_
Newton iteration where wells are stricly convergent.
Definition: BlackoilModelParameters.hpp:197
Scalar tolerance_cnv_energy_relaxed_
Relaxed local energy convergence tolerance (can be used when iter >= min_strict_cnv_iter_ && cnvViola...
Definition: BlackoilModelParameters.hpp:173
Scalar tolerance_mb_
Relative mass balance tolerance (total mass balance error).
Definition: BlackoilModelParameters.hpp:159
Scalar local_domain_partition_imbalance_
Definition: BlackoilModelParameters.hpp:281
Scalar tolerance_cnv_
Local convergence tolerance (max of local saturation errors).
Definition: BlackoilModelParameters.hpp:167
Scalar dbhp_max_rel_
Max relative change in bhp in single iteration.
Definition: BlackoilModelParameters.hpp:150
Scalar tolerance_cnv_relaxed_
Relaxed local convergence tolerance (can be used when iter >= min_strict_cnv_iter_ && cnvViolatedPV <...
Definition: BlackoilModelParameters.hpp:169
Scalar local_tolerance_scaling_cnv_
Definition: BlackoilModelParameters.hpp:277
int network_max_iterations_
Maximum number of iterations in the network solver before giving up.
Definition: BlackoilModelParameters.hpp:267
Scalar relaxed_tolerance_pressure_ms_well_
Relaxed tolerance for the MSW pressure solution.
Definition: BlackoilModelParameters.hpp:185
std::string deck_file_name_
The file name of the deck.
Definition: BlackoilModelParameters.hpp:241
int network_max_strict_iterations_
Maximum number of iterations in the network solver before relaxing tolerance.
Definition: BlackoilModelParameters.hpp:264
Scalar relaxed_max_pv_fraction_
Definition: BlackoilModelParameters.hpp:157
std::string nonlinear_solver_
Nonlinear solver type: newton or nldd.
Definition: BlackoilModelParameters.hpp:270
int strict_inner_iter_wells_
Strict inner iteration number for wells.
Definition: BlackoilModelParameters.hpp:194
Scalar relaxed_tolerance_flow_well_
Relaxed tolerance for for the well flow residual.
Definition: BlackoilModelParameters.hpp:182
Scalar maxSinglePrecisionTimeStep_
Definition: BlackoilModelParameters.hpp:216
Definition: BlackoilModelParameters.hpp:97
static constexpr bool value
Definition: BlackoilModelParameters.hpp:97
Definition: BlackoilModelParameters.hpp:30
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:30
Definition: BlackoilModelParameters.hpp:106
static constexpr bool value
Definition: BlackoilModelParameters.hpp:106
Definition: BlackoilModelParameters.hpp:33
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:33
Definition: BlackoilModelParameters.hpp:35
static constexpr auto value
Definition: BlackoilModelParameters.hpp:35
Definition: BlackoilModelParameters.hpp:105
static constexpr bool value
Definition: BlackoilModelParameters.hpp:105
Definition: BlackoilModelParameters.hpp:104
static constexpr bool value
Definition: BlackoilModelParameters.hpp:104
Definition: BlackoilModelParameters.hpp:138
static constexpr auto value
Definition: BlackoilModelParameters.hpp:138
Definition: BlackoilModelParameters.hpp:135
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:135
Definition: BlackoilModelParameters.hpp:137
static constexpr auto value
Definition: BlackoilModelParameters.hpp:137
Definition: BlackoilModelParameters.hpp:123
static constexpr auto value
Definition: BlackoilModelParameters.hpp:123
Definition: BlackoilModelParameters.hpp:130
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:130
Definition: BlackoilModelParameters.hpp:127
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:127
Definition: BlackoilModelParameters.hpp:116
static constexpr bool value
Definition: BlackoilModelParameters.hpp:116
Definition: BlackoilModelParameters.hpp:83
static constexpr bool value
Definition: BlackoilModelParameters.hpp:83
Definition: BlackoilModelParameters.hpp:94
static constexpr int value
Definition: BlackoilModelParameters.hpp:94
Definition: BlackoilModelParameters.hpp:95
static constexpr int value
Definition: BlackoilModelParameters.hpp:95
Definition: BlackoilModelParameters.hpp:124
static constexpr int value
Definition: BlackoilModelParameters.hpp:124
Definition: BlackoilModelParameters.hpp:93
static constexpr int value
Definition: BlackoilModelParameters.hpp:93
Definition: BlackoilModelParameters.hpp:91
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:91
Definition: BlackoilModelParameters.hpp:38
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:38
Definition: BlackoilModelParameters.hpp:76
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:76
Definition: BlackoilModelParameters.hpp:73
static constexpr int value
Definition: BlackoilModelParameters.hpp:73
Definition: BlackoilModelParameters.hpp:114
static constexpr int value
Definition: BlackoilModelParameters.hpp:114
Definition: BlackoilModelParameters.hpp:78
static constexpr int value
Definition: BlackoilModelParameters.hpp:78
Definition: BlackoilModelParameters.hpp:79
static constexpr int value
Definition: BlackoilModelParameters.hpp:79
Definition: BlackoilModelParameters.hpp:121
static constexpr int value
Definition: BlackoilModelParameters.hpp:121
Definition: BlackoilModelParameters.hpp:120
static constexpr int value
Definition: BlackoilModelParameters.hpp:120
Definition: BlackoilModelParameters.hpp:131
static constexpr int value
Definition: BlackoilModelParameters.hpp:131
Definition: BlackoilModelParameters.hpp:122
static constexpr auto value
Definition: BlackoilModelParameters.hpp:122
Definition: BlackoilModelParameters.hpp:132
static constexpr int value
Definition: BlackoilModelParameters.hpp:132
Definition: BlackoilModelParameters.hpp:102
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:102
Definition: BlackoilModelParameters.hpp:41
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:41
Definition: BlackoilModelParameters.hpp:112
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:112
Definition: BlackoilModelParameters.hpp:109
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:109
Definition: BlackoilModelParameters.hpp:96
static constexpr bool value
Definition: BlackoilModelParameters.hpp:96
Definition: BlackoilModelParameters.hpp:80
static constexpr bool value
Definition: BlackoilModelParameters.hpp:80
Definition: BlackoilModelParameters.hpp:99
static constexpr int value
Definition: BlackoilModelParameters.hpp:99
Definition: BlackoilModelParameters.hpp:98
static constexpr int value
Definition: BlackoilModelParameters.hpp:98
Definition: BlackoilModelParameters.hpp:62
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:62
Definition: BlackoilModelParameters.hpp:65
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:65
Definition: BlackoilModelParameters.hpp:56
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:56
Definition: BlackoilModelParameters.hpp:59
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:59
Definition: BlackoilModelParameters.hpp:50
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:50
Definition: BlackoilModelParameters.hpp:53
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:53
Definition: BlackoilModelParameters.hpp:44
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:44
Definition: BlackoilModelParameters.hpp:47
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:47
Definition: BlackoilModelParameters.hpp:88
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:88
Definition: BlackoilModelParameters.hpp:71
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:71
Definition: BlackoilModelParameters.hpp:68
static constexpr Scalar value
Definition: BlackoilModelParameters.hpp:68
Definition: BlackoilModelParameters.hpp:81
static constexpr bool value
Definition: BlackoilModelParameters.hpp:81
Definition: BlackoilModelParameters.hpp:115
static constexpr bool value
Definition: BlackoilModelParameters.hpp:115
Definition: BlackoilModelParameters.hpp:117
static constexpr bool value
Definition: BlackoilModelParameters.hpp:117
Definition: BlackoilModelParameters.hpp:85
static constexpr bool value
Definition: BlackoilModelParameters.hpp:85
Definition: BlackoilModelParameters.hpp:82
static constexpr bool value
Definition: BlackoilModelParameters.hpp:82