Loading...
Searching...
No Matches
Opm::StandardWell< TypeTag > Class Template Reference
Inheritance diagram for Opm::StandardWell< TypeTag >:

## Public Types

using | Base = WellInterface<TypeTag>
using | StdWellEval
using | PolymerModule = BlackOilPolymerModule<TypeTag>
using | FoamModule = BlackOilFoamModule<TypeTag>
using | Eval = typename StdWellEval::Eval
using | EvalWell = typename StdWellEval::EvalWell
using | BVectorWell = typename StdWellEval::BVectorWell
using | IndexTraits = typename FluidSystem::IndexTraitsType
using | WellStateType = WellState<Scalar, IndexTraits>
using | Simulator
using | IntensiveQuantities
using | FluidSystem
using | MaterialLaw
using | ModelParameters
using | Indices
using | RateConverterType
using | SparseMatrixAdapter
using | FluidState
using | RateVector
using | PressureMatrix
using | Scalar
using | BVector
Public Types inherited from Opm::WellInterface< TypeTag >
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 Types inherited from Opm::StandardWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
using | EvalWell
using | Eval
using | BVectorWell

## Public Member Functions

| StandardWell (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)
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) override
virtual ConvergenceReport | getWellConvergence (const Simulator &simulator, const WellStateType &well_state, const std::vector< Scalar > &B_avg, DeferredLogger &deferred_logger, const bool relax_tolerance) const override
| check whether the well equations get converged for this well
virtual void | apply (const BVector &x, BVector &Ax) const override
| Ax = Ax - C D^-1 B x.
virtual void | apply (BVector &r) const override
| r = r - C D^-1 Rw
void | recoverWellSolutionAndUpdateWellState (const Simulator &simulator, const BVector &x, WellStateType &well_state, DeferredLogger &deferred_logger) override
| using the solution x to recover the solution xw for wells and applying xw to update Well State
void | computeWellPotentials (const Simulator &simulator, const WellStateType &well_state, std::vector< Scalar > &well_potentials, DeferredLogger &deferred_logger) override
| computing the well potentials for group control
void | updatePrimaryVariables (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger) override
void | solveEqAndUpdateWellState (const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger) override
void | calculateExplicitQuantities (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger) override
void | updateProductivityIndex (const Simulator &simulator, const WellProdIndexCalculator< Scalar > &wellPICalc, WellStateType &well_state, DeferredLogger &deferred_logger) const override
Scalar | connectionDensity (const int globalConnIdx, const int openConnIdx) const override
void | addWellContributions (SparseMatrixAdapter &mat) const override
void | addWellPressureEquations (PressureMatrix &mat, const BVector &x, const int pressureVarIndex, const bool use_well_weights, const WellStateType &well_state) const override
bool | iterateWellEqWithControl (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) override
bool | iterateWellEqWithSwitching (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, const bool fixed_control=false, const bool fixed_status=false) override
Scalar | computeWellRatesAndBhpWithThpAlqProd (const Simulator &ebos_simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger, std::vector< Scalar > &potentials, Scalar alq) const
void | computeWellRatesWithThpAlqProd (const Simulator &ebos_simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger, std::vector< Scalar > &potentials, Scalar alq) const
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 override
void | updateIPRImplicit (const Simulator &simulator, WellStateType &well_state, DeferredLogger &deferred_logger) override
void | computeWellRatesWithBhp (const Simulator &ebosSimulator, const Scalar &bhp, std::vector< Scalar > &well_flux, DeferredLogger &deferred_logger) const override
std::vector< Scalar > | computeCurrentWellRates (const Simulator &ebosSimulator, DeferredLogger &deferred_logger) const override
| Compute well rates based on current reservoir conditions and well variables.
std::vector< Scalar > | getPrimaryVars () const override
int | setPrimaryVars (typename std::vector< Scalar >::const_iterator it) override
Public Member Functions inherited from Opm::WellInterface< TypeTag >
| 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
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 | 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 | updateProductivityIndex (const Simulator &simulator, const WellProdIndexCalculator< Scalar > &wellPICalc, WellStateType &well_state, DeferredLogger &deferred_logger) 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)
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 int | setPrimaryVars (typename std::vector< Scalar >::const_iterator)
void | addPerforations (const std::vector< RuntimePerforation > &perfs)
Public Member Functions inherited from Opm::StandardWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
const StandardWellEquations< Scalar, IndexTraits, Indices::numEq > & | linSys () const
| Returns a const reference to equation system.

## Static Public Attributes

static constexpr int | numWellConservationEq = Indices::numPhases + Indices::numSolvents
static constexpr int | numWellControlEq = 1
static constexpr int | numStaticWellEq = numWellConservationEq + numWellControlEq
static constexpr int | Bhp = numStaticWellEq - numWellControlEq
static constexpr bool | has_solvent
static constexpr bool | has_zFraction
static constexpr bool | has_polymer
static constexpr bool | has_polymermw
static constexpr bool | has_foam
static constexpr bool | has_brine
static constexpr bool | has_energy
static constexpr bool | has_bioeffects
static constexpr bool | has_micp
static constexpr int | WQTotal
Static Public Attributes inherited from Opm::WellInterface< TypeTag >
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 Types

using | WellConnectionProps = typename StdWellEval::StdWellConnections::Properties
Protected Types inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
using | RateConverterType
Protected Types inherited from Opm::StandardWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
using | Scalar
using | IndexTraits
using | PrimaryVariables
using | StdWellConnections

## Protected Member Functions

void | updateWellState (const Simulator &simulator, const BVectorWell &dwells, WellStateType &well_state, DeferredLogger &deferred_logger)
WellConnectionProps | computePropertiesForWellConnectionPressures (const Simulator &simulator, const WellStateType &well_state) const
void | computeWellConnectionDensitesPressures (const Simulator &simulator, const WellStateType &well_state, const WellConnectionProps &props, DeferredLogger &deferred_logger)
void | computeWellConnectionPressures (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger)
template<class Value>
void | computePerfRate (const IntensiveQuantities &intQuants, const std::vector< Value > &mob, const Value &bhp, const std::vector< Scalar > &Tw, const int perf, const bool allow_cf, std::vector< Value > &cq_s, PerforationRates< Scalar > &perf_rates, DeferredLogger &deferred_logger) const
template<class Value>

void

computePerfRate (const std::vector< Value > &mob, const Value &pressure, const Value &bhp, const Value &rs, const Value &rv, const Value &rvw, const Value &rsw, std::vector< Value > &b_perfcells_dense, const std::vector< Scalar > &Tw, const int perf, const bool allow_cf, const Value &skin_pressure, const std::vector< Value > &cmix_s, std::vector< Value > &cq_s, PerforationRates< Scalar > &perf_rates, DeferredLogger &deferred_logger) const

void | computeWellRatesWithBhpIterations (const Simulator &ebosSimulator, const Scalar &bhp, std::vector< Scalar > &well_flux, DeferredLogger &deferred_logger) const override
std::vector< Scalar > | computeWellPotentialWithTHP (const Simulator &ebosSimulator, DeferredLogger &deferred_logger, const WellStateType &well_state) const
bool | computeWellPotentialsImplicit (const Simulator &ebos_simulator, const WellStateType &well_state, std::vector< Scalar > &well_potentials, DeferredLogger &deferred_logger) const
Scalar | getRefDensity () const override
template<class Value>
void | getMobility (const Simulator &simulator, const int perf, std::vector< Value > &mob, DeferredLogger &deferred_logger) const
void | updateWaterMobilityWithPolymer (const Simulator &simulator, const int perf, std::vector< EvalWell > &mob_water, DeferredLogger &deferred_logger) const
void | updatePrimaryVariablesNewton (const BVectorWell &dwells, const bool stop_or_zero_rate_target, DeferredLogger &deferred_logger)
void | updateWellStateFromPrimaryVariables (WellStateType &well_state, const SummaryState &summary_state, DeferredLogger &deferred_logger) const
void | assembleWellEqWithoutIteration (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) override
void | assembleWellEqWithoutIterationImpl (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)
void | calculateSinglePerf (const Simulator &simulator, const int perf, WellStateType &well_state, std::vector< RateVector > &connectionRates, std::vector< EvalWell > &cq_s, EvalWell &water_flux_s, EvalWell &cq_s_zfrac_effective, DeferredLogger &deferred_logger) const
void | checkOperabilityUnderBHPLimit (const WellStateType &well_state, const Simulator &simulator, DeferredLogger &deferred_logger) override
void | checkOperabilityUnderTHPLimit (const Simulator &simulator, const WellStateType &well_state, DeferredLogger &deferred_logger) override
void | updateIPR (const Simulator &simulator, DeferredLogger &deferred_logger) const override
bool | allDrawDownWrongDirection (const Simulator &simulator) const
bool | openCrossFlowAvoidSingularity (const Simulator &simulator) const
EvalWell | pskin (const Scalar throughput, const EvalWell &water_velocity, const EvalWell &poly_inj_conc, DeferredLogger &deferred_logger) const
EvalWell | pskinwater (const Scalar throughput, const EvalWell &water_velocity, DeferredLogger &deferred_logger) const
EvalWell | wpolymermw (const Scalar throughput, const EvalWell &water_velocity, DeferredLogger &deferred_logger) const
void | handleInjectivityRate (const Simulator &simulator, const int perf, std::vector< EvalWell > &cq_s) const
void | handleInjectivityEquations (const Simulator &simulator, const WellStateType &well_state, const int perf, const EvalWell &water_flux_s, DeferredLogger &deferred_logger)
void | updateWaterThroughput (const double dt, WellStateType &well_state) const override
void | checkConvergenceExtraEqs (const std::vector< Scalar > &res, ConvergenceReport &report) const
void | updateConnectionRatePolyMW (const EvalWell &cq_s_poly, const IntensiveQuantities &int_quants, const WellStateType &well_state, const int perf, std::vector< RateVector > &connectionRates, DeferredLogger &deferred_logger) const
std::optional< Scalar > | computeBhpAtThpLimitProd (const WellStateType &well_state, const Simulator &simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger) const
std::optional< Scalar > | computeBhpAtThpLimitInj (const Simulator &simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger) const
Protected Member Functions inherited from Opm::WellInterface< TypeTag >
Scalar | wpolymer () const
Scalar | wfoam () const
Scalar | wsalt () const
Scalar | wmicrobes () const
Scalar | woxygen () const
Scalar | wurea () const
std::vector< Scalar > | initialWellRateFractions (const Simulator &ebosSimulator, const WellStateType &well_state) const
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
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 Member Functions inherited from Opm::StandardWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
| StandardWellEval (const WellInterfaceIndices< FluidSystem, Indices > &baseif)
EvalWell | extendEval (const Eval &in) const
void | computeAccumWell ()
ConvergenceReport | getWellConvergence (const WellState< Scalar, IndexTraits > &well_state, const std::vector< Scalar > &B_avg, const Scalar maxResidualAllowed, const Scalar tol_wells, const Scalar relaxed_tolerance_flow, const bool relax_tolerance, const bool well_is_stopped, std::vector< Scalar > &res, DeferredLogger &deferred_logger) const
void | init (std::vector< Scalar > &perf_depth, const std::vector< Scalar > &depth_arg, const bool has_polymermw)

## Protected Attributes

bool | regularize_
Protected Attributes inherited from Opm::WellInterface< TypeTag >
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_
Protected Attributes inherited from Opm::StandardWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
const WellInterfaceIndices< FluidSystem, Indices > & | baseif_
PrimaryVariables | primary_variables_
| Primary variables for well.
std::vector< Scalar > | F0_
StandardWellEquations< Scalar, IndexTraits, Indices::numEq > | linSys_
| Linear equation system.
StdWellConnections | connections_
| Connection level values.

## Additional Inherited Members

Static Protected Attributes inherited from Opm::WellInterfaceFluidSystem< FluidSystem >
static constexpr int | INVALIDCOMPLETION = std::numeric_limits<int>::max()
Static Protected Attributes inherited from Opm::StandardWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices > >
static constexpr int | Bhp
static constexpr int | WQTotal
static constexpr int | numWellConservationEq
static constexpr bool | has_wfrac_variable
static constexpr bool | has_gfrac_variable
static constexpr int | WFrac
static constexpr int | GFrac
static constexpr int | SFrac

## Member Typedef Documentation

## StdWellEval

template<typename TypeTag>

using Opm::StandardWell< TypeTag >::StdWellEval

Initial value:
StandardWellEval<GetPropType<TypeTag, Properties::FluidSystem>,
GetPropType<TypeTag, Properties::Indices>>
Opm::GetPropType
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition propertysystem.hh:233

## Member Function Documentation

## addWellContributions()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::addWellContributions | ( | SparseMatrixAdapter & | mat | ) | const

override virtual

Implements Opm::WellInterface< TypeTag >.

## addWellPressureEquations()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::addWellPressureEquations | ( | PressureMatrix & | mat,
|  | const BVector & | x,
|  | const int | pressureVarIndex,
|  | const bool | use_well_weights,
|  | const WellStateType & | well_state ) const

override virtual

Implements Opm::WellInterface< TypeTag >.

## apply() [1/2]

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::apply | ( | BVector & | r | ) | const

override virtual

r = r - C D^-1 Rw

Implements Opm::WellInterface< TypeTag >.

## apply() [2/2]

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::apply | ( | const BVector & | x,
|  | BVector & | Ax ) const

override virtual

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

Implements Opm::WellInterface< TypeTag >.

## calculateExplicitQuantities()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::calculateExplicitQuantities | ( | const Simulator & | simulator,
|  | const WellStateType & | well_state,
|  | DeferredLogger & | deferred_logger )

override virtual

Implements Opm::WellInterface< TypeTag >.

## checkOperabilityUnderBHPLimit()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::checkOperabilityUnderBHPLimit | ( | const WellStateType & | well_state,
|  | const Simulator & | simulator,
|  | DeferredLogger & | deferred_logger )

override protected virtual

Implements Opm::WellInterface< TypeTag >.

## checkOperabilityUnderTHPLimit()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::checkOperabilityUnderTHPLimit | ( | const Simulator & | simulator,
|  | const WellStateType & | well_state,
|  | DeferredLogger & | deferred_logger )

override protected virtual

Implements Opm::WellInterface< TypeTag >.

## computeCurrentWellRates()

template<typename TypeTag>

std::vector< typename StandardWell< TypeTag >::Scalar > Opm::StandardWell< TypeTag >::computeCurrentWellRates | ( | const Simulator & | simulator,
|  | DeferredLogger & | deferred_logger ) const

override virtual

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

Used in updateWellStateRates().

Implements Opm::WellInterface< TypeTag >.

## connectionDensity()

template<typename TypeTag>

StandardWell< TypeTag >::Scalar Opm::StandardWell< TypeTag >::connectionDensity | ( | const int | globalConnIdx,
|  | const int | openConnIdx ) const

override virtual

Implements Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType >.

## getPrimaryVars()

template<typename TypeTag>

std::vector< typename StandardWell< TypeTag >::Scalar > Opm::StandardWell< TypeTag >::getPrimaryVars | ( |  | ) | const

override virtual

Reimplemented from Opm::WellInterfaceGeneric< FluidSystem::Scalar, FluidSystem::IndexTraitsType >.

## getRefDensity()

template<typename TypeTag>

StandardWell< TypeTag >::Scalar Opm::StandardWell< TypeTag >::getRefDensity | ( |  | ) | const

override protected virtual

Implements Opm::WellInterface< TypeTag >.

## recoverWellSolutionAndUpdateWellState()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::recoverWellSolutionAndUpdateWellState | ( | const Simulator & | simulator,
|  | const BVector & | x,
|  | WellStateType & | well_state,
|  | DeferredLogger & | deferred_logger )

override virtual

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

Implements Opm::WellInterface< TypeTag >.

## solveEqAndUpdateWellState()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::solveEqAndUpdateWellState | ( | const Simulator & | simulator,
|  | WellStateType & | well_state,
|  | DeferredLogger & | deferred_logger )

override virtual

Implements Opm::WellInterface< TypeTag >.

## updateIPR()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::updateIPR | ( | const Simulator & | simulator,
|  | DeferredLogger & | deferred_logger ) const

override protected virtual

Implements Opm::WellInterface< TypeTag >.

## updateIPRImplicit()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::updateIPRImplicit | ( | const Simulator & | simulator,
|  | WellStateType & | well_state,
|  | DeferredLogger & | deferred_logger )

override virtual

Implements Opm::WellInterface< TypeTag >.

## updatePrimaryVariables()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::updatePrimaryVariables | ( | const Simulator & | simulator,
|  | const WellStateType & | well_state,
|  | DeferredLogger & | deferred_logger )

override virtual

Implements Opm::WellInterface< TypeTag >.

## updateWaterThroughput()

template<typename TypeTag>

void Opm::StandardWell< TypeTag >::updateWaterThroughput | ( | const double | dt,
|  | WellStateType & | well_state ) const

override protected virtual

Implements Opm::WellInterface< TypeTag >.

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

- opm/simulators/wells/StandardWell.hpp
- opm/simulators/wells/StandardWell_impl.hpp