opm-simulators
Loading...
Searching...
No Matches
Opm::WellInterface< TypeTag > Class Template Referenceabstract
Inheritance diagram for Opm::WellInterface< TypeTag >:
Opm::WellInterfaceIndices< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > > Opm::WellInterfaceFluidSystem< FluidSystem > Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType > Opm::MultisegmentWell< TypeTag > Opm::StandardWell< TypeTag >

Public Types

enum class  IndividualOrGroup { Individual , Group , Both }
using Grid = GetPropType<TypeTag, Properties::Grid>
using Simulator = GetPropType<TypeTag, Properties::Simulator>
using Scalar = GetPropType<TypeTag, Properties::Scalar>
using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>
using IndexTraits = typename FluidSystem::IndexTraitsType
using Indices = GetPropType<TypeTag, Properties::Indices>
using IntensiveQuantities = GetPropType<TypeTag, Properties::IntensiveQuantities>
using MaterialLaw = GetPropType<TypeTag, Properties::MaterialLaw>
using SparseMatrixAdapter = GetPropType<TypeTag, Properties::SparseMatrixAdapter>
using RateVector = GetPropType<TypeTag, Properties::RateVector>
using GasLiftSingleWell = ::Opm::GasLiftSingleWell<TypeTag>
using GLiftEclWells = typename GasLiftGroupInfo<Scalar, IndexTraits>::GLiftEclWells
using VectorBlockType = Dune::FieldVector<Scalar, Indices::numEq>
using MatrixBlockType = Dune::FieldMatrix<Scalar, Indices::numEq, Indices::numEq>
using Eval = typename Base::Eval
using BVector = Dune::BlockVector<VectorBlockType>
using PressureMatrix = Dune::BCRSMatrix<Opm::MatrixBlock<Scalar, 1, 1>>
using WellStateType = WellState<Scalar, IndexTraits>
using SingleWellStateType = SingleWellState<Scalar, IndexTraits>
using RateConverterType
using ModelParameters = typename Base::ModelParameters
using FluidState
Public Types inherited from Opm::WellInterfaceIndices< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
using Scalar
using Eval
using ModelParameters
Public Types inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
using Scalar = typename FluidSystem::Scalar
using IndexTraits = typename FluidSystem::IndexTraitsType
using ModelParameters = typename WellInterfaceGeneric<Scalar, IndexTraits>::ModelParameters
Public Types inherited from Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType >
using ModelParameters
using WellStateType

Public Member Functions

 WellInterface (const Well &well, const ParallelWellInfo< Scalar > &pw_info, const int time_step, const ModelParameters &param, const RateConverterType &rate_converter, const int pvtRegionIdx, const int num_conservation_quantities, const int num_phases, const int index_of_well, const std::vector< PerforationData< Scalar > > &perf_data)
 Constructor.
virtual ~WellInterface ()=default
 Virtual destructor.
virtual void init (const std::vector< Scalar > &depth_arg, const Scalar gravity_arg, const std::vector< Scalar > &B_avg, const bool changed_to_open_this_step)
virtual ConvergenceReport getWellConvergence (const Simulator &simulator, const WellStateType &well_state, const std::vector< Scalar > &B_avg, DeferredLogger &deferred_logger, const bool relax_tolerance) const =0
virtual void solveEqAndUpdateWellState (const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger)=0
void assembleWellEq (const Simulator &simulator, const double dt, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
void assembleWellEqWithoutIteration (const Simulator &simulator, const double dt, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
void prepareWellBeforeAssembling (const Simulator &simulator, const double dt, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
virtual void computeWellRatesWithBhp (const Simulator &ebosSimulator, const Scalar &bhp, std::vector< Scalar > &well_flux, DeferredLogger &deferred_logger) const =0
virtual std::optional< Scalar > computeBhpAtThpLimitProdWithAlq (const Simulator &ebos_simulator, const SummaryState &summary_state, const Scalar alq_value, DeferredLogger &deferred_logger, bool iterate_if_no_solution) const =0
virtual void recoverWellSolutionAndUpdateWellState (const Simulator &simulator, const BVector &x, WellStateType &well_state, DeferredLogger &deferred_logger)=0
 using the solution x to recover the solution xw for wells and applying xw to update Well State
virtual void apply (const BVector &x, BVector &Ax) const =0
 Ax = Ax - C D^-1 B x.
virtual void apply (BVector &r) const =0
 r = r - C D^-1 Rw
virtual void computeWellPotentials (const Simulator &simulator, const WellStateType &well_state, std::vector< Scalar > &well_potentials, DeferredLogger &deferred_logger)=0
virtual void updateWellStateWithTarget (const Simulator &simulator, const GroupState< Scalar > &group_state, WellStateType &well_state, DeferredLogger &deferred_logger) const
virtual void scaleSegmentRatesAndPressure (WellStateType &well_state) const
virtual void computeWellRatesWithBhpIterations (const Simulator &simulator, const Scalar &bhp, std::vector< Scalar > &well_flux, DeferredLogger &deferred_logger) const =0
bool wellUnderZeroRateTarget (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger) const
bool wellUnderZeroGroupRateTarget (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger, std::optional< bool > group_control=std::nullopt) const
bool stoppedOrZeroRateTarget (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger) const
bool updateWellStateWithTHPTargetProd (const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger) const
bool updateWellControl (const Simulator &simulator, const IndividualOrGroup iog, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
bool updateWellControlAndStatusLocalIteration (const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const Scalar WQTotal, DeferredLogger &deferred_logger, const bool fixed_control=false, const bool fixed_status=false)
virtual void updatePrimaryVariables (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)=0
virtual void calculateExplicitQuantities (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)=0
virtual void updateProductivityIndex (const Simulator &simulator, const WellProdIndexCalculator< Scalar > &wellPICalc, WellStateType &well_state, DeferredLogger &deferred_logger) const =0
virtual void addWellContributions (SparseMatrixAdapter &) const =0
virtual void addWellPressureEquations (PressureMatrix &mat, const BVector &x, const int pressureVarIndex, const bool use_well_weights, const WellStateType &well_state) const =0
void addCellRates (RateVector &rates, int cellIdx) const
Scalar volumetricSurfaceRateForConnection (int cellIdx, int phaseIdx) const
void wellTesting (const Simulator &simulator, const double simulation_time, WellStateType &well_state, const GroupState< Scalar > &group_state, WellTestState &welltest_state, GLiftEclWells &ecl_well_map, std::map< std::string, double > &open_times, DeferredLogger &deferred_logger)
void checkWellOperability (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)
void gliftBeginTimeStepWellTestUpdateALQ (const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, GLiftEclWells &ecl_well_map, DeferredLogger &deferred_logger)
void updateWellOperability (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)
bool updateWellOperabilityFromWellEq (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)
virtual void updateWaterThroughput (const double dt, WellStateType &well_state) const =0
virtual std::vector< Scalar > computeCurrentWellRates (const Simulator &simulator, DeferredLogger &deferred_logger) const =0
 Compute well rates based on current reservoir conditions and well variables.
void initializeProducerWellState (const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger) const
 Modify the well_state's rates if there is only one nonzero rate.
void solveWellEquation (const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
const std::vector< RateVector > & connectionRates () const
std::vector< Scalar > wellIndex (const int perf, const IntensiveQuantities &intQuants, const Scalar trans_mult, const SingleWellStateType &ws) const
void updateConnectionDFactor (const Simulator &simulator, SingleWellStateType &ws) const
void updateConnectionTransmissibilityFactor (const Simulator &simulator, SingleWellStateType &ws) const
virtual bool iterateWellEqWithSwitching (const Simulator &simulator, const double dt, const WellInjectionControls &inj_controls, const WellProductionControls &prod_controls, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger, const bool fixed_control=false, const bool fixed_status=false)=0
Public Member Functions inherited from Opm::WellInterfaceIndices< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
Scalar scalingFactor (const int phaseIdx) const
Eval restrictEval (const EvalWell &in) const
Public Member Functions inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
const RateConverterType & rateConverter () const
Public Member Functions inherited from Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType >
 WellInterfaceGeneric (const Well &well, const ParallelWellInfo< Scalar > &parallel_well_info, const int time_step, const ModelParameters &param, const int pvtRegionIdx, const int num_conservation_quantities, const int num_phases, const int index_of_well, const PhaseUsageInfo< FluidSystem::IndexTraitsType > &phase_usage, const std::vector< PerforationData< Scalar > > &perf_data)
const std::vector< PerforationData< Scalar > > & 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.
void adaptRatesForVFP (std::vector< Scalar > &rates) const
const Well & wellEcl () const
const PhaseUsageInfo< FluidSystem::IndexTraitsType > & phaseUsage () const
bool underPredictionMode () const
 Returns true if the well is currently in prediction mode (i.e. not history mode).
bool isOperableAndSolvable () const
bool useVfpExplicit () const
bool thpLimitViolatedButNotSwitched () const
void initCompletions ()
void closeCompletions (const WellTestState &wellTestState)
void setVFPProperties (const VFPProperties< Scalar, FluidSystem::IndexTraitsType > *vfp_properties_arg)
void setPrevSurfaceRates (WellStateType &well_state, const WellStateType &prev_well_state) const
void setGuideRate (const GuideRate *guide_rate_arg)
void setWellEfficiencyFactor (const Scalar efficiency_factor)
void setRepRadiusPerfLength ()
void setWsolvent (const Scalar wsolvent)
void setDynamicThpLimit (const Scalar thp_limit)
std::optional< Scalar > getDynamicThpLimit () const
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 ()
Well::Status wellStatus ()
bool wellIsStopped () const
int currentStep () const
int pvtRegionIdx () const
const GuideRate * guideRate () const
int numConservationQuantities () const
int numPhases () const
int numLocalPerfs () const
Scalar refDepth () const
Scalar gravity () const
const VFPProperties< Scalar, FluidSystem::IndexTraitsType > * vfpProperties () const
const ParallelWellInfo< Scalar > & parallelWellInfo () const
const std::vector< Scalar > & perfDepth () const
const std::vector< Scalar > & wellIndex () const
const std::map< int, std::vector< int > > & getCompletions () const
Scalar getTHPConstraint (const SummaryState &summaryState) const
Scalar getALQ (const WellStateType &well_state) const
Scalar wsolvent () const
Scalar rsRvInj () const
void initInjMult (const std::vector< Scalar > &max_inj_mult)
void updateInjMult (std::vector< Scalar > &inj_multipliers, DeferredLogger &deferred_logger) const
Scalar getInjMult (const int local_perf_index, const Scalar bhp, const Scalar perf_pres, DeferredLogger &dlogger) const
bool isVFPActive (DeferredLogger &deferred_logger) const
void reportWellSwitching (const SingleWellState< Scalar, FluidSystem::IndexTraitsType > &ws, DeferredLogger &deferred_logger) const
bool changedToOpenThisStep () const
void updateWellTestState (const SingleWellState< Scalar, FluidSystem::IndexTraitsType > &ws, const double &simulationTime, const bool &writeMessageToOPMLog, const bool zero_group_target, WellTestState &wellTestState, DeferredLogger &deferred_logger) const
bool isPressureControlled (const WellStateType &well_state) const
Scalar wellEfficiencyFactor () const
void updateFilterCakeMultipliers (const std::vector< Scalar > &inj_fc_multiplier)
 Update filter cake multipliers.
void resetWellOperability ()
virtual std::vector< Scalar > getPrimaryVars () const
virtual int setPrimaryVars (typename std::vector< Scalar >::const_iterator)
virtual Scalar connectionDensity (const int globalConnIdx, const int openConnIdx) const=0
void addPerforations (const std::vector< RuntimePerforation > &perfs)

Static Public Attributes

static constexpr bool has_solvent = getPropValue<TypeTag, Properties::EnableSolvent>()
static constexpr bool has_zFraction = getPropValue<TypeTag, Properties::EnableExtbo>()
static constexpr bool has_polymer = getPropValue<TypeTag, Properties::EnablePolymer>()
static constexpr bool has_energy = getPropValue<TypeTag, Properties::EnableEnergy>()
static const bool has_temperature = getPropValue<TypeTag, Properties::EnableTemperature>()
static constexpr bool has_polymermw = getPropValue<TypeTag, Properties::EnablePolymerMW>()
static constexpr bool has_foam = getPropValue<TypeTag, Properties::EnableFoam>()
static constexpr bool has_brine = getPropValue<TypeTag, Properties::EnableBrine>()
static constexpr bool has_watVapor = getPropValue<TypeTag, Properties::EnableVapwat>()
static constexpr bool has_disgas_in_water = getPropValue<TypeTag, Properties::EnableDisgasInWater>()
static constexpr bool has_saltPrecip = getPropValue<TypeTag, Properties::EnableSaltPrecipitation>()
static constexpr bool has_bioeffects = getPropValue<TypeTag, Properties::EnableBioeffects>()
static constexpr bool has_micp = Indices::enableMICP
Static Public Attributes inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
static constexpr int Water = IndexTraits::waterPhaseIdx
static constexpr int Oil = IndexTraits::oilPhaseIdx
static constexpr int Gas = IndexTraits::gasPhaseIdx

Protected Member Functions

Scalar wpolymer () const
Scalar wfoam () const
Scalar wsalt () const
Scalar wmicrobes () const
Scalar woxygen () const
Scalar wurea () const
virtual Scalar getRefDensity () const =0
std::vector< Scalar > initialWellRateFractions (const Simulator &ebosSimulator, const WellStateType &well_state) const
virtual void checkOperabilityUnderBHPLimit (const WellStateType &well_state, const Simulator &simulator, DeferredLogger &deferred_logger)=0
virtual void checkOperabilityUnderTHPLimit (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)=0
virtual void updateIPR (const Simulator &simulator, DeferredLogger &deferred_logger) const =0
virtual void assembleWellEqWithoutIteration (const Simulator &simulator, const double dt, const WellInjectionControls &inj_controls, const WellProductionControls &prod_controls, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)=0
virtual bool iterateWellEqWithControl (const Simulator &simulator, const double dt, const WellInjectionControls &inj_controls, const WellProductionControls &prod_controls, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)=0
virtual void updateIPRImplicit (const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger)=0
bool iterateWellEquations (const Simulator &simulator, const double dt, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
bool solveWellWithOperabilityCheck (const Simulator &simulator, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
std::optional< Scalar > estimateOperableBhp (const Simulator &ebos_simulator, const double dt, WellStateType &well_state, const SummaryState &summary_state, DeferredLogger &deferred_logger)
bool solveWellWithBhp (const Simulator &simulator, const double dt, const Scalar bhp, WellStateType &well_state, DeferredLogger &deferred_logger)
bool solveWellWithZeroRate (const Simulator &simulator, const double dt, WellStateType &well_state, DeferredLogger &deferred_logger)
bool solveWellForTesting (const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger)
template<class GasLiftSingleWell>
std::unique_ptr< GasLiftSingleWell > initializeGliftWellTest_ (const Simulator &simulator, WellStateType &well_state, const GroupState< Scalar > &group_state, GLiftEclWells &ecl_well_map, DeferredLogger &deferred_logger)
Eval getPerfCellPressure (const FluidState &fs) const
template<class Value, class Callback>
void getMobility (const Simulator &simulator, const int local_perf_index, std::vector< Value > &mob, Callback &extendEval, DeferredLogger &deferred_logger) const
void computeConnLevelProdInd (const FluidState &fs, const std::function< Scalar(const Scalar)> &connPICalc, const std::vector< Scalar > &mobility, Scalar *connPI) const
void computeConnLevelInjInd (const FluidState &fs, const Phase preferred_phase, const std::function< Scalar(const Scalar)> &connIICalc, const std::vector< Scalar > &mobility, Scalar *connII, DeferredLogger &deferred_logger) const
Scalar computeConnectionDFactor (const int perf, const IntensiveQuantities &intQuants, const SingleWellStateType &ws) const
Protected Member Functions inherited from Opm::WellInterfaceIndices< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
 WellInterfaceIndices (const Well &well, const ParallelWellInfo< Scalar > &parallel_well_info, const int time_step, const ModelParameters &param, const typename WellInterfaceFluidSystem< FluidSystem >::RateConverterType &rate_converter, const int pvtRegionIdx, const int num_conservation_quantities, const int num_phases, const int index_of_well, const std::vector< PerforationData< Scalar > > &perf_data)
Protected Member Functions inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
 WellInterfaceFluidSystem (const Well &well, const ParallelWellInfo< Scalar > &parallel_well_info, const int time_step, const ModelParameters &param, const RateConverterType &rate_converter, const int pvtRegionIdx, const int num_conservation_quantities, const int num_phases, const int index_of_well, const std::vector< PerforationData< Scalar > > &perf_data)
void calculateReservoirRates (const bool co2store, SingleWellState< Scalar, IndexTraits > &ws) const
bool checkIndividualConstraints (SingleWellState< Scalar, IndexTraits > &ws, const SummaryState &summaryState, DeferredLogger &deferred_logger, const std::optional< Well::InjectionControls > &inj_controls=std::nullopt, const std::optional< Well::ProductionControls > &prod_controls=std::nullopt) const
bool checkGroupConstraints (WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, const Schedule &schedule, const SummaryState &summaryState, const bool check_guide_rate, DeferredLogger &deferred_logger) const
bool checkConstraints (WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, const Schedule &schedule, const SummaryState &summaryState, DeferredLogger &deferred_logger) const
std::optional< Scalar > getGroupInjectionTargetRate (const Group &group, const WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, const Schedule &schedule, const SummaryState &summaryState, const InjectorType &injectorType, Scalar efficiencyFactor, DeferredLogger &deferred_logger) const
Scalar getGroupProductionTargetRate (const Group &group, const WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, const Schedule &schedule, const SummaryState &summaryState, Scalar efficiencyFactor, DeferredLogger &deferred_logger) const
bool zeroGroupRateTarget (const SummaryState &summary_state, const Schedule &schedule, const WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferredLogger) const
Protected Member Functions inherited from Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType >
bool getAllowCrossFlow () const
Scalar wmicrobes_ () const
Scalar wfoam_ () const
Scalar woxygen_ () const
Scalar wpolymer_ () const
Scalar wsalt_ () const
Scalar wurea_ () const
int polymerTable_ () const
int polymerInjTable_ () const
int polymerWaterTable_ () const
bool wellUnderZeroRateTargetIndividual (const SummaryState &summary_state, const WellState< Scalar, FluidSystem::IndexTraitsType > &well_state) const
bool wellUnderGroupControl (const SingleWellState< Scalar, FluidSystem::IndexTraitsType > &ws) const
std::pair< bool, bool > computeWellPotentials (std::vector< Scalar > &well_potentials, const WellStateType &well_state)
void checkNegativeWellPotentials (std::vector< Scalar > &well_potentials, const bool checkOperability, DeferredLogger &deferred_logger)
void onlyKeepBHPandTHPcontrols (const SummaryState &summary_state, WellStateType &well_state, Well::InjectionControls &inj_controls, Well::ProductionControls &prod_controls) const
void resetDampening ()

Protected Attributes

std::vector< RateVector > connectionRates_
std::vector< Scalar > B_avg_
bool changed_to_stopped_this_step_ = false
bool thp_update_iterations = false
int number_of_well_reopenings_ {0}
Protected Attributes inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
const RateConverterType & rateConverter_
Protected Attributes inherited from Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType >
OperabilityStatus operability_status_
Well well_ecl_
const ParallelWellInfo< Scalar > & parallel_well_info_
const int current_step_
const ModelParameters & param_
const int pvtRegionIdx_
const int num_conservation_quantities_
int number_of_phases_
int index_of_well_
const PhaseUsageInfo< FluidSystem::IndexTraitsType > & phase_usage_
const std::vector< PerforationData< Scalar > > * perf_data_
std::vector< Scalar > ipr_a_
std::vector< Scalar > ipr_b_
std::vector< int > well_cells_
std::vector< Scalar > well_index_
int number_of_local_perforations_
std::vector< Scalar > perf_depth_
std::vector< Scalar > perf_rep_radius_
std::vector< Scalar > perf_length_
std::vector< Scalar > bore_diameters_
std::map< int, std::vector< int > > completions_
Scalar ref_depth_
std::vector< int > saturation_table_number_
Well::Status wellStatus_
Scalar gravity_
Scalar wsolvent_
std::optional< Scalar > dynamic_thp_limit_
std::vector< Scalar > inj_multiplier_
std::vector< Scalar > prev_inj_multiplier_
std::vector< Scalar > inj_multiplier_previter_
std::vector< Scalar > inj_multiplier_damp_factor_
std::vector< Scalar > inj_fc_multiplier_
Scalar well_efficiency_factor_
const VFPProperties< Scalar, FluidSystem::IndexTraitsType > * vfp_properties_
const GuideRate * guide_rate_
std::vector< std::string > well_control_log_
bool changed_to_open_this_step_

Additional Inherited Members

Protected Types inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
using RateConverterType
Static Protected Attributes inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
static constexpr int INVALIDCOMPLETION = std::numeric_limits<int>::max()

Member Typedef Documentation

◆ FluidState

template<typename TypeTag>
using Opm::WellInterface< TypeTag >::FluidState
Initial value:
BlackOilFluidState<Eval,
FluidSystem,
has_temperature,
has_energy,
Indices::compositionSwitchIdx >= 0,
has_watVapor,
has_brine,
has_saltPrecip,
has_disgas_in_water,
Indices::numPhases >

◆ RateConverterType

template<typename TypeTag>
using Opm::WellInterface< TypeTag >::RateConverterType
Initial value:
typename WellInterfaceFluidSystem<FluidSystem>::RateConverterType

Member Function Documentation

◆ apply() [1/2]

template<typename TypeTag>
virtual void Opm::WellInterface< TypeTag >::apply ( BVector & r) const
pure virtual

r = r - C D^-1 Rw

Implemented in Opm::MultisegmentWell< TypeTag >, and Opm::StandardWell< TypeTag >.

◆ apply() [2/2]

template<typename TypeTag>
virtual void Opm::WellInterface< TypeTag >::apply ( const BVector & x,
BVector & Ax ) const
pure virtual

Ax = Ax - C D^-1 B x.

Implemented in Opm::MultisegmentWell< TypeTag >, and Opm::StandardWell< TypeTag >.

◆ computeCurrentWellRates()

template<typename TypeTag>
virtual std::vector< Scalar > Opm::WellInterface< TypeTag >::computeCurrentWellRates ( const Simulator & simulator,
DeferredLogger & deferred_logger ) const
pure virtual

Compute well rates based on current reservoir conditions and well variables.

Used in updateWellStateRates().

Implemented in Opm::MultisegmentWell< TypeTag >, and Opm::StandardWell< TypeTag >.

◆ initializeProducerWellState()

template<typename TypeTag>
void Opm::WellInterface< TypeTag >::initializeProducerWellState ( const Simulator & simulator,
WellStateType & well_state,
DeferredLogger & deferred_logger ) const

Modify the well_state's rates if there is only one nonzero rate.

If so, that rate is kept as is, but the others are set proportionally to the rates at bhp limit or bhp 1 bar.

◆ recoverWellSolutionAndUpdateWellState()

template<typename TypeTag>
virtual void Opm::WellInterface< TypeTag >::recoverWellSolutionAndUpdateWellState ( const Simulator & simulator,
const BVector & x,
WellStateType & well_state,
DeferredLogger & deferred_logger )
pure virtual

using the solution x to recover the solution xw for wells and applying xw to update Well State

Implemented in Opm::MultisegmentWell< TypeTag >, and Opm::StandardWell< TypeTag >.

◆ scaleSegmentRatesAndPressure()

template<typename TypeTag>
void Opm::WellInterface< TypeTag >::scaleSegmentRatesAndPressure ( WellStateType & well_state) const
virtual

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