My Project
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::BaseAuxiliaryModule< TypeTag > Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >

Classes

struct  WBPCalcID
 

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 GasLiftSingleWell = typename WellInterface<TypeTag>::GasLiftSingleWell
 
using GLiftOptWells = typename BlackoilWellModelGeneric<Scalar>::GLiftOptWells
 
using GLiftProdWells = typename BlackoilWellModelGeneric<Scalar>::GLiftProdWells
 
using GLiftWellStateMap
 
using GLiftEclWells = typename GasLiftGroupInfo<Scalar>::GLiftEclWells
 
using GLiftSyncGroups = typename GasLiftSingleWellGeneric<Scalar>::GLiftSyncGroups
 
using ModelParameters = BlackoilModelParameters<Scalar>
 
typedef BaseAuxiliaryModule< TypeTag >::NeighborSet NeighborSet
 
typedef Dune::FieldVector< Scalar, numEq > VectorBlockType
 
typedef Dune::BlockVector< VectorBlockType > BVector
 
typedef BlackOilPolymerModule< TypeTag > PolymerModule
 
typedef BlackOilMICPModule< TypeTag > MICPModule
 
using RateConverterType
 
using AverageRegionalPressureType
 
using Domain = SubDomain<Grid>
 
using WellInterfacePtr = std::shared_ptr<WellInterface<TypeTag> >
 
using PressureMatrix = Dune::BCRSMatrix<Opm::MatrixBlock<Scalar, 1, 1>>
 
- Public Types inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >
using GLiftOptWells
 
using GLiftProdWells
 
using GLiftWellStateMap
 

Public Member Functions

 BlackoilWellModel (Simulator &simulator)
 
void init ()
 
void initWellContainer (const int reportStepIdx) override
 
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 linearizeDomain (const Domain &domain, SparseMatrixAdapter &jacobian, GlobalEqVector &res)
 
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 postSolveDomain (GlobalEqVector &deltaX, const Domain &domain)
 
template<class Restarter >
void deserialize (Restarter &)
 
template<class Restarter >
void serialize (Restarter &)
 This method writes the complete state of the well to the harddisk.
 
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
 
void apply (const BVector &x, BVector &Ax) const
 
void applyDomain (const BVector &x, BVector &Ax, const int domainIndex) const
 
void applyScaleAdd (const Scalar alpha, const BVector &x, BVector &Ax) const
 
void applyScaleAddDomain (const Scalar alpha, const BVector &x, BVector &Ax, const int domainIndex) const
 
ConvergenceReport getWellConvergence (const std::vector< Scalar > &B_avg, const bool checkWellGroupControls=false) const
 
ConvergenceReport getDomainWellConvergence (const Domain &domain, const std::vector< Scalar > &B_avg, DeferredLogger &local_deferredLogger) const
 
const SimulatorReportSinglelastReport () const
 
void addWellContributions (SparseMatrixAdapter &jacobian) const
 
void addReservoirSourceTerms (GlobalEqVector &residual, std::vector< typename SparseMatrixAdapter::MatrixBlock * > &diagMatAddress) const
 
void beginReportStep (const int time_step)
 
void calculateExplicitQuantities (DeferredLogger &deferred_logger) const
 Calculating the explict quantities used in the well calculation.
 
void prepareTimeStep (DeferredLogger &deferred_logger)
 
void initPrimaryVariablesEvaluation () const
 
void initPrimaryVariablesEvaluationDomain (const Domain &domain) const
 
std::pair< bool, bool > updateWellControls (const bool mandatory_network_balance, DeferredLogger &deferred_logger, const bool relax_network_tolerance=false)
 
void updateAndCommunicate (const int reportStepIdx, const int iterationIdx, DeferredLogger &deferred_logger)
 
bool updateGroupControls (const Group &group, DeferredLogger &deferred_logger, const int reportStepIdx, const int iterationIdx)
 
WellInterfacePtr getWell (const std::string &well_name) const
 
bool hasWell (const std::string &well_name) const
 
void addWellPressureEquations (PressureMatrix &jacobian, const BVector &weights, const bool use_well_weights) const
 
void addWellPressureEquationsDomain (PressureMatrix &jacobian, const BVector &weights, const bool use_well_weights, const int domainIndex) const
 
void addWellPressureEquationsStruct (PressureMatrix &jacobian) const
 
void initGliftEclWellMap (GLiftEclWells &ecl_well_map)
 
const std::vector< WellInterfacePtr > & localNonshutWells () const
 Get list of local nonshut wells.
 
void assembleDomain (const int iterationIdx, const double dt, const Domain &domain)
 
void updateWellControlsDomain (DeferredLogger &deferred_logger, const Domain &domain)
 
void logPrimaryVars () const
 
std::vector< Scalar > getPrimaryVarsDomain (const Domain &domain) const
 
void setPrimaryVarsDomain (const Domain &domain, const std::vector< Scalar > &vars)
 
void setupDomains (const std::vector< Domain > &domains)
 
- 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 > >
 BlackoilWellModelGeneric (Schedule &schedule, const SummaryState &summaryState, const EclipseState &eclState, const PhaseUsage &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 hasWell (const std::string &wname) const
 
bool networkActive () const
 return true if network is active (at least one network well in prediction mode)
 
bool anyMSWellOpenLocal () const
 
const Well & getWellEcl (const std::string &well_name) const
 
std::vector< Well > getLocalWells (const int timeStepIdx) const
 
const Schedule & schedule () const
 
const PhaseUsagephaseUsage () const
 
const GroupState< Scalar > & groupState () const
 
GroupState< Scalar > & groupState ()
 
std::vector< const WellInterfaceGeneric< Scalar > * > genericWells () const
 
const WellState< Scalar > & wellState () const
 
WellState< Scalar > & wellState ()
 
const WellState< Scalar > & nupcolWellState () const
 
WellTestState & wellTestState ()
 
const WellTestState & wellTestState () const
 
Scalar wellPI (const int well_index) const
 
Scalar wellPI (const std::string &well_name) 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)
 
void prepareDeserialize (int report_step, const std::size_t numCells, bool handle_ms_well)
 
void commitWGState ()
 
data::GroupAndNetworkValues groupAndNetworkData (const int reportStepIdx) const
 
bool hasTHPConstraints () const
 Return true if any well has a THP constraint.
 
void updateNetworkActiveState (const int report_step)
 Checks if network is active (at least one network well on prediction).
 
bool needPreStepNetworkRebalance (const int report_step) const
 Checks if there are reasons to perform a pre-step network re-balance.
 
bool forceShutWellByName (const std::string &wellname, const double simulation_time)
 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
 
bool reportStepStarts () const
 
bool shouldBalanceNetwork (const int reportStepIndex, const int iterationIdx) const
 
void updateClosedWellsThisStep (const std::string &well_name) const
 
bool wasDynamicallyShutThisTimeStep (const std::string &well_name) const
 
void serializeOp (Serializer &serializer)
 
bool operator== (const BlackoilWellModelGeneric &rhs) const
 

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 bool has_energy_ = getPropValue<TypeTag, Properties::EnableEnergy>()
 
static constexpr bool has_micp_ = getPropValue<TypeTag, Properties::EnableMICP>()
 

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
 
void doPreStepNetworkRebalance (DeferredLogger &deferred_logger)
 
const Grid & grid () const
 
const EquilGrid & equilGrid () const
 
const EclipseState & eclState () const
 
void assemble (const int iterationIdx, const double dt)
 
std::pair< bool, bool > updateWellControlsAndNetworkIteration (const bool mandatory_network_balance, const bool relax_network_tolerance, const double dt, DeferredLogger &local_deferredLogger)
 
bool updateWellControlsAndNetwork (const bool mandatory_network_balance, const double dt, DeferredLogger &local_deferredLogger)
 
void computeWellGroupThp (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 recoverWellSolutionAndUpdateWellState (const BVector &x)
 
void recoverWellSolutionAndUpdateWellStateDomain (const BVector &x, const Domain &domain)
 
void updatePrimaryVariables (DeferredLogger &deferred_logger)
 
void initializeWBPCalculationService ()
 
data::WellBlockAveragePressures computeWellBlockAveragePressures () const
 
ParallelWBPCalculation< Scalar >::EvaluatorFactory makeWellSourceEvaluatorFactory (const std::vector< Well >::size_type wellIdx) const
 
void registerOpenWellsForWBPCalculation ()
 
void updateAverageFormationFactor ()
 
void computePotentials (const std::size_t widx, const WellState< Scalar > &well_state_copy, std::string &exc_msg, ExceptionType::ExcEnum &exc_type, DeferredLogger &deferred_logger) 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 numComponents () const
 
int reportStepIndex () const
 
void assembleWellEq (const double dt, DeferredLogger &deferred_logger)
 
void assembleWellEqDomain (const double dt, const Domain &domain, DeferredLogger &deferred_logger)
 
void prepareWellsBeforeAssembling (const double dt, DeferredLogger &deferred_logger)
 
void assembleWellEqWithoutIteration (const double dt, DeferredLogger &deferred_logger)
 
bool maybeDoGasLiftOptimize (DeferredLogger &deferred_logger)
 
void gasLiftOptimizationStage1 (DeferredLogger &deferred_logger, GLiftProdWells &prod_wells, GLiftOptWells &glift_wells, GasLiftGroupInfo< Scalar > &group_info, GLiftWellStateMap &state_map)
 
void gasLiftOptimizationStage1SingleWell (WellInterface< TypeTag > *well, DeferredLogger &deferred_logger, GLiftProdWells &prod_wells, GLiftOptWells &glift_wells, GasLiftGroupInfo< Scalar > &group_info, GLiftWellStateMap &state_map, GLiftSyncGroups &groups_to_sync)
 
void extractLegacyCellPvtRegionIndex_ ()
 
void extractLegacyDepth_ ()
 
void updateWellTestState (const double &simulationTime, WellTestState &wellTestState) const
 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) override
 
void calcInjResvCoeff (const int fipnum, const int pvtreg, std::vector< Scalar > &resv_coeff) override
 
void computeWellTemperature ()
 
int compressedIndexForInterior (int cartesian_cell_idx) const override
 get compressed index for interior cells (-1, otherwise
 
- Protected Member Functions inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >
void commitWGState (WGState< Scalar > wgstate)
 
bool wasDynamicallyShutThisTimeStep (const int well_index) const
 
const WellState< Scalar > & prevWellState () const
 
const WGState< Scalar > & prevWGState () const
 
void resetWGState ()
 
void updateNupcolWGState ()
 
std::vector< std::reference_wrapper< ParallelWellInfo< Scalar > > > createLocalParallelWellInfo (const std::vector< Well > &wells)
 Create the parallel well information.
 
void initializeWellProdIndCalculators ()
 
void initializeWellPerfData ()
 
Scalar updateNetworkPressures (const int reportStepIdx)
 
void updateWsolvent (const Group &group, const int reportStepIdx, const WellState< Scalar > &wellState)
 
void setWsolvent (const Group &group, const int reportStepIdx, Scalar wsolvent)
 
virtual void calcResvCoeff (const int fipnum, const int pvtreg, const std::vector< Scalar > &production_rates, std::vector< Scalar > &resv_coeff)=0
 
virtual void calcInjResvCoeff (const int fipnum, const int pvtreg, std::vector< Scalar > &resv_coeff)=0
 
void assignShutConnections (data::Wells &wsrpt, const int reportStepIndex) const
 
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 assignNodeValues (std::map< std::string, data::NodeData > &nodevalues, const int reportStepIdx) const
 
void calculateEfficiencyFactors (const int reportStepIdx)
 
void checkGconsaleLimits (const Group &group, WellState< Scalar > &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)
 
void updateAndCommunicateGroupData (const int reportStepIdx, const int iterationIdx)
 
void inferLocalShutWells ()
 
void setRepRadiusPerfLength ()
 
void gliftDebug (const std::string &msg, DeferredLogger &deferred_logger) const
 
void gliftDebugShowALQ (DeferredLogger &deferred_logger)
 
void gasLiftOptimizationStage2 (DeferredLogger &deferred_logger, GLiftProdWells &prod_wells, GLiftOptWells &glift_wells, GasLiftGroupInfo< Scalar > &group_info, GLiftWellStateMap &map, const int episodeIndex)
 
virtual void computePotentials (const std::size_t widx, const WellState< Scalar > &well_state_copy, std::string &exc_msg, ExceptionType::ExcEnum &exc_type, DeferredLogger &deferred_logger)=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< int > getCellsForConnections (const Well &well) const
 
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
 
void assignMswTracerRates (data::Wells &wsrpt, const MswTracerRates &mswTracerRates) 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::map< std::string, Scalar > well_group_thp_calc_
 
std::unique_ptr< RateConverterType > rateConverter_ {}
 
std::map< std::string, std::unique_ptr< AverageRegionalPressureType > > regionalAveragePressureCalculator_ {}
 
std::vector< WBPCalcIDwbpCalcMap_ {}
 
SimulatorReportSingle last_report_ {}
 
BVector scaleAddRes_ {}
 
std::vector< Scalar > B_avg_ {}
 
std::map< std::string, int > well_domain_
 
SparseTable< int > well_local_cells_
 
- Protected Attributes inherited from Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >
Schedule & schedule_
 
const SummaryState & summaryState_
 
const EclipseState & eclState_
 
const Parallel::Communication & comm_
 
PhaseUsage phase_usage_
 
bool terminal_output_
 
bool wells_active_
 
bool network_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::vector< ConnectionIndexMap > conn_idx_map_
 
std::function< bool(const Well &)> not_on_process_
 
std::vector< WellInterfaceGeneric< Scalar > * > 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_
 
ParallelWBPCalculation< Scalar > wbpCalculationService_
 
std::vector< int > pvt_region_idx_
 
std::unordered_set< std::string > closed_this_step_
 
GuideRate guideRate_
 
std::unique_ptr< VFPProperties< Scalar > > vfp_properties_
 
std::map< std::string, Scalar > node_pressures_
 
std::unordered_map< std::string, std::vector< Scalar > > prev_inj_multipliers_
 
std::unordered_map< std::string, WellFilterCake< Scalar > > filter_cake_
 
WGState< Scalar > active_wgstate_
 
WGState< Scalar > last_valid_wgstate_
 
WGState< Scalar > nupcol_wgstate_
 
bool glift_debug
 
double last_glift_opt_time_
 
bool wellStructureChangedDynamically_
 
std::map< std::string, std::string > switched_prod_groups_
 
std::map< std::pair< std::string, Phase >, std::string > switched_inj_groups_
 
std::map< std::string, std::pair< std::string, std::string > > closed_offending_wells_
 

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 > >
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> >

◆ GLiftWellStateMap

template<typename TypeTag >
using Opm::BlackoilWellModel< TypeTag >::GLiftWellStateMap
Initial value:
typename BlackoilWellModelGeneric<Scalar>::GLiftWellStateMap

◆ RateConverterType

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

Member Function Documentation

◆ addNeighbors()

template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::addNeighbors ( std::vector< NeighborSet > & neighbors) const
overridevirtual

Specify the additional neighboring correlations caused by the auxiliary module.

Implements Opm::BaseAuxiliaryModule< TypeTag >.

◆ applyInitial()

template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::applyInitial ( )
inlineoverridevirtual

Set the initial condition of the auxiliary module in the solution vector.

Implements Opm::BaseAuxiliaryModule< TypeTag >.

◆ calculateExplicitQuantities()

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

Calculating the explict quantities used in the well calculation.

By explicit, we mean they are cacluated at the beginning of the time step and no derivatives are included in these quantities

◆ 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
inlineoverrideprotectedvirtual

get compressed index for interior cells (-1, otherwise

Implements Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >.

◆ 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

◆ linearize()

template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::linearize ( SparseMatrixAdapter & matrix,
GlobalEqVector & residual )
overridevirtual

Linearize the auxiliary equation.

Implements Opm::BaseAuxiliaryModule< TypeTag >.

◆ numDofs()

template<typename TypeTag >
unsigned Opm::BlackoilWellModel< TypeTag >::numDofs ( ) const
inlineoverridevirtual

Returns the number of additional degrees of freedom required for the auxiliary module.

Implements Opm::BaseAuxiliaryModule< TypeTag >.

◆ postSolve()

template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::postSolve ( GlobalEqVector & )
inlineoverridevirtual

This method is called after the linear solver has been called but before the solution is updated for the next iteration.

It is intended to implement stuff like Schur complements.

Reimplemented from Opm::BaseAuxiliaryModule< TypeTag >.


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