My Project
Opm::WellInterfaceFluidSystem< FluidSystem > Class Template Reference
Inheritance diagram for Opm::WellInterfaceFluidSystem< FluidSystem >:
Opm::WellInterfaceGeneric Opm::WellInterfaceIndices< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices >, GetPropType< TypeTag, Properties::Scalar > > Opm::WellInterfaceIndices< FluidSystem, Indices, Scalar > Opm::WellInterface< TypeTag > Opm::MultisegmentWell< TypeTag > Opm::StandardWell< TypeTag >

Classes

struct  RatioLimitCheckReport
 

Public Member Functions

void updateWellTestState (const SingleWellState &ws, const double &simulationTime, const bool &writeMessageToOPMLog, WellTestState &wellTestState, DeferredLogger &deferred_logger) const
 
int flowPhaseToEbosPhaseIdx (const int phaseIdx) const
 
const RateConverterTyperateConverter () const
 
- Public Member Functions inherited from Opm::WellInterfaceGeneric
 WellInterfaceGeneric (const Well &well, const ParallelWellInfo &parallel_well_info, const int time_step, const int pvtRegionIdx, const int num_components, const int num_phases, const int index_of_well, const std::vector< PerforationData > &perf_data)
 
const std::vector< PerforationData > & perforationData () const
 Get the perforations of the well.
 
const std::string & name () const
 Well name.
 
bool isInjector () const
 True if the well is an injector.
 
bool isProducer () const
 True if the well is a producer.
 
const std::vector< int > & cells () const
 Well cells.
 
int indexOfWell () const
 Index of well in the wells struct and wellState.
 
const Well & wellEcl () const
 
const PhaseUsagephaseUsage () const
 
bool underPredictionMode () const
 Returns true if the well is currently in prediction mode (i.e. not history mode).
 
bool isOperableAndSolvable () const
 
void initCompletions ()
 
void closeCompletions (const WellTestState &wellTestState)
 
void setVFPProperties (const VFPProperties *vfp_properties_arg)
 
void setGuideRate (const GuideRate *guide_rate_arg)
 
void setWellEfficiencyFactor (const double efficiency_factor)
 
void setRepRadiusPerfLength (const std::vector< int > &cartesian_to_compressed)
 
void setWsolvent (const double wsolvent)
 
void setDynamicThpLimit (const double thp_limit)
 
void updatePerforatedCell (std::vector< bool > &is_cell_perforated)
 
bool wellHasTHPConstraints (const SummaryState &summaryState) const
 Returns true if the well has one or more THP limits/constraints.
 
void stopWell ()
 
void openWell ()
 
bool wellIsStopped () const
 
int currentStep () const
 
int pvtRegionIdx () const
 
const GuideRate * guideRate () const
 
int numComponents () const
 
int numPhases () const
 
int numPerfs () const
 
double refDepth () const
 
double gravity () const
 
const VFPPropertiesvfpProperties () const
 
const ParallelWellInfoparallelWellInfo () const
 
const std::vector< double > & perfDepth () const
 
std::vector< double > & perfDepth ()
 
const std::vector< double > & wellIndex () const
 
double getTHPConstraint (const SummaryState &summaryState) const
 
double getALQ (const WellState &well_state) const
 
double wsolvent () const
 
bool isVFPActive (DeferredLogger &deferred_logger) const
 
void reportWellSwitching (const SingleWellState &ws, DeferredLogger &deferred_logger) const
 

Static Public Attributes

static constexpr int Water = BlackoilPhases::Aqua
 
static constexpr int Oil = BlackoilPhases::Liquid
 
static constexpr int Gas = BlackoilPhases::Vapour
 

Protected Types

using RateConverterType = RateConverter::SurfaceToReservoirVoidage< FluidSystem, std::vector< int > >
 

Protected Member Functions

 WellInterfaceFluidSystem (const Well &well, const ParallelWellInfo &parallel_well_info, const int time_step, const RateConverterType &rate_converter, const int pvtRegionIdx, const int num_components, const int num_phases, const int index_of_well, const std::vector< PerforationData > &perf_data)
 
void calculateReservoirRates (SingleWellState &ws) const
 
bool checkIndividualConstraints (SingleWellState &ws, const SummaryState &summaryState) const
 
Well::InjectorCMode activeInjectionConstraint (const SingleWellState &ws, const SummaryState &summaryState) const
 
Well::ProducerCMode activeProductionConstraint (const SingleWellState &ws, const SummaryState &summaryState) const
 
std::pair< bool, double > checkGroupConstraintsInj (const Group &group, const WellState &well_state, const GroupState &group_state, const double efficiencyFactor, const Schedule &schedule, const SummaryState &summaryState, DeferredLogger &deferred_logger) const
 
std::pair< bool, double > checkGroupConstraintsProd (const Group &group, const WellState &well_state, const GroupState &group_state, const double efficiencyFactor, const Schedule &schedule, const SummaryState &summaryState, DeferredLogger &deferred_logger) const
 
bool checkGroupConstraints (WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, DeferredLogger &deferred_logger) const
 
bool checkConstraints (WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, DeferredLogger &deferred_logger) const
 
bool checkRateEconLimits (const WellEconProductionLimits &econ_production_limits, const double *rates_or_potentials, Opm::DeferredLogger &deferred_logger) const
 
void checkMaxWaterCutLimit (const WellEconProductionLimits &econ_production_limits, const SingleWellState &ws, RatioLimitCheckReport &report) const
 
void checkMaxGORLimit (const WellEconProductionLimits &econ_production_limits, const SingleWellState &ws, RatioLimitCheckReport &report) const
 
void checkMaxWGRLimit (const WellEconProductionLimits &econ_production_limits, const SingleWellState &ws, RatioLimitCheckReport &report) const
 
void checkRatioEconLimits (const WellEconProductionLimits &econ_production_limits, const SingleWellState &ws, RatioLimitCheckReport &report, DeferredLogger &deferred_logger) const
 
void updateWellTestStateEconomic (const SingleWellState &ws, const double simulation_time, const bool write_message_to_opmlog, WellTestState &well_test_state, DeferredLogger &deferred_logger) const
 
std::optional< double > getGroupInjectionTargetRate (const Group &group, const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const InjectorType &injectorType, double efficiencyFactor, DeferredLogger &deferred_logger) const
 
double getGroupProductionTargetRate (const Group &group, const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, double efficiencyFactor) const
 
- Protected Member Functions inherited from Opm::WellInterfaceGeneric
bool getAllowCrossFlow () const
 
double mostStrictBhpFromBhpLimits (const SummaryState &summaryState) const
 
void updateWellTestStatePhysical (const double simulation_time, const bool write_message_to_opmlog, WellTestState &well_test_state, DeferredLogger &deferred_logger) const
 

Protected Attributes

const RateConverterTyperateConverter_
 
- Protected Attributes inherited from Opm::WellInterfaceGeneric
OperabilityStatus operability_status_
 
Well well_ecl_
 
const ParallelWellInfoparallel_well_info_
 
const int current_step_
 
const int pvtRegionIdx_
 
const int num_components_
 
int number_of_phases_
 
int index_of_well_
 
const std::vector< PerforationData > * perf_data_
 
std::vector< double > ipr_a_
 
std::vector< double > ipr_b_
 
std::vector< int > well_cells_
 
std::vector< double > well_index_
 
int number_of_perforations_
 
std::vector< double > perf_depth_
 
std::vector< double > perf_rep_radius_
 
std::vector< double > perf_length_
 
std::vector< double > bore_diameters_
 
std::map< int, std::vector< int > > completions_
 
double ref_depth_
 
std::vector< int > saturation_table_number_
 
Well::Status wellStatus_
 
const PhaseUsagephase_usage_
 
double gravity_
 
double wsolvent_
 
std::optional< double > dynamic_thp_limit_
 
double well_efficiency_factor_
 
const VFPPropertiesvfp_properties_
 
const GuideRate * guide_rate_
 
std::vector< std::string > well_control_log_
 

Static Protected Attributes

static constexpr int INVALIDCOMPLETION = std::numeric_limits<int>::max()
 

The documentation for this class was generated from the following files: