Opm::BlackoilModelParameters< TypeTag > Struct Template Reference

Solver parameters for the BlackoilModel. More...

#include <BlackoilModelParameters.hpp>

Public Member Functions

 BlackoilModelParameters ()
 Construct from user parameters or defaults. More...
 

Static Public Member Functions

static void registerParameters ()
 

Public Attributes

double dbhp_max_rel_
 Max relative change in bhp in single iteration. More...
 
double dwell_fraction_max_
 Max absolute change in well volume fraction in single iteration. More...
 
double max_residual_allowed_
 Absolute max limit for residuals. More...
 
double relaxed_max_pv_fraction_
 
double tolerance_mb_
 Relative mass balance tolerance (total mass balance error). More...
 
double tolerance_mb_relaxed_
 Relaxed mass balance tolerance (can be used when iter >= min_strict_mb_iter_). More...
 
double tolerance_cnv_
 Local convergence tolerance (max of local saturation errors). More...
 
double tolerance_cnv_relaxed_
 Relaxed local convergence tolerance (can be used when iter >= min_strict_cnv_iter_ && cnvViolatedPV < relaxed_max_pv_fraction_). More...
 
double tolerance_wells_
 Well convergence tolerance. More...
 
double tolerance_well_control_
 Tolerance for the well control equations. More...
 
double tolerance_pressure_ms_wells_
 Tolerance for the pressure equations for multisegment wells. More...
 
double relaxed_tolerance_flow_well_
 Relaxed tolerance for for the well flow residual. More...
 
double relaxed_tolerance_pressure_ms_well_
 Relaxed tolerance for the MSW pressure solution. More...
 
double max_pressure_change_ms_wells_
 Maximum pressure change over an iteratio for ms wells. More...
 
int max_inner_iter_ms_wells_
 Maximum inner iteration number for ms wells. More...
 
int strict_inner_iter_wells_
 Strict inner iteration number for wells. More...
 
int strict_outer_iter_wells_
 Newton iteration where wells are stricly convergent. More...
 
double regularization_factor_wells_
 Regularization factor for wells. More...
 
int max_niter_inner_well_iter_
 Maximum newton iterations with inner well iterations. More...
 
bool shut_unsolvable_wells_
 Whether to shut unsolvable well. More...
 
int max_inner_iter_wells_
 Maximum inner iteration number for standard wells. More...
 
int max_welleq_iter_
 Maximum iteration number of the well equation solution. More...
 
double maxSinglePrecisionTimeStep_
 
int min_strict_cnv_iter_
 Minimum number of Newton iterations before we can use relaxed CNV convergence criterion. More...
 
int min_strict_mb_iter_
 Minimum number of Newton iterations before we can use relaxed MB convergence criterion. More...
 
bool solve_welleq_initially_
 Solve well equation initially. More...
 
bool update_equations_scaling_
 Update scaling factors for mass balance equations. More...
 
bool use_update_stabilization_
 Try to detect oscillation or stagnation. More...
 
bool use_multisegment_well_
 
std::string deck_file_name_
 The file name of the deck. More...
 
bool matrix_add_well_contributions_
 Whether to add influences of wells between cells to the matrix and preconditioner matrix. More...
 
bool check_well_operability_
 Whether to check well operability. More...
 
bool check_well_operability_iter_
 Whether to check well operability during iterations. More...
 
int max_number_of_well_switches_
 Maximum number of times a well can switch to the same controt. More...
 
bool use_average_density_ms_wells_
 Whether to approximate segment densities by averaging over segment and its outlet. More...
 
bool local_well_solver_control_switching_
 Whether to allow control switching during local well solutions. More...
 
bool use_implicit_ipr_
 Whether to use implicit IPR for thp stability checks and solution search. More...
 
int network_max_strict_iterations_
 Maximum number of iterations in the network solver before relaxing tolerance. More...
 
int network_max_iterations_
 Maximum number of iterations in the network solver before giving up. More...
 
std::string nonlinear_solver_
 Nonlinear solver type: newton or nldd. More...
 
DomainSolveApproach local_solve_approach_ {DomainSolveApproach::Jacobi}
 'jacobi' and 'gauss-seidel' supported. More...
 
int max_local_solve_iterations_
 
double local_tolerance_scaling_mb_
 
double local_tolerance_scaling_cnv_
 
int nldd_num_initial_newton_iter_ {1}
 
int num_local_domains_ {0}
 
double local_domain_partition_imbalance_ {1.03}
 
std::string local_domain_partition_method_
 
DomainOrderingMeasure local_domain_ordering_ {DomainOrderingMeasure::MaxPressure}
 
bool write_partitions_ {false}
 

Detailed Description

template<class TypeTag>
struct Opm::BlackoilModelParameters< TypeTag >

Solver parameters for the BlackoilModel.

Constructor & Destructor Documentation

◆ BlackoilModelParameters()

template<class TypeTag >
Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters ( )
inline

Construct from user parameters or defaults.

References Opm::BlackoilModelParameters< TypeTag >::check_well_operability_, Opm::BlackoilModelParameters< TypeTag >::check_well_operability_iter_, Opm::BlackoilModelParameters< TypeTag >::dbhp_max_rel_, Opm::BlackoilModelParameters< TypeTag >::deck_file_name_, Opm::domainOrderingMeasureFromString(), Opm::BlackoilModelParameters< TypeTag >::dwell_fraction_max_, Opm::GaussSeidel, Opm::Jacobi, Opm::BlackoilModelParameters< TypeTag >::local_domain_ordering_, Opm::BlackoilModelParameters< TypeTag >::local_domain_partition_imbalance_, Opm::BlackoilModelParameters< TypeTag >::local_domain_partition_method_, Opm::BlackoilModelParameters< TypeTag >::local_solve_approach_, Opm::BlackoilModelParameters< TypeTag >::local_tolerance_scaling_cnv_, Opm::BlackoilModelParameters< TypeTag >::local_tolerance_scaling_mb_, Opm::BlackoilModelParameters< TypeTag >::local_well_solver_control_switching_, Opm::BlackoilModelParameters< TypeTag >::matrix_add_well_contributions_, Opm::BlackoilModelParameters< TypeTag >::max_inner_iter_ms_wells_, Opm::BlackoilModelParameters< TypeTag >::max_inner_iter_wells_, Opm::BlackoilModelParameters< TypeTag >::max_local_solve_iterations_, Opm::BlackoilModelParameters< TypeTag >::max_niter_inner_well_iter_, Opm::BlackoilModelParameters< TypeTag >::max_number_of_well_switches_, Opm::BlackoilModelParameters< TypeTag >::max_pressure_change_ms_wells_, Opm::BlackoilModelParameters< TypeTag >::max_residual_allowed_, Opm::BlackoilModelParameters< TypeTag >::max_welleq_iter_, Opm::BlackoilModelParameters< TypeTag >::maxSinglePrecisionTimeStep_, Opm::BlackoilModelParameters< TypeTag >::min_strict_cnv_iter_, Opm::BlackoilModelParameters< TypeTag >::min_strict_mb_iter_, Opm::BlackoilModelParameters< TypeTag >::network_max_iterations_, Opm::BlackoilModelParameters< TypeTag >::network_max_strict_iterations_, Opm::BlackoilModelParameters< TypeTag >::nldd_num_initial_newton_iter_, Opm::BlackoilModelParameters< TypeTag >::nonlinear_solver_, Opm::BlackoilModelParameters< TypeTag >::num_local_domains_, Opm::BlackoilModelParameters< TypeTag >::regularization_factor_wells_, Opm::BlackoilModelParameters< TypeTag >::relaxed_max_pv_fraction_, Opm::BlackoilModelParameters< TypeTag >::relaxed_tolerance_flow_well_, Opm::BlackoilModelParameters< TypeTag >::relaxed_tolerance_pressure_ms_well_, Opm::BlackoilModelParameters< TypeTag >::shut_unsolvable_wells_, Opm::BlackoilModelParameters< TypeTag >::solve_welleq_initially_, Opm::BlackoilModelParameters< TypeTag >::strict_inner_iter_wells_, Opm::BlackoilModelParameters< TypeTag >::strict_outer_iter_wells_, Opm::BlackoilModelParameters< TypeTag >::tolerance_cnv_, Opm::BlackoilModelParameters< TypeTag >::tolerance_cnv_relaxed_, Opm::BlackoilModelParameters< TypeTag >::tolerance_mb_, Opm::BlackoilModelParameters< TypeTag >::tolerance_mb_relaxed_, Opm::BlackoilModelParameters< TypeTag >::tolerance_pressure_ms_wells_, Opm::BlackoilModelParameters< TypeTag >::tolerance_well_control_, Opm::BlackoilModelParameters< TypeTag >::tolerance_wells_, Opm::BlackoilModelParameters< TypeTag >::update_equations_scaling_, Opm::BlackoilModelParameters< TypeTag >::use_average_density_ms_wells_, Opm::BlackoilModelParameters< TypeTag >::use_implicit_ipr_, Opm::BlackoilModelParameters< TypeTag >::use_multisegment_well_, Opm::BlackoilModelParameters< TypeTag >::use_update_stabilization_, and Opm::BlackoilModelParameters< TypeTag >::write_partitions_.

Member Function Documentation

◆ registerParameters()

template<class TypeTag >
static void Opm::BlackoilModelParameters< TypeTag >::registerParameters ( )
inlinestatic

Member Data Documentation

◆ check_well_operability_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::check_well_operability_

Whether to check well operability.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ check_well_operability_iter_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::check_well_operability_iter_

Whether to check well operability during iterations.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ dbhp_max_rel_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::dbhp_max_rel_

Max relative change in bhp in single iteration.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ deck_file_name_

template<class TypeTag >
std::string Opm::BlackoilModelParameters< TypeTag >::deck_file_name_

The file name of the deck.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ dwell_fraction_max_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::dwell_fraction_max_

Max absolute change in well volume fraction in single iteration.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ local_domain_ordering_

◆ local_domain_partition_imbalance_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::local_domain_partition_imbalance_ {1.03}

◆ local_domain_partition_method_

template<class TypeTag >
std::string Opm::BlackoilModelParameters< TypeTag >::local_domain_partition_method_

◆ local_solve_approach_

template<class TypeTag >
DomainSolveApproach Opm::BlackoilModelParameters< TypeTag >::local_solve_approach_ {DomainSolveApproach::Jacobi}

'jacobi' and 'gauss-seidel' supported.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ local_tolerance_scaling_cnv_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::local_tolerance_scaling_cnv_

◆ local_tolerance_scaling_mb_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::local_tolerance_scaling_mb_

◆ local_well_solver_control_switching_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::local_well_solver_control_switching_

Whether to allow control switching during local well solutions.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ matrix_add_well_contributions_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::matrix_add_well_contributions_

◆ max_inner_iter_ms_wells_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::max_inner_iter_ms_wells_

Maximum inner iteration number for ms wells.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ max_inner_iter_wells_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::max_inner_iter_wells_

Maximum inner iteration number for standard wells.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ max_local_solve_iterations_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::max_local_solve_iterations_

◆ max_niter_inner_well_iter_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::max_niter_inner_well_iter_

Maximum newton iterations with inner well iterations.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ max_number_of_well_switches_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::max_number_of_well_switches_

Maximum number of times a well can switch to the same controt.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ max_pressure_change_ms_wells_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::max_pressure_change_ms_wells_

Maximum pressure change over an iteratio for ms wells.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ max_residual_allowed_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::max_residual_allowed_

Absolute max limit for residuals.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ max_welleq_iter_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::max_welleq_iter_

Maximum iteration number of the well equation solution.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ maxSinglePrecisionTimeStep_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::maxSinglePrecisionTimeStep_

Tolerance for time step in seconds where single precision can be used for solving for the Jacobian

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ min_strict_cnv_iter_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::min_strict_cnv_iter_

Minimum number of Newton iterations before we can use relaxed CNV convergence criterion.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters(), and Opm::BlackoilModel< TypeTag >::getReservoirConvergence().

◆ min_strict_mb_iter_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::min_strict_mb_iter_

Minimum number of Newton iterations before we can use relaxed MB convergence criterion.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters(), and Opm::BlackoilModel< TypeTag >::getReservoirConvergence().

◆ network_max_iterations_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::network_max_iterations_

Maximum number of iterations in the network solver before giving up.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ network_max_strict_iterations_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::network_max_strict_iterations_

Maximum number of iterations in the network solver before relaxing tolerance.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ nldd_num_initial_newton_iter_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::nldd_num_initial_newton_iter_ {1}

◆ nonlinear_solver_

template<class TypeTag >
std::string Opm::BlackoilModelParameters< TypeTag >::nonlinear_solver_

◆ num_local_domains_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::num_local_domains_ {0}

◆ regularization_factor_wells_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::regularization_factor_wells_

Regularization factor for wells.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ relaxed_max_pv_fraction_

◆ relaxed_tolerance_flow_well_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::relaxed_tolerance_flow_well_

Relaxed tolerance for for the well flow residual.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ relaxed_tolerance_pressure_ms_well_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::relaxed_tolerance_pressure_ms_well_

Relaxed tolerance for the MSW pressure solution.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ shut_unsolvable_wells_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::shut_unsolvable_wells_

Whether to shut unsolvable well.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ solve_welleq_initially_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::solve_welleq_initially_

Solve well equation initially.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ strict_inner_iter_wells_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::strict_inner_iter_wells_

Strict inner iteration number for wells.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ strict_outer_iter_wells_

template<class TypeTag >
int Opm::BlackoilModelParameters< TypeTag >::strict_outer_iter_wells_

Newton iteration where wells are stricly convergent.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ tolerance_cnv_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_cnv_

◆ tolerance_cnv_relaxed_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_cnv_relaxed_

Relaxed local convergence tolerance (can be used when iter >= min_strict_cnv_iter_ && cnvViolatedPV < relaxed_max_pv_fraction_).

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters(), and Opm::BlackoilModel< TypeTag >::getReservoirConvergence().

◆ tolerance_mb_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_mb_

◆ tolerance_mb_relaxed_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_mb_relaxed_

Relaxed mass balance tolerance (can be used when iter >= min_strict_mb_iter_).

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters(), and Opm::BlackoilModel< TypeTag >::getReservoirConvergence().

◆ tolerance_pressure_ms_wells_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_pressure_ms_wells_

Tolerance for the pressure equations for multisegment wells.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ tolerance_well_control_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_well_control_

Tolerance for the well control equations.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ tolerance_wells_

template<class TypeTag >
double Opm::BlackoilModelParameters< TypeTag >::tolerance_wells_

Well convergence tolerance.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ update_equations_scaling_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::update_equations_scaling_

Update scaling factors for mass balance equations.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters(), and Opm::BlackoilModel< TypeTag >::prepareStep().

◆ use_average_density_ms_wells_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::use_average_density_ms_wells_

Whether to approximate segment densities by averaging over segment and its outlet.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ use_implicit_ipr_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::use_implicit_ipr_

Whether to use implicit IPR for thp stability checks and solution search.

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters().

◆ use_multisegment_well_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::use_multisegment_well_

Whether to use MultisegmentWell to handle multisegment wells it is something temporary before the multisegment well model is considered to be well developed and tested. if it is false, we will handle multisegment wells as standard wells, which will be the default behavoir for the moment. Later, we might set it to be true by default if necessary

Referenced by Opm::BlackoilModelParameters< TypeTag >::BlackoilModelParameters(), Opm::BlackoilWellModel< TypeTag >::initFromRestartFile(), and Opm::BlackoilWellModel< TypeTag >::prepareDeserialize().

◆ use_update_stabilization_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::use_update_stabilization_

◆ write_partitions_

template<class TypeTag >
bool Opm::BlackoilModelParameters< TypeTag >::write_partitions_ {false}

The documentation for this struct was generated from the following file: