|
using | Base = WellInterface< TypeTag > |
|
using | MSWEval = MultisegmentWellEval< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices >, GetPropType< TypeTag, Properties::Scalar > > |
|
using | Simulator = GetPropType< TypeTag, Properties::Simulator > |
|
using | IntensiveQuantities = GetPropType< TypeTag, Properties::IntensiveQuantities > |
|
using | FluidSystem = GetPropType< TypeTag, Properties::FluidSystem > |
|
using | ModelParameters = BlackoilModelParametersEbos< TypeTag > |
|
using | MaterialLaw = GetPropType< TypeTag, Properties::MaterialLaw > |
|
using | Indices = GetPropType< TypeTag, Properties::Indices > |
|
using | RateConverterType = typename WellInterfaceFluidSystem< FluidSystem >::RateConverterType |
|
using | SparseMatrixAdapter = GetPropType< TypeTag, Properties::SparseMatrixAdapter > |
|
using | FluidState = BlackOilFluidState< Eval, FluidSystem, has_temperature, has_energy, Indices::compositionSwitchIdx >=0, has_watVapor, has_brine, has_saltPrecip, Indices::numPhases > |
|
using | Scalar = GetPropType< TypeTag, Properties::Scalar > |
|
using | BVector = Dune::BlockVector< VectorBlockType > |
|
using | Eval = DenseAd::Evaluation< Scalar, Indices::numEq > |
|
enum class | IndividualOrGroup { Individual
, Group
, Both
} |
|
using | ModelParameters = BlackoilModelParametersEbos< TypeTag > |
|
using | Grid = GetPropType< TypeTag, Properties::Grid > |
|
using | Simulator = GetPropType< TypeTag, Properties::Simulator > |
|
using | FluidSystem = GetPropType< TypeTag, Properties::FluidSystem > |
|
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 | GLiftOptWells = typename BlackoilWellModel< TypeTag >::GLiftOptWells |
|
using | GLiftProdWells = typename BlackoilWellModel< TypeTag >::GLiftProdWells |
|
using | GLiftWellStateMap = typename BlackoilWellModel< TypeTag >::GLiftWellStateMap |
|
using | GLiftSyncGroups = typename GasLiftSingleWellGeneric::GLiftSyncGroups |
|
using | Scalar = GetPropType< TypeTag, Properties::Scalar > |
|
using | VectorBlockType = Dune::FieldVector< Scalar, Indices::numEq > |
|
using | MatrixBlockType = Dune::FieldMatrix< Scalar, Indices::numEq, Indices::numEq > |
|
using | BVector = Dune::BlockVector< VectorBlockType > |
|
using | Eval = DenseAd::Evaluation< Scalar, Indices::numEq > |
|
using | RateConverterType = typename WellInterfaceFluidSystem< FluidSystem >::RateConverterType |
|
using | RatioLimitCheckReport = typename WellInterfaceFluidSystem< FluidSystem >::RatioLimitCheckReport |
|
using | FluidState = BlackOilFluidState< Eval, FluidSystem, has_temperature, has_energy, Indices::compositionSwitchIdx >=0, has_watVapor, has_brine, has_saltPrecip, Indices::numPhases > |
|
|
| MultisegmentWell (const Well &well, const ParallelWellInfo &pw_info, const int time_step, const ModelParameters ¶m, 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) |
|
virtual void | init (const PhaseUsage *phase_usage_arg, const std::vector< double > &depth_arg, const double gravity_arg, const int num_cells, const std::vector< Scalar > &B_avg) override |
|
virtual void | initPrimaryVariablesEvaluation () const override |
|
virtual void | updateWellStateWithTarget (const Simulator &ebos_simulator, const GroupState &group_state, WellState &well_state, DeferredLogger &deferred_logger) const override |
| updating the well state based the current control mode
|
|
virtual ConvergenceReport | getWellConvergence (const WellState &well_state, const std::vector< double > &B_avg, DeferredLogger &deferred_logger, const bool relax_tolerance=false) 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
|
|
virtual void | recoverWellSolutionAndUpdateWellState (const BVector &x, WellState &well_state, DeferredLogger &deferred_logger) const override |
| using the solution x to recover the solution xw for wells and applying xw to update Well State
|
|
virtual void | computeWellPotentials (const Simulator &ebosSimulator, const WellState &well_state, std::vector< double > &well_potentials, DeferredLogger &deferred_logger) override |
| computing the well potentials for group control
|
|
virtual void | updatePrimaryVariables (const WellState &well_state, DeferredLogger &deferred_logger) const override |
|
virtual void | solveEqAndUpdateWellState (WellState &well_state, DeferredLogger &deferred_logger) override |
|
virtual void | calculateExplicitQuantities (const Simulator &ebosSimulator, const WellState &well_state, DeferredLogger &deferred_logger) override |
|
virtual void | updateProductivityIndex (const Simulator &ebosSimulator, const WellProdIndexCalculator &wellPICalc, WellState &well_state, DeferredLogger &deferred_logger) const override |
|
virtual void | addWellContributions (SparseMatrixAdapter &jacobian) const override |
|
virtual std::vector< double > | computeCurrentWellRates (const Simulator &ebosSimulator, DeferredLogger &deferred_logger) const override |
| Compute well rates based on current reservoir conditions and well variables. More...
|
|
void | computeConnLevelProdInd (const FluidState &fs, const std::function< double(const double)> &connPICalc, const std::vector< Scalar > &mobility, double *connPI) const |
|
void | computeConnLevelInjInd (const FluidState &fs, const Phase preferred_phase, const std::function< double(const double)> &connIICalc, const std::vector< Scalar > &mobility, double *connII, DeferredLogger &deferred_logger) const |
|
virtual std::optional< double > | computeBhpAtThpLimitProdWithAlq (const Simulator &ebos_simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger, double alq_value) const override |
|
| WellInterface (const Well &well, const ParallelWellInfo &pw_info, const int time_step, const ModelParameters ¶m, 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) |
| Constructor.
|
|
virtual | ~WellInterface ()=default |
| Virtual destructor.
|
|
void | assembleWellEq (const Simulator &ebosSimulator, const double dt, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) |
|
bool | updateWellControl (const Simulator &ebos_simulator, const IndividualOrGroup iog, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) |
|
virtual bool | jacobianContainsWellContributions () const |
| Wether the Jacobian will also have well contributions in it.
|
|
void | addCellRates (RateVector &rates, int cellIdx) const |
|
Scalar | volumetricSurfaceRateForConnection (int cellIdx, int phaseIdx) const |
|
template<class EvalWell > |
Eval | restrictEval (const EvalWell &in) const |
|
void | wellTesting (const Simulator &simulator, const double simulation_time, WellState &well_state, const GroupState &group_state, WellTestState &welltest_state, DeferredLogger &deferred_logger) |
|
void | checkWellOperability (const Simulator &ebos_simulator, const WellState &well_state, DeferredLogger &deferred_logger) |
|
void | updateWellOperability (const Simulator &ebos_simulator, const WellState &well_state, DeferredLogger &deferred_logger) |
|
void | updateWellStateRates (const Simulator &ebosSimulator, WellState &well_state, DeferredLogger &deferred_logger) const |
| Modify the well_state's rates if there is only one nonzero rate. More...
|
|
void | solveWellEquation (const Simulator &ebosSimulator, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) |
|
int | flowPhaseToEbosCompIdx (const int phaseIdx) const |
|
int | ebosCompIdxToFlowCompIdx (const unsigned compIdx) const |
|
double | scalingFactor (const int phaseIdx) const |
|
void | updateWellTestState (const SingleWellState &ws, const double &simulationTime, const bool &writeMessageToOPMLog, WellTestState &wellTestState, DeferredLogger &deferred_logger) const |
|
int | flowPhaseToEbosPhaseIdx (const int phaseIdx) const |
|
const RateConverterType & | rateConverter () const |
|
| WellInterfaceGeneric (const Well &well, const ParallelWellInfo ¶llel_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.
|
|
void | adaptRatesForVFP (std::vector< double > &rates) const |
|
const Well & | wellEcl () const |
|
const PhaseUsage & | phaseUsage () 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 () |
|
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 VFPProperties * | vfpProperties () const |
|
const ParallelWellInfo & | parallelWellInfo () 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 |
|
bool | changedToOpenThisStep () const |
|
std::optional< double > | computeBhpAtThpLimitProdCommon (const std::function< std::vector< double >(const double)> &frates, const SummaryState &summary_state, const double maxPerfPress, const double rho, const double alq_value, DeferredLogger &deferred_logger) const |
|
template<class EvalWell > |
EvalWell | calculateBhpFromThp (const WellState &well_state, const std::vector< EvalWell > &rates, const Well &well, const SummaryState &summaryState, const double rho, DeferredLogger &deferred_logger) const |
|
template<class EvalWell > |
void | getGroupInjectionControl (const Group &group, const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const InjectorType &injectorType, const EvalWell &bhp, const EvalWell &injection_rate, EvalWell &control_eq, double efficiencyFactor, DeferredLogger &deferred_logger) const |
|
template<class EvalWell > |
void | getGroupProductionControl (const Group &group, const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const EvalWell &bhp, const std::vector< EvalWell > &rates, EvalWell &control_eq, double efficiencyFactor) const |
|
template<class EvalWell , class BhpFromThpFunc > |
void | assembleControlEqProd (const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const Well::ProductionControls &controls, const EvalWell &bhp, const std::vector< EvalWell > &rates, BhpFromThpFunc bhp_from_thp, EvalWell &control_eq, DeferredLogger &deferred_logger) const |
|
template<class EvalWell > |
void | assembleControlEqProd_ (const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const Well::ProductionControls &controls, const EvalWell &bhp, const std::vector< EvalWell > &rates, const std::function< EvalWell()> &bhp_from_thp, EvalWell &control_eq, DeferredLogger &deferred_logger) const |
|
template<class EvalWell , class BhpFromThpFunc > |
void | assembleControlEqInj (const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const Well::InjectionControls &controls, const EvalWell &bhp, const EvalWell &injection_rate, BhpFromThpFunc bhp_from_thp, EvalWell &control_eq, DeferredLogger &deferred_logger) const |
|
template<class EvalWell > |
void | assembleControlEqInj_ (const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const Well::InjectionControls &controls, const EvalWell &bhp, const EvalWell &injection_rate, const std::function< EvalWell()> &bhp_from_thp, EvalWell &control_eq, DeferredLogger &deferred_logger) const |
|
|
WellSegments::CompPressureDrop | compPressureDrop () const |
|
WellSegments::MultiPhaseModel | multiphaseModel () const |
|
void | updateWellState (const BVectorWell &dwells, WellState &well_state, DeferredLogger &deferred_logger, const double relaxation_factor=1.0) const |
|
void | computeInitialSegmentFluids (const Simulator &ebos_simulator) |
|
void | computePerfCellPressDiffs (const Simulator &ebosSimulator) |
|
void | computePerfRateScalar (const IntensiveQuantities &int_quants, const std::vector< Scalar > &mob_perfcells, const double Tw, const int seg, const int perf, const Scalar &segment_pressure, const bool &allow_cf, std::vector< Scalar > &cq_s, DeferredLogger &deferred_logger) const |
|
void | computePerfRateEval (const IntensiveQuantities &int_quants, const std::vector< EvalWell > &mob_perfcells, const double Tw, const int seg, const int perf, const EvalWell &segment_pressure, const bool &allow_cf, std::vector< EvalWell > &cq_s, EvalWell &perf_press, double &perf_dis_gas_rate, double &perf_vap_oil_rate, DeferredLogger &deferred_logger) const |
|
template<class Value > |
void | computePerfRate (const Value &pressure_cell, const Value &rs, const Value &rv, const std::vector< Value > &b_perfcells, const std::vector< Value > &mob_perfcells, const double Tw, const int perf, const Value &segment_pressure, const Value &segment_density, const bool &allow_cf, const std::vector< Value > &cmix_s, std::vector< Value > &cq_s, Value &perf_press, double &perf_dis_gas_rate, double &perf_vap_oil_rate, DeferredLogger &deferred_logger) const |
|
void | computeSegmentFluidProperties (const Simulator &ebosSimulator, DeferredLogger &deferred_logger) |
|
void | getMobilityEval (const Simulator &ebosSimulator, const int perf, std::vector< EvalWell > &mob) const |
|
void | getMobilityScalar (const Simulator &ebosSimulator, const int perf, std::vector< Scalar > &mob) const |
|
void | computeWellRatesAtBhpLimit (const Simulator &ebosSimulator, std::vector< double > &well_flux, DeferredLogger &deferred_logger) const |
|
virtual void | computeWellRatesWithBhp (const Simulator &ebosSimulator, const double &bhp, std::vector< double > &well_flux, DeferredLogger &deferred_logger) const override |
|
void | computeWellRatesWithBhpIterations (const Simulator &ebosSimulator, const Scalar &bhp, std::vector< double > &well_flux, DeferredLogger &deferred_logger) const |
|
std::vector< double > | computeWellPotentialWithTHP (const WellState &well_state, const Simulator &ebos_simulator, DeferredLogger &deferred_logger) const |
|
virtual double | getRefDensity () const override |
|
virtual bool | iterateWellEqWithControl (const Simulator &ebosSimulator, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) override |
|
virtual void | assembleWellEqWithoutIteration (const Simulator &ebosSimulator, const double dt, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) override |
|
virtual void | updateWaterThroughput (const double dt, WellState &well_state) const override |
|
EvalWell | getSegmentSurfaceVolume (const Simulator &ebos_simulator, const int seg_idx) const |
|
bool | openCrossFlowAvoidSingularity (const Simulator &ebos_simulator) const |
|
bool | allDrawDownWrongDirection (const Simulator &ebos_simulator) const |
|
std::optional< double > | computeBhpAtThpLimitProd (const WellState &well_state, const Simulator &ebos_simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger) const |
|
std::optional< double > | computeBhpAtThpLimitInj (const Simulator &ebos_simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger) const |
|
double | maxPerfPress (const Simulator &ebos_simulator) const |
|
virtual void | checkOperabilityUnderBHPLimit (const WellState &well_state, const Simulator &ebos_simulator, DeferredLogger &deferred_logger) override |
|
virtual void | checkOperabilityUnderTHPLimit (const Simulator &ebos_simulator, const WellState &well_state, DeferredLogger &deferred_logger) override |
|
virtual void | updateIPR (const Simulator &ebos_simulator, DeferredLogger &deferred_logger) const override |
|
double | wpolymer () const |
|
double | wfoam () const |
|
double | wsalt () const |
|
double | wmicrobes () const |
|
double | woxygen () const |
|
double | wurea () const |
|
const std::vector< double > & | compFrac () const |
|
std::vector< double > | initialWellRateFractions (const Simulator &ebosSimulator, const WellState &well_state) const |
|
bool | iterateWellEquations (const Simulator &ebosSimulator, const double dt, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) |
|
bool | solveWellForTesting (const Simulator &ebosSimulator, WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger) |
|
Eval | getPerfCellPressure (const FluidState &fs) const |
|
| WellInterfaceIndices (const Well &well, const ParallelWellInfo ¶llel_well_info, const int time_step, const typename WellInterfaceFluidSystem< GetPropType< TypeTag, Properties::FluidSystem > >::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) |
|
| WellInterfaceFluidSystem (const Well &well, const ParallelWellInfo ¶llel_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, DeferredLogger &deferred_logger) const |
|
Well::InjectorCMode | activeInjectionConstraint (const SingleWellState &ws, const SummaryState &summaryState, DeferredLogger &deferred_logger) const |
|
Well::ProducerCMode | activeProductionConstraint (const SingleWellState &ws, const SummaryState &summaryState, DeferredLogger &deferred_logger) 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 |
|
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 |
|
std::optional< double > | bhpMax (const std::function< double(const double)> &fflo, const double bhp_limit, const double maxPerfPress, const double vfp_flo_front, DeferredLogger &deferred_logger) const |
|
std::optional< double > | computeBhpAtThpLimitCommon (const std::function< std::vector< double >(const double)> &frates, const std::function< double(const std::vector< double >)> &fbhp, const std::array< double, 2 > &range, DeferredLogger &deferred_logger) const |
|
bool | bruteForceBracket (const std::function< double(const double)> &eq, const std::array< double, 2 > &range, double &low, double &high, DeferredLogger &deferred_logger) const |
|
bool | bisectBracket (const std::function< double(const double)> &eq, const std::array< double, 2 > &range, double &low, double &high, std::optional< double > &approximate_solution, DeferredLogger &deferred_logger) const |
|
| WellInterfaceEval (const WellInterfaceFluidSystem< FluidSystem > &baseif) |
|
| MultisegmentWellEval (WellInterfaceIndices< GetPropType< TypeTag, Properties::FluidSystem >, GetPropType< TypeTag, Properties::Indices >, GetPropType< TypeTag, Properties::Scalar > > &baseif) |
|
void | initMatrixAndVectors (const int num_cells) const |
|
void | initPrimaryVariablesEvaluation () const |
|
void | assembleControlEq (const WellState &well_state, const GroupState &group_state, const Schedule &schedule, const SummaryState &summaryState, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const double rho, DeferredLogger &deferred_logger) |
|
void | assembleDefaultPressureEq (const int seg, WellState &well_state) const |
|
void | assembleICDPressureEq (const int seg, const UnitSystem &unit_system, WellState &well_state, DeferredLogger &deferred_logger) const |
|
void | assemblePressureEq (const int seg, const UnitSystem &unit_system, WellState &well_state, DeferredLogger &deferred_logger) const |
|
void | checkConvergenceControlEq (const WellState &well_state, ConvergenceReport &report, const double tolerance_pressure_ms_wells, const double tolerance_wells, const double max_residual_allowed, DeferredLogger &deferred_logger) const |
|
ConvergenceReport | getWellConvergence (const WellState &well_state, const std::vector< double > &B_avg, DeferredLogger &deferred_logger, const double max_residual_allowed, const double tolerance_wells, const double relaxed_inner_tolerance_flow_ms_well, const double tolerance_pressure_ms_wells, const double relaxed_inner_tolerance_pressure_ms_well, const bool relax_tolerance) const |
| check whether the well equations get converged for this well
|
|
void | processFractions (const int seg) const |
|
void | recoverSolutionWell (const BVector &x, BVectorWell &xw) const |
|
void | updatePrimaryVariables (const WellState &well_state) const |
|
void | updateUpwindingSegments () |
|
void | updateWellState (const BVectorWell &dwells, const double relaxation_factor, const double DFLimit, const double max_pressure_change) const |
|
void | computeSegmentFluidProperties (const EvalWell &temperature, const EvalWell &saltConcentration, int pvt_region_index, DeferredLogger &deferred_logger) |
|
EvalWell | getBhp () const |
|
EvalWell | getFrictionPressureLoss (const int seg) const |
|
EvalWell | getHydroPressureLoss (const int seg) const |
|
EvalWell | getQs (const int comp_idx) const |
|
EvalWell | getSegmentGTotal (const int seg) const |
|
EvalWell | getSegmentPressure (const int seg) const |
|
EvalWell | getSegmentRate (const int seg, const int comp_idx) const |
|
EvalWell | getSegmentRateUpwinding (const int seg, const size_t comp_idx) const |
|
EvalWell | getSegmentSurfaceVolume (const EvalWell &temperature, const EvalWell &saltConcentration, const int pvt_region_index, const int seg_idx) const |
|
EvalWell | getWQTotal () const |
|
std::pair< bool, std::vector< GetPropType< TypeTag, Properties::Scalar > > > | getFiniteWellResiduals (const std::vector< GetPropType< TypeTag, Properties::Scalar > > &B_avg, DeferredLogger &deferred_logger) const |
|
double | getControlTolerance (const WellState &well_state, const double tolerance_wells, const double tolerance_pressure_ms_wells, DeferredLogger &deferred_logger) const |
|
double | getResidualMeasureValue (const WellState &well_state, const std::vector< double > &residuals, const double tolerance_wells, const double tolerance_pressure_ms_wells, DeferredLogger &deferred_logger) const |
|
void | handleAccelerationPressureLoss (const int seg, WellState &well_state) const |
|
EvalWell | pressureDropAutoICD (const int seg, const UnitSystem &unit_system) const |
|
EvalWell | pressureDropSpiralICD (const int seg) const |
|
EvalWell | pressureDropValve (const int seg) const |
|
void | updateThp (WellState &well_state, const double rho, DeferredLogger &deferred_logger) const |
|
void | updateWellStateFromPrimaryVariables (WellState &well_state, const double rho, DeferredLogger &deferred_logger) const |
|
EvalWell | volumeFraction (const int seg, const unsigned compIdx) const |
|
EvalWell | volumeFractionScaled (const int seg, const int comp_idx) const |
|
EvalWell | surfaceVolumeFraction (const int seg, const int comp_idx) const |
|
EvalWell | extendEval (const Eval &in) const |
|
| MultisegmentWellGeneric (WellInterfaceGeneric &baseif) |
|
void | scaleSegmentRatesWithWellRates (WellState &well_state) const |
|
void | scaleSegmentPressuresWithBhp (WellState &well_state) const |
|
const WellSegments & | segmentSet () const |
|
WellSegments::CompPressureDrop | compPressureDrop () const |
|
int | segmentNumberToIndex (const int segment_number) const |
|
int | numberOfSegments () const |
| number of segments for this well
|
|
double | calculateThpFromBhp (const std::vector< double > &rates, const double bhp, const double rho, DeferredLogger &deferred_logger) const |
|
std::optional< double > | computeBhpAtThpLimitInj (const std::function< std::vector< double >(const double)> &frates, const SummaryState &summary_state, const double rho, DeferredLogger &deferred_logger) const |
|
std::optional< double > | computeBhpAtThpLimitProdWithAlq (const std::function< std::vector< double >(const double)> &frates, const SummaryState &summary_state, const double maxPerfPress, const double rho, DeferredLogger &deferred_logger, double alq_value) const |
|
std::optional< double > | bhpMax (const std::function< double(const double)> &fflo, const double bhp_limit, const double maxPerfPress, const double vfp_flo_front, DeferredLogger &deferred_logger) const |
|
bool | bruteForceBracket (const std::function< double(const double)> &eq, const std::array< double, 2 > &range, double &low, double &high, DeferredLogger &deferred_logger) const |
|
bool | bisectBracket (const std::function< double(const double)> &eq, const std::array< double, 2 > &range, double &low, double &high, std::optional< double > &approximate_solution, DeferredLogger &deferred_logger) const |
|
void | detectOscillations (const std::vector< double > &measure_history, const int it, bool &oscillate, bool &stagnate) const |
| Detect oscillation or stagnation based on the residual measure history.
|
|
bool | accelerationalPressureLossConsidered () const |
|
bool | frictionalPressureLossConsidered () const |
|