opm-simulators
Loading...
Searching...
No Matches
Opm::BlackoilWellModel< TypeTag > Class Template Reference

Class for handling the blackoil well model. More...

#include <BlackoilWellModel.hpp>

Inheritance diagram for Opm::BlackoilWellModel< TypeTag >:
Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > > Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > Opm::BaseAuxiliaryModule< TypeTag >

Public Types

using Grid = GetPropType<TypeTag, Properties::Grid>
using EquilGrid = GetPropType<TypeTag, Properties::EquilGrid>
using FluidSystem = GetPropType<TypeTag, Properties::FluidSystem>
using ElementContext = GetPropType<TypeTag, Properties::ElementContext>
using Indices = GetPropType<TypeTag, Properties::Indices>
using Simulator = GetPropType<TypeTag, Properties::Simulator>
using Scalar = GetPropType<TypeTag, Properties::Scalar>
using RateVector = GetPropType<TypeTag, Properties::RateVector>
using GlobalEqVector = GetPropType<TypeTag, Properties::GlobalEqVector>
using SparseMatrixAdapter = GetPropType<TypeTag, Properties::SparseMatrixAdapter>
using ModelParameters = BlackoilModelParameters<Scalar>
using WellConnectionModule = WellConnectionAuxiliaryModule<TypeTag, BlackoilWellModel<TypeTag>>
using IndexTraits = typename FluidSystem::IndexTraitsType
using GroupStateHelperType = GroupStateHelper<Scalar, IndexTraits>
using VectorBlockType = Dune::FieldVector<Scalar, numEq>
using BVector = Dune::BlockVector<VectorBlockType>
using PolymerModule = BlackOilPolymerModule<TypeTag>
using BioeffectsModule = BlackOilBioeffectsModule<TypeTag>
using RateConverterType
using AverageRegionalPressureType
using WellInterfacePtr = std::unique_ptr<WellInterface<TypeTag>>
using PressureMatrix = Dune::BCRSMatrix<Opm::MatrixBlock<Scalar, 1, 1>>
Public Types inherited from Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >
using NeighborSet
using Domain

Public Member Functions

 BlackoilWellModel (Simulator &simulator)
void init ()
void initWellContainer (const int reportStepIdx) override
void beginEpisode ()
void beginTimeStep ()
void beginIteration ()
void endIteration ()
void endTimeStep ()
void endEpisode ()
void computeTotalRatesForDof (RateVector &rate, unsigned globalIdx) const
template<class Context>
void computeTotalRatesForDof (RateVector &rate, const Context &context, unsigned spaceIdx, unsigned timeIdx) const
void initFromRestartFile (const RestartValue &restartValues)
void prepareDeserialize (const int report_step)
data::Wells wellData () const
data::WellBlockAveragePressures wellBlockAveragePressures () const
ConvergenceReport getWellConvergence (const std::vector< Scalar > &B_avg, const bool checkWellGroupControlsAndNetwork=false) const
const SimulatorReportSinglelastReport () const
void addWellContributions (SparseMatrixAdapter &jacobian) const
void addReservoirSourceTerms (GlobalEqVector &residual, const std::vector< typename SparseMatrixAdapter::MatrixBlock * > &diagMatAddress) const
void beginReportStep (const int time_step)
void calculateExplicitQuantities () const
 Calculating the explicit quantities used in the well calculation.
void prepareTimeStep (DeferredLogger &deferred_logger)
 One-time initialization at the start of each timestep.
bool updateWellControls (DeferredLogger &deferred_logger)
void updateAndCommunicate (const int reportStepIdx)
bool updateGroupControls (const Group &group, DeferredLogger &deferred_logger, const int reportStepIdx)
const WellInterface< TypeTag > & getWell (const std::string &well_name) const
void addWellPressureEquations (PressureMatrix &jacobian, const BVector &weights, const bool use_well_weights) const
void addWellPressureEquationsStruct (PressureMatrix &jacobian) const
void addWellPressureEquationsDomain (PressureMatrix &jacobian, const BVector &weights, const bool use_well_weights, const int domainIndex) const
const std::vector< WellInterfacePtr > & localNonshutWells () const
 Get list of local nonshut wells.
const SparseTable< int > & well_local_cells () const
const std::map< std::string, int > & well_domain () const
auto begin () const
auto end () const
bool empty () const
bool addMatrixContributions () const
int numStrictIterations () const
int compressedIndexForInterior (int cartesian_cell_idx) const override
 get compressed index for interior cells (-1, otherwise
int compressedIndexForInteriorLGR (const std::string &lgr_tag, const Connection &conn) const override
void recoverWellSolutionAndUpdateWellState (const BVector &x)
void recoverWellSolutionAndUpdateWellStateDomain (const BVector &x, const int domainIdx)
void updateCellRates ()
void updateCellRatesForDomain (int domainIndex, const std::map< std::string, int > &well_domain_map)
const Grid & grid () const
const Simulator & simulator () const
void setNlddAdapter (BlackoilWellModelNldd< TypeTag > *mod)
ReservoirCoupling::Proxy< Scalar > & rescoup ()
 Get the reservoir coupling proxy.
const ReservoirCoupling::Proxy< Scalar > & rescoup () const
void updateGuideRates (const int report_step_idx, const double sim_time)
 Update guide rates for all wells and groups.
bool isReservoirCouplingMaster () const
 Check if this process is a reservoir coupling master.
bool isReservoirCouplingSlave () const
 Check if this process is a reservoir coupling slave.
ReservoirCouplingMaster< Scalar > & reservoirCouplingMaster ()
 Get reference to reservoir coupling master.
ReservoirCouplingSlave< Scalar > & reservoirCouplingSlave ()
 Get reference to reservoir coupling slave.
bool updateWellControlsAndNetwork (const bool mandatory_network_balance, const double dt, DeferredLogger &local_deferredLogger)
void assembleWellEqWithoutIteration (const double dt)
const std::vector< Scalar > & B_avg () const
const ModelParameters & param () const
Public Member Functions inherited from Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >
 WellConnectionAuxiliaryModule (BlackoilWellModel< TypeTag > &model, Parallel::Communication comm)
unsigned numDofs () const override
 Returns the number of additional degrees of freedom required for the auxiliary module.
void addNeighbors (std::vector< NeighborSet > &neighbors) const override
 Specify the additional neighboring correlations caused by the auxiliary module.
void applyInitial () override
 Set the initial condition of the auxiliary module in the solution vector.
void linearize (SparseMatrixAdapter &jacobian, GlobalEqVector &res) override
 Linearize the auxiliary equation.
void postSolve (GlobalEqVector &deltaX) override
 This method is called after the linear solver has been called but before the solution is updated for the next iteration.
void linearizeDomain (const Domain &domain, SparseMatrixAdapter &jacobian, GlobalEqVector &res)
void postSolveDomain (const GlobalEqVector &deltaX, const Domain &domain)
void deserialize (Restarter &)
void serialize (Restarter &)
 This method writes the complete state of the well to the harddisk.
Public Member Functions inherited from Opm::BaseAuxiliaryModule< TypeTag >
void setDofOffset (int value)
 Set the offset in the global system of equations for the first degree of freedom of this auxiliary module.
int dofOffset ()
 Return the offset in the global system of equations for the first degree of freedom of this auxiliary module.
int localToGlobalDof (unsigned localDofIdx) const
 Given a degree of freedom relative to the current auxiliary equation, return the corresponding index in the global system of equations.
Public Member Functions inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType >
 BlackoilWellModelGeneric (Schedule &schedule, BlackoilWellModelGasLiftGeneric< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &gaslift, BlackoilWellModelNetworkGeneric< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &network, const SummaryState &summaryState, const EclipseState &eclState, const PhaseUsageInfo< GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &phase_usage, const Parallel::Communication &comm)
int numLocalWells () const
int numLocalWellsEnd () const
int numLocalNonshutWells () const
int numPhases () const
bool wellsActive () const
 return true if wells are available in the reservoir
bool hasLocalWell (const std::string &wname) const
 Returns true if well is defined and has connections on current rank.
bool hasOpenLocalWell (const std::string &well_name) const
 Returns true if well is defined, open and has connections on current rank.
bool anyMSWellOpenLocal () const
const std::vector< Well > & eclWells () const
bool terminalOutput () const
const Well & getWellEcl (const std::string &well_name) const
std::vector< Well > getLocalWells (const int timeStepIdx) const
const Schedule & schedule () const
const PhaseUsageInfo< GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & phaseUsage () const
const GroupState< Scalar > & groupState () const
std::vector< const WellInterfaceGeneric< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > * > genericWells () const
const WellState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & wellState () const
const WellState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & nupcolWellState () const
WellTestState & wellTestState ()
Scalar wellPI (const int well_index) const
void updateEclWells (const int timeStepIdx, const SimulatorUpdate &sim_update, const SummaryState &st)
void initFromRestartFile (const RestartValue &restartValues, std::unique_ptr< WellTestState > wtestState, const std::size_t numCells, bool handle_ms_well, bool enable_distributed_wells)
void prepareDeserialize (int report_step, const std::size_t numCells, bool handle_ms_well, bool enable_distributed_wells)
void commitWGState ()
data::GroupAndNetworkValues groupAndNetworkData (const int reportStepIdx) const
bool forceShutWellByName (const std::string &wellname, const double simulation_time, const bool dont_shut_grup_wells)
 Shut down any single well Returns true if the well was actually found and shut.
const std::vector< PerforationData< Scalar > > & perfData (const int well_idx) const
const Parallel::Communication & comm () const
const EclipseState & eclipseState () const
const SummaryState & summaryState () const
const GuideRate & guideRate () const
const std::map< std::string, double > & wellOpenTimes () const
const std::map< std::string, double > & wellCloseTimes () const
const WellGroupEvents & reportStepStartEvents () const
std::vector< int > getCellsForConnections (const Well &well) const
bool reportStepStarts () const
void updateClosedWellsThisStep (const std::string &well_name) const
bool wasDynamicallyShutThisTimeStep (const std::string &well_name) const
void logPrimaryVars () const
void serializeOp (Serializer &serializer)
bool operator== (const BlackoilWellModelGeneric &rhs) const
const ParallelWellInfo< Scalar > & parallelWellInfo (const std::size_t idx) const
bool isOwner (const std::string &wname) const
bool hasLocalCells (const std::string &wname) const
const ConnectionIndexMapconnectionIndexMap (const std::size_t idx)
GroupStateHelperType & groupStateHelper ()
std::pair< int, int > getGroupFipnumAndPvtreg () const
virtual void calcResvCoeff (const int fipnum, const int pvtreg, const std::vector< Scalar > &production_rates, std::vector< Scalar > &resv_coeff) const=0
virtual void calcInjResvCoeff (const int fipnum, const int pvtreg, std::vector< Scalar > &resv_coeff) const=0
const VFPProperties< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & getVFPProperties () const
void updateAndCommunicateGroupData (const int reportStepIdx, const NewtonIterationContext &iterCtx, const Scalar tol_nupcol, const bool update_wellgrouptarget)
const EclipseState & eclState () const

Static Public Member Functions

template<class FluidState, class SingleWellState>
static Scalar computeTemperatureWeightFactor (const int perf_index, const int np, const FluidState &fs, const SingleWellState &ws)

Static Public Attributes

static constexpr std::size_t pressureVarIndex = GetPropType<TypeTag, Properties::Indices>::pressureSwitchIdx
static const int numEq = Indices::numEq
static const int solventSaturationIdx = Indices::solventSaturationIdx
static constexpr bool has_solvent_ = getPropValue<TypeTag, Properties::EnableSolvent>()
static constexpr bool has_polymer_ = getPropValue<TypeTag, Properties::EnablePolymer>()
static constexpr EnergyModules energyModuleType_ = getPropValue<TypeTag, Properties::EnergyModuleType>()
static constexpr bool has_energy_ = (energyModuleType_ == EnergyModules::FullyImplicitThermal)
static constexpr bool has_micp_ = Indices::enableMICP
static constexpr bool has_geochem_ = getPropValue<TypeTag, Properties::EnableGeochemistry>()

Protected Member Functions

void initializeWellState (const int timeStepIdx)
void createWellContainer (const int report_step) override
WellInterfacePtr createWellPointer (const int wellID, const int report_step) const
template<typename WellType>
std::unique_ptr< WellType > createTypedWellPointer (const int wellID, const int time_step) const
WellInterfacePtr createWellForWellTest (const std::string &well_name, const int report_step, DeferredLogger &deferred_logger) const
const EquilGrid & equilGrid () const
const EclipseState & eclState () const
void assemble (const double dt)
std::tuple< bool, bool, Scalar > updateWellControlsAndNetworkIteration (const bool mandatory_network_balance, const bool relax_network_tolerance, const bool optimize_gas_lift, const double dt, DeferredLogger &local_deferredLogger)
void initializeLocalWellStructure (const int reportStepIdx, const bool enableWellPIScaling)
 Update rank's notion of intersecting wells and their associate solution variables.
void initializeGroupStructure (const int reportStepIdx)
 Initialize group control modes/constraints and group solution state.
void timeStepSucceeded (const double simulationTime, const double dt)
void endReportStep ()
void updatePrimaryVariables ()
void updateAverageFormationFactor ()
void computePotentials (const std::size_t widx, const WellState< Scalar, IndexTraits > &well_state_copy, std::string &exc_msg, ExceptionType::ExcEnum &exc_type) override
const std::vector< Scalar > & wellPerfEfficiencyFactors () const
void calculateProductivityIndexValuesShutWells (const int reportStepIdx, DeferredLogger &deferred_logger) override
void calculateProductivityIndexValues (DeferredLogger &deferred_logger) override
void calculateProductivityIndexValues (const WellInterface< TypeTag > *wellPtr, DeferredLogger &deferred_logger)
int numConservationQuantities () const
int reportStepIndex () const
void assembleWellEq (const double dt)
void prepareWellsBeforeAssembling (const double dt)
void extractLegacyCellPvtRegionIndex_ ()
void extractLegacyDepth_ ()
void updateWellTestState (const double simulationTime, WellTestState &wellTestState)
 upate the wellTestState related to economic limits
void wellTesting (const int timeStepIdx, const double simulationTime, DeferredLogger &deferred_logger)
void calcResvCoeff (const int fipnum, const int pvtreg, const std::vector< Scalar > &production_rates, std::vector< Scalar > &resv_coeff) const override
void calcInjResvCoeff (const int fipnum, const int pvtreg, std::vector< Scalar > &resv_coeff) const override
void computeWellTemperature ()
Protected Member Functions inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType >
const WellState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & prevWellState () const
const WGState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & prevWGState () const
void resetWGState ()
void updateNupcolWGState ()
void reportGroupSwitching (DeferredLogger &local_deferredLogger) const
std::vector< std::reference_wrapper< ParallelWellInfo< Scalar > > > createLocalParallelWellInfo (const std::vector< Well > &wells)
 Create the parallel well information.
void initializeWellProdIndCalculators ()
void initializeWellPerfData ()
void updateWsolvent (const Group &group, const int reportStepIdx, const WellState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &wellState)
void setWsolvent (const Group &group, const int reportStepIdx, Scalar wsolvent)
void assignDynamicWellStatus (data::Wells &wsrpt) const
 Assign dynamic well status for each well owned by current rank.
void assignShutConnections (data::Wells &wsrpt, const int reportStepIndex) const
 Assign basic result quantities for shut connections of wells owned by current rank.
void assignWellTargets (data::Wells &wsrpt) const
void assignProductionWellTargets (const Well &well, data::WellControlLimits &limits) const
void assignInjectionWellTargets (const Well &well, data::WellControlLimits &limits) const
void assignGroupControl (const Group &group, data::GroupData &gdata) const
void assignGroupValues (const int reportStepIdx, std::map< std::string, data::GroupData > &gvalues) const
void calculateEfficiencyFactors (const int reportStepIdx)
void checkGconsaleLimits (const Group &group, WellState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &well_state, const int reportStepIdx, DeferredLogger &deferred_logger)
void checkGEconLimits (const Group &group, const double simulation_time, const int report_step_idx, DeferredLogger &deferred_logger)
bool checkGroupHigherConstraints (const Group &group, DeferredLogger &deferred_logger, const int reportStepIdx, const int max_number_of_group_switch, const bool update_group_switching_log)
void inferLocalShutWells ()
void setRepRadiusPerfLength ()
virtual void computePotentials (const std::size_t widx, const WellState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > &well_state_copy, std::string &exc_msg, ExceptionType::ExcEnum &exc_type)=0
void updateWellPotentials (const int reportStepIdx, const bool onlyAfterEvent, const SummaryConfig &summaryConfig, DeferredLogger &deferred_logger)
void initInjMult ()
void updateInjMult (DeferredLogger &deferred_logger)
void updateInjFCMult (DeferredLogger &deferred_logger)
void updateFiltrationModelsPostStep (const double dt, const std::size_t water_index, DeferredLogger &deferred_logger)
void updateFiltrationModelsPreStep (DeferredLogger &deferred_logger)
void runWellPIScaling (const int reportStepIdx, DeferredLogger &local_deferredLogger)
std::vector< std::vector< int > > getMaxWellConnections () const
std::vector< std::string > getWellsForTesting (const int timeStepIdx, const double simulationTime)
void assignWellTracerRates (data::Wells &wsrpt, const WellTracerRates &wellTracerRates, const unsigned reportStep) const
void assignMswTracerRates (data::Wells &wsrpt, const MswTracerRates &mswTracerRates, const unsigned reportStep) const
void assignMassGasRate (data::Wells &wsrpt, const Scalar gasDensity) const

Protected Attributes

Simulator & simulator_
std::vector< WellInterfacePtr > well_container_ {}
std::vector< bool > is_cell_perforated_ {}
const ModelParameters param_
std::size_t global_num_cells_ {}
std::size_t local_num_cells_ {}
Scalar gravity_ {}
std::vector< Scalar > depth_ {}
bool alternative_well_rate_init_ {}
std::unique_ptr< RateConverterType > rateConverter_ {}
std::map< std::string, std::unique_ptr< AverageRegionalPressureType > > regionalAveragePressureCalculator_ {}
SimulatorReportSingle last_report_ {}
GuideRateHandler< Scalar, IndexTraits > guide_rate_handler_ {}
ReservoirCoupling::Proxy< Scalar > rescoup_ {}
bool network_needs_more_balancing_force_another_newton_iteration_ {false}
std::vector< Scalar > B_avg_ {}
Protected Attributes inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType >
Schedule & schedule_
const SummaryState & summaryState_
const EclipseState & eclState_
const Parallel::Communication & comm_
BlackoilWellModelGasLiftGeneric< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & gen_gaslift_
BlackoilWellModelWBP< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > wbp_
const PhaseUsageInfo< GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & phase_usage_info_
bool terminal_output_
bool wells_active_
bool initial_step_
bool report_step_starts_
std::optional< int > last_run_wellpi_
std::vector< Well > wells_ecl_
std::vector< std::vector< PerforationData< Scalar > > > well_perf_data_
std::map< std::string, double > well_open_times_
std::map< std::string, double > well_close_times_
std::vector< ConnectionIndexMapconn_idx_map_
std::function< bool(const std::string &)> not_on_process_
std::vector< WellInterfaceGeneric< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > * > well_container_generic_
std::vector< int > local_shut_wells_
std::vector< ParallelWellInfo< Scalar > > parallel_well_info_
std::vector< std::reference_wrapper< ParallelWellInfo< Scalar > > > local_parallel_well_info_
std::vector< WellProdIndexCalculator< Scalar > > prod_index_calc_
std::vector< int > pvt_region_idx_
std::unordered_set< std::string > closed_this_step_
GuideRate guideRate_
std::unique_ptr< VFPProperties< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > > vfp_properties_
std::unordered_map< std::string, std::vector< Scalar > > prev_inj_multipliers_
std::unordered_map< std::string, WellFilterCake< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > > filter_cake_
WGState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > active_wgstate_
WGState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > last_valid_wgstate_
WGState< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > nupcol_wgstate_
GroupStateHelperType group_state_helper_
WellGroupEvents report_step_start_events_
 Well group events at start of report step.
bool wellStructureChangedDynamically_
std::map< std::string, std::vector< Group::ProductionCMode > > switched_prod_groups_
std::map< std::string, std::array< std::vector< Group::InjectionCMode >, 3 > > switched_inj_groups_
std::map< std::string, std::pair< std::string, std::string > > closed_offending_wells_
BlackoilWellModelNetworkGeneric< Scalar, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType > & genNetwork_

Additional Inherited Members

Protected Types inherited from Opm::BaseAuxiliaryModule< TypeTag >
using NeighborSet = std::set<unsigned>
Protected Types inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::FluidSystem >::IndexTraitsType >
using WellTracerRates
using MswTracerRates

Detailed Description

template<typename TypeTag>
class Opm::BlackoilWellModel< TypeTag >

Class for handling the blackoil well model.

Member Typedef Documentation

◆ AverageRegionalPressureType

template<typename TypeTag>
using Opm::BlackoilWellModel< TypeTag >::AverageRegionalPressureType
Initial value:
RegionAverageCalculator::
AverageRegionalPressure<FluidSystem, std::vector<int> >

◆ RateConverterType

template<typename TypeTag>
using Opm::BlackoilWellModel< TypeTag >::RateConverterType
Initial value:
RateConverter::
SurfaceToReservoirVoidage<FluidSystem, std::vector<int> >

Member Function Documentation

◆ calculateExplicitQuantities()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::calculateExplicitQuantities ( ) const

Calculating the explicit quantities used in the well calculation.

By explicit, we mean they are calculated at the beginning of the time step and no derivatives are included in these quantities. Called from assemble() when needsTimestepInit() returns true.

◆ calculateProductivityIndexValues()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::calculateProductivityIndexValues ( DeferredLogger & deferred_logger)
overrideprotectedvirtual

◆ calculateProductivityIndexValuesShutWells()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::calculateProductivityIndexValuesShutWells ( const int reportStepIdx,
DeferredLogger & deferred_logger )
overrideprotectedvirtual

◆ compressedIndexForInterior()

template<typename TypeTag>
int Opm::BlackoilWellModel< TypeTag >::compressedIndexForInterior ( int cartesian_cell_idx) const
inlineoverridevirtual

◆ compressedIndexForInteriorLGR()

template<typename TypeTag>
int Opm::BlackoilWellModel< TypeTag >::compressedIndexForInteriorLGR ( const std::string & lgr_tag,
const Connection & conn ) const
inlineoverridevirtual

◆ createWellContainer()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::createWellContainer ( const int report_step)
overrideprotectedvirtual

◆ initializeGroupStructure()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::initializeGroupStructure ( const int reportStepIdx)
protected

Initialize group control modes/constraints and group solution state.

Parameters
[in]reportStepIdxReport step.

◆ initializeLocalWellStructure()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::initializeLocalWellStructure ( const int reportStepIdx,
const bool enableWellPIScaling )
protected

Update rank's notion of intersecting wells and their associate solution variables.

Parameters
[in]reportStepIdxReport step.
[in]enableWellPIScalingWhether or not to enable WELPI scaling. Typically enabled (i.e., true) only at the start of a report step.

◆ initWellContainer()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::initWellContainer ( const int reportStepIdx)
overridevirtual

◆ prepareTimeStep()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::prepareTimeStep ( DeferredLogger & deferred_logger)

One-time initialization at the start of each timestep.

Called once per timestep from assemble() when needsTimestepInit() returns true.

◆ reservoirCouplingMaster()

template<typename TypeTag>
ReservoirCouplingMaster< Scalar > & Opm::BlackoilWellModel< TypeTag >::reservoirCouplingMaster ( )
inline

Get reference to reservoir coupling master.

Note
Caller must ensure isReservoirCouplingMaster() is true

◆ reservoirCouplingSlave()

template<typename TypeTag>
ReservoirCouplingSlave< Scalar > & Opm::BlackoilWellModel< TypeTag >::reservoirCouplingSlave ( )
inline

Get reference to reservoir coupling slave.

Note
Caller must ensure isReservoirCouplingSlave() is true

◆ updateGuideRates()

template<typename TypeTag>
void Opm::BlackoilWellModel< TypeTag >::updateGuideRates ( const int report_step_idx,
const double sim_time )
inline

Update guide rates for all wells and groups.

Computes guide rates based on well potentials and group hierarchy. This is typically called at the beginning of each timestep.

Parameters
report_step_idxCurrent report step index
sim_timeCurrent simulation time

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