Class for handling the blackoil well model.
More...
#include <BlackoilWellModel.hpp>
|
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 | VectorBlockType = Dune::FieldVector< Scalar, numEq > |
|
using | BVector = Dune::BlockVector< VectorBlockType > |
|
using | PolymerModule = BlackOilPolymerModule< TypeTag > |
|
using | MICPModule = BlackOilMICPModule< TypeTag > |
|
using | RateConverterType = RateConverter::SurfaceToReservoirVoidage< FluidSystem, std::vector< int > > |
|
using | AverageRegionalPressureType = RegionAverageCalculator::AverageRegionalPressure< FluidSystem, std::vector< int > > |
|
using | WellInterfacePtr = std::shared_ptr< WellInterface< TypeTag > > |
|
using | PressureMatrix = Dune::BCRSMatrix< Opm::MatrixBlock< Scalar, 1, 1 > > |
|
using | NeighborSet = typename ::Opm::BaseAuxiliaryModule< TypeTag >::NeighborSet |
|
using | Domain = SubDomain< Grid > |
|
|
| 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 checkWellGroupControls=false) const |
|
const SimulatorReportSingle & | lastReport () 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 (DeferredLogger &deferred_logger) const |
|
void | prepareTimeStep (DeferredLogger &deferred_logger) |
|
bool | updateWellControls (DeferredLogger &deferred_logger) |
|
std::tuple< bool, Scalar > | updateNetworks (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 |
|
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. More...
|
|
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 More...
|
|
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) |
|
const Grid & | grid () const |
|
const Simulator & | simulator () const |
|
void | setNlddAdapter (BlackoilWellModelNldd< TypeTag > *mod) |
|
ReservoirCouplingMaster & | reservoirCouplingMaster () |
|
ReservoirCouplingSlave & | reservoirCouplingSlave () |
|
bool | isReservoirCouplingMaster () const |
|
bool | isReservoirCouplingSlave () const |
|
void | setReservoirCouplingMaster (ReservoirCouplingMaster *master) |
|
void | setReservoirCouplingSlave (ReservoirCouplingSlave *slave) |
|
unsigned | numDofs () const override |
| Returns the number of additional degrees of freedom required for the auxiliary module. More...
|
|
void | addNeighbors (std::vector< NeighborSet > &neighbors) const override |
| Specify the additional neighboring correlations caused by the auxiliary module. More...
|
|
void | applyInitial () override |
| Set the initial condition of the auxiliary module in the solution vector. More...
|
|
void | linearize (SparseMatrixAdapter &jacobian, GlobalEqVector &res) override |
| Linearize the auxiliary equation. More...
|
|
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. More...
|
|
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. More...
|
|
void | setDofOffset (int value) |
| Set the offset in the global system of equations for the first degree of freedom of this auxiliary module. More...
|
|
int | dofOffset () |
| Return the offset in the global system of equations for the first degree of freedom of this auxiliary module. More...
|
|
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. More...
|
|
int | numLocalWells () const |
|
int | numLocalWellsEnd () const |
|
int | numLocalNonshutWells () const |
|
int | numPhases () const |
|
bool | wellsActive () const |
| return true if wells are available in the reservoir More...
|
|
bool | hasLocalWell (const std::string &wname) const |
| Returns true if well is defined and has connections on current rank. More...
|
|
bool | hasOpenLocalWell (const std::string &well_name) const |
| Returns true if well is defined, open and has connections on current rank. More...
|
|
bool | networkActive () const |
| return true if network is active (at least one network well in prediction mode) More...
|
|
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 PhaseUsage & | phaseUsage () const |
|
const GroupState< GetPropType< TypeTag, Properties::Scalar > > & | groupState () const |
|
GroupState< GetPropType< TypeTag, Properties::Scalar > > & | groupState () |
|
std::vector< const WellInterfaceGeneric< GetPropType< TypeTag, Properties::Scalar > > * > | genericWells () const |
|
std::vector< WellInterfaceGeneric< GetPropType< TypeTag, Properties::Scalar > > * > | genericWells () |
|
const WellState< GetPropType< TypeTag, Properties::Scalar > > & | wellState () const |
|
WellState< GetPropType< TypeTag, Properties::Scalar > > & | wellState () |
|
const WellState< GetPropType< TypeTag, Properties::Scalar > > & | nupcolWellState () const |
|
WellTestState & | wellTestState () |
|
const WellTestState & | wellTestState () const |
|
GetPropType< TypeTag, Properties::Scalar > | wellPI (const int well_index) const |
|
GetPropType< TypeTag, Properties::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, 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 |
|
void | updateNetworkActiveState (const int report_step) |
| Checks if network is active (at least one network well on prediction). More...
|
|
bool | needPreStepNetworkRebalance (const int report_step) const |
|
bool | forceShutWellByName (const std::string &wellname, const double simulation_time, const bool dont_shut_grup_wells) |
|
const std::vector< PerforationData< GetPropType< TypeTag, Properties::Scalar > > > & | perfData (const int well_idx) const |
|
const Parallel::Communication & | comm () const |
|
const EclipseState & | eclipseState () const |
|
const SummaryState & | summaryState () const |
|
const GuideRate & | guideRate () const |
|
GuideRate & | guideRate () |
|
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 |
|
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 | logPrimaryVars () const |
|
void | serializeOp (Serializer &serializer) |
|
bool | operator== (const BlackoilWellModelGeneric &rhs) const |
|
const ParallelWellInfo< GetPropType< TypeTag, Properties::Scalar > > & | parallelWellInfo (const std::size_t idx) const |
|
bool | isOwner (const std::string &wname) const |
|
const ConnectionIndexMap & | connectionIndexMap (const std::size_t idx) |
|
|
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 EquilGrid & | equilGrid () const |
|
const EclipseState & | eclState () const |
|
void | assemble (const int iterationIdx, 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) |
|
bool | updateWellControlsAndNetwork (const bool mandatory_network_balance, const double dt, DeferredLogger &local_deferredLogger) |
|
bool | computeWellGroupThp (const double dt, DeferredLogger &local_deferredLogger) |
|
void | initializeLocalWellStructure (const int reportStepIdx, const bool enableWellPIScaling) |
|
void | initializeGroupStructure (const int reportStepIdx) |
|
void | timeStepSucceeded (const double simulationTime, const double dt) |
|
void | endReportStep () |
|
void | updatePrimaryVariables (DeferredLogger &deferred_logger) |
|
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 | prepareWellsBeforeAssembling (const double dt, DeferredLogger &deferred_logger) |
|
void | assembleWellEqWithoutIteration (const double dt, DeferredLogger &deferred_logger) |
|
void | extractLegacyCellPvtRegionIndex_ () |
|
void | extractLegacyDepth_ () |
|
void | updateWellTestState (const double &simulationTime, WellTestState &wellTestState) const |
| upate the wellTestState related to economic limits More...
|
|
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 () |
|
void | commitWGState (WGState< GetPropType< TypeTag, Properties::Scalar > > wgstate) |
|
bool | wasDynamicallyShutThisTimeStep (const int well_index) const |
|
const WellState< GetPropType< TypeTag, Properties::Scalar > > & | prevWellState () const |
|
const WGState< GetPropType< TypeTag, Properties::Scalar > > & | prevWGState () const |
|
void | resetWGState () |
|
void | updateNupcolWGState () |
|
void | reportGroupSwitching (DeferredLogger &local_deferredLogger) const |
|
std::vector< std::reference_wrapper< ParallelWellInfo< GetPropType< TypeTag, Properties::Scalar > > > > | createLocalParallelWellInfo (const std::vector< Well > &wells) |
| Create the parallel well information. More...
|
|
void | initializeWellProdIndCalculators () |
|
void | initializeWellPerfData () |
|
GetPropType< TypeTag, Properties::Scalar > | updateNetworkPressures (const int reportStepIdx, const GetPropType< TypeTag, Properties::Scalar > damping_factor, const GetPropType< TypeTag, Properties::Scalar > update_upper_bound) |
|
void | updateWsolvent (const Group &group, const int reportStepIdx, const WellState< GetPropType< TypeTag, Properties::Scalar > > &wellState) |
|
void | setWsolvent (const Group &group, const int reportStepIdx, GetPropType< TypeTag, Properties::Scalar > wsolvent) |
|
virtual void | calcResvCoeff (const int fipnum, const int pvtreg, const std::vector< GetPropType< TypeTag, Properties::Scalar > > &production_rates, std::vector< GetPropType< TypeTag, Properties::Scalar > > &resv_coeff)=0 |
|
virtual void | calcInjResvCoeff (const int fipnum, const int pvtreg, std::vector< GetPropType< TypeTag, Properties::Scalar > > &resv_coeff)=0 |
|
void | assignDynamicWellStatus (data::Wells &wsrpt, const int reportStepIdx) const |
|
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< GetPropType< TypeTag, Properties::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, const int max_number_of_group_switch) |
|
void | updateAndCommunicateGroupData (const int reportStepIdx, const int iterationIdx, const GetPropType< TypeTag, Properties::Scalar > tol_nupcol, const bool update_wellgrouptarget, DeferredLogger &deferred_logger) |
|
void | inferLocalShutWells () |
|
void | setRepRadiusPerfLength () |
|
virtual void | computePotentials (const std::size_t widx, const WellState< GetPropType< TypeTag, Properties::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< 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 GetPropType< TypeTag, Properties::Scalar > gasDensity) const |
|
|
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_ {} |
|
SimulatorReportSingle | last_report_ {} |
|
GuideRateHandler< Scalar > | guide_rate_handler_ {} |
|
std::vector< Scalar > | B_avg_ {} |
|
Schedule & | schedule_ |
|
const SummaryState & | summaryState_ |
|
const EclipseState & | eclState_ |
|
const Parallel::Communication & | comm_ |
|
BlackoilWellModelGasLiftGeneric< GetPropType< TypeTag, Properties::Scalar > > & | gen_gaslift_ |
|
BlackoilWellModelWBP< GetPropType< TypeTag, Properties::Scalar > > | wbp_ |
|
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< GetPropType< TypeTag, Properties::Scalar > > > > | well_perf_data_ |
|
std::map< std::string, double > | well_open_times_ |
|
std::map< std::string, double > | well_close_times_ |
|
std::vector< ConnectionIndexMap > | conn_idx_map_ |
|
std::function< bool(const std::string &)> | not_on_process_ |
|
std::vector< WellInterfaceGeneric< GetPropType< TypeTag, Properties::Scalar > > * > | well_container_generic_ |
|
std::vector< int > | local_shut_wells_ |
|
std::vector< ParallelWellInfo< GetPropType< TypeTag, Properties::Scalar > > > | parallel_well_info_ |
|
std::vector< std::reference_wrapper< ParallelWellInfo< GetPropType< TypeTag, Properties::Scalar > > > > | local_parallel_well_info_ |
|
std::vector< WellProdIndexCalculator< GetPropType< TypeTag, Properties::Scalar > > > | prod_index_calc_ |
|
std::vector< int > | pvt_region_idx_ |
|
std::unordered_set< std::string > | closed_this_step_ |
|
GuideRate | guideRate_ |
|
std::unique_ptr< VFPProperties< GetPropType< TypeTag, Properties::Scalar > > > | vfp_properties_ |
|
std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > | node_pressures_ |
|
std::map< std::string, GetPropType< TypeTag, Properties::Scalar > > | last_valid_node_pressures_ |
|
std::unordered_map< std::string, std::vector< GetPropType< TypeTag, Properties::Scalar > > > | prev_inj_multipliers_ |
|
std::unordered_map< std::string, WellFilterCake< GetPropType< TypeTag, Properties::Scalar > > > | filter_cake_ |
|
WGState< GetPropType< TypeTag, Properties::Scalar > > | active_wgstate_ |
|
WGState< GetPropType< TypeTag, Properties::Scalar > > | last_valid_wgstate_ |
|
WGState< GetPropType< TypeTag, Properties::Scalar > > | nupcol_wgstate_ |
|
WellGroupEvents | report_step_start_events_ |
| Well group events at start of report step. More...
|
|
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_ |
|
template<typename TypeTag>
class Opm::BlackoilWellModel< TypeTag > Class for handling the blackoil well model.
◆ AverageRegionalPressureType
template<typename TypeTag >
◆ BVector
template<typename TypeTag >
◆ Domain
◆ ElementContext
template<typename TypeTag >
◆ EquilGrid
template<typename TypeTag >
◆ FluidSystem
template<typename TypeTag >
◆ GlobalEqVector
template<typename TypeTag >
◆ Grid
template<typename TypeTag >
◆ Indices
template<typename TypeTag >
◆ MICPModule
template<typename TypeTag >
◆ ModelParameters
template<typename TypeTag >
◆ MswTracerRates
◆ NeighborSet
◆ PolymerModule
template<typename TypeTag >
◆ PressureMatrix
template<typename TypeTag >
◆ RateConverterType
template<typename TypeTag >
◆ RateVector
template<typename TypeTag >
◆ Scalar
template<typename TypeTag >
◆ Simulator
template<typename TypeTag >
◆ SparseMatrixAdapter
template<typename TypeTag >
◆ VectorBlockType
template<typename TypeTag >
◆ WellConnectionModule
template<typename TypeTag >
◆ WellInterfacePtr
template<typename TypeTag >
◆ WellTracerRates
◆ BlackoilWellModel()
template<typename TypeTag >
◆ addMatrixContributions()
template<typename TypeTag >
◆ addNeighbors()
|
inlineoverridevirtualinherited |
◆ addReservoirSourceTerms()
template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::addReservoirSourceTerms |
( |
GlobalEqVector & |
residual, |
|
|
const std::vector< typename SparseMatrixAdapter::MatrixBlock * > & |
diagMatAddress |
|
) |
| const |
◆ addWellContributions()
template<typename TypeTag >
◆ addWellPressureEquations()
template<typename TypeTag >
◆ addWellPressureEquationsDomain()
template<typename TypeTag >
◆ addWellPressureEquationsStruct()
template<typename TypeTag >
◆ anyMSWellOpenLocal()
◆ applyInitial()
|
inlineoverridevirtualinherited |
◆ assemble()
template<typename TypeTag >
◆ assembleWellEq()
template<typename TypeTag >
◆ assembleWellEqWithoutIteration()
template<typename TypeTag >
◆ assignDynamicWellStatus()
Assign dynamic well status for each well owned by current rank
- Parameters
-
[in,out] | wsrpt | Well solution object. On exit, holds current values for data::Well::dynamicStatus
. |
[in] | reportStepIdx | Zero-based index of current report step. |
◆ assignGroupControl()
◆ assignGroupValues()
◆ assignInjectionWellTargets()
◆ assignMassGasRate()
◆ assignMswTracerRates()
◆ assignNodeValues()
◆ assignProductionWellTargets()
◆ assignShutConnections()
Assign basic result quantities for shut connections of wells owned by current rank.
Mostly provided for summary file output purposes. Applies to fully shut/stopped wells and shut connections of open/flowing wells.
- Parameters
-
[in,out] | wsrpt | Well solution object. On exit, also contains a few quantities, like the D factor, the Kh product and the CTF, for shut connections. |
[in] | reportStepIdx | Zero-based index of current report step. |
◆ assignWellTargets()
◆ assignWellTracerRates()
◆ begin()
template<typename TypeTag >
◆ beginEpisode()
template<typename TypeTag >
◆ beginIteration()
template<typename TypeTag >
◆ beginReportStep()
template<typename TypeTag >
◆ beginTimeStep()
template<typename TypeTag >
◆ calcInjResvCoeff() [1/2]
|
protectedpure virtualinherited |
◆ calcInjResvCoeff() [2/2]
template<typename TypeTag >
◆ calcResvCoeff() [1/2]
|
protectedpure virtualinherited |
◆ calcResvCoeff() [2/2]
template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::calcResvCoeff |
( |
const int |
fipnum, |
|
|
const int |
pvtreg, |
|
|
const std::vector< Scalar > & |
production_rates, |
|
|
std::vector< Scalar > & |
resv_coeff |
|
) |
| |
|
overrideprotected |
◆ calculateEfficiencyFactors()
◆ calculateExplicitQuantities()
template<typename TypeTag >
◆ calculateProductivityIndexValues() [1/2]
template<typename TypeTag >
◆ calculateProductivityIndexValues() [2/2]
template<typename TypeTag >
◆ calculateProductivityIndexValuesShutWells()
template<typename TypeTag >
◆ checkGconsaleLimits()
◆ checkGEconLimits()
◆ checkGroupHigherConstraints()
◆ comm()
◆ commitWGState() [1/2]
◆ commitWGState() [2/2]
◆ compressedIndexForInterior()
template<typename TypeTag >
◆ compressedIndexForInteriorLGR()
template<typename TypeTag >
int Opm::BlackoilWellModel< TypeTag >::compressedIndexForInteriorLGR |
( |
const std::string & |
lgr_tag, |
|
|
const Connection & |
conn |
|
) |
| const |
|
inlineoverridevirtual |
◆ computePotentials() [1/2]
|
protectedpure virtualinherited |
◆ computePotentials() [2/2]
template<typename TypeTag >
◆ computeTotalRatesForDof() [1/2]
template<typename TypeTag >
template<class Context >
◆ computeTotalRatesForDof() [2/2]
template<typename TypeTag >
◆ computeWellGroupThp()
template<typename TypeTag >
◆ computeWellTemperature()
template<typename TypeTag >
◆ connectionIndexMap()
◆ createLocalParallelWellInfo()
Create the parallel well information.
- Parameters
-
localWells | The local wells from ECL schedule |
◆ createTypedWellPointer()
template<typename TypeTag >
template<typename WellType >
std::unique_ptr< WellType > Opm::BlackoilWellModel< TypeTag >::createTypedWellPointer |
( |
const int |
wellID, |
|
|
const int |
time_step |
|
) |
| const |
|
protected |
◆ createWellContainer()
template<typename TypeTag >
◆ createWellForWellTest()
template<typename TypeTag >
◆ createWellPointer()
template<typename TypeTag >
◆ deserialize()
◆ dofOffset()
Return the offset in the global system of equations for the first degree of freedom of this auxiliary module.
◆ doPreStepNetworkRebalance()
template<typename TypeTag >
◆ eclipseState()
◆ eclState()
template<typename TypeTag >
◆ eclWells()
◆ empty()
template<typename TypeTag >
◆ end()
template<typename TypeTag >
◆ endEpisode()
template<typename TypeTag >
◆ endIteration()
template<typename TypeTag >
◆ endReportStep()
template<typename TypeTag >
◆ endTimeStep()
template<typename TypeTag >
◆ equilGrid()
template<typename TypeTag >
◆ extractLegacyCellPvtRegionIndex_()
template<typename TypeTag >
◆ extractLegacyDepth_()
template<typename TypeTag >
◆ forceShutWellByName()
Shut down any single well Returns true if the well was actually found and shut.
◆ genericWells() [1/2]
◆ genericWells() [2/2]
◆ getCellsForConnections()
◆ getLocalWells()
◆ getMaxWellConnections()
◆ getWell()
template<typename TypeTag >
◆ getWellConvergence()
template<typename TypeTag >
◆ getWellEcl()
◆ getWellsForTesting()
◆ grid()
template<typename TypeTag >
◆ groupAndNetworkData()
◆ groupState() [1/2]
◆ groupState() [2/2]
◆ guideRate() [1/2]
◆ guideRate() [2/2]
◆ hasLocalWell()
Returns true if well is defined and has connections on current rank.
◆ hasOpenLocalWell()
Returns true if well is defined, open and has connections on current rank.
◆ inferLocalShutWells()
◆ init()
template<typename TypeTag >
◆ initFromRestartFile() [1/2]
template<typename TypeTag >
◆ initFromRestartFile() [2/2]
◆ initializeGroupStructure()
template<typename TypeTag >
◆ 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] | reportStepIdx | Report step. |
[in] | enableWellPIScaling | Whether or not to enable WELPI scaling. Typically enabled (i.e., true) only at the start of a report step. |
References OPM_BEGIN_PARALLEL_TRY_CATCH, and OPM_END_PARALLEL_TRY_CATCH_LOG.
◆ initializeWellPerfData()
◆ initializeWellProdIndCalculators()
◆ initializeWellState()
template<typename TypeTag >
◆ initInjMult()
◆ initWellContainer()
template<typename TypeTag >
◆ isOwner()
◆ isReservoirCouplingMaster()
template<typename TypeTag >
◆ isReservoirCouplingSlave()
template<typename TypeTag >
◆ lastReport()
template<typename TypeTag >
◆ linearize()
|
inlineoverridevirtualinherited |
◆ linearizeDomain()
◆ localNonshutWells()
template<typename TypeTag >
◆ localToGlobalDof()
◆ logPrimaryVars()
◆ needPreStepNetworkRebalance()
Checks if there are reasons to perform a pre-step network re-balance. (Currently, the only reasons are network well status changes.) (TODO: Consider if adding network change events would be helpful.)
◆ networkActive()
return true if network is active (at least one network well in prediction mode)
◆ numComponents()
template<typename TypeTag >
◆ numDofs()
|
inlineoverridevirtualinherited |
◆ numLocalNonshutWells()
◆ numLocalWells()
◆ numLocalWellsEnd()
◆ numPhases()
◆ numStrictIterations()
template<typename TypeTag >
◆ nupcolWellState()
◆ operator==()
◆ parallelWellInfo()
◆ perfData()
◆ phaseUsage()
◆ postSolve()
|
inlineoverridevirtualinherited |
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 >.
◆ postSolveDomain()
◆ prepareDeserialize() [1/2]
template<typename TypeTag >
◆ prepareDeserialize() [2/2]
◆ prepareTimeStep()
template<typename TypeTag >
◆ prepareWellsBeforeAssembling()
template<typename TypeTag >
◆ prevWellState()
◆ prevWGState()
◆ recoverWellSolutionAndUpdateWellState()
template<typename TypeTag >
◆ recoverWellSolutionAndUpdateWellStateDomain()
template<typename TypeTag >
◆ reportGroupSwitching()
◆ reportStepIndex()
template<typename TypeTag >
◆ reportStepStartEvents()
◆ reportStepStarts()
◆ reservoirCouplingMaster()
template<typename TypeTag >
◆ reservoirCouplingSlave()
template<typename TypeTag >
◆ resetWGState()
◆ runWellPIScaling()
◆ schedule()
◆ serialize()
This method writes the complete state of the well to the harddisk.
◆ serializeOp()
◆ setDofOffset()
◆ setNlddAdapter()
template<typename TypeTag >
◆ setRepRadiusPerfLength()
◆ setReservoirCouplingMaster()
template<typename TypeTag >
◆ setReservoirCouplingSlave()
template<typename TypeTag >
◆ setWsolvent()
◆ shouldBalanceNetwork()
◆ simulator()
template<typename TypeTag >
◆ summaryState()
◆ terminalOutput()
◆ timeStepSucceeded()
template<typename TypeTag >
◆ updateAndCommunicate()
template<typename TypeTag >
◆ updateAndCommunicateGroupData()
◆ updateAverageFormationFactor()
template<typename TypeTag >
◆ updateClosedWellsThisStep()
◆ updateEclWells()
◆ updateFiltrationModelsPostStep()
◆ updateFiltrationModelsPreStep()
◆ updateGroupControls()
template<typename TypeTag >
◆ updateInjFCMult()
◆ updateInjMult()
◆ updateNetworkActiveState()
Checks if network is active (at least one network well on prediction).
◆ updateNetworkPressures()
◆ updateNetworks()
template<typename TypeTag >
◆ updateNupcolWGState()
◆ updatePrimaryVariables()
template<typename TypeTag >
◆ updateWellControls()
template<typename TypeTag >
◆ updateWellControlsAndNetwork()
template<typename TypeTag >
◆ updateWellControlsAndNetworkIteration()
template<typename TypeTag >
std::tuple< bool, bool, typename BlackoilWellModel< TypeTag >::Scalar > Opm::BlackoilWellModel< TypeTag >::updateWellControlsAndNetworkIteration |
( |
const bool |
mandatory_network_balance, |
|
|
const bool |
relax_network_tolerance, |
|
|
const bool |
optimize_gas_lift, |
|
|
const double |
dt, |
|
|
DeferredLogger & |
local_deferredLogger |
|
) |
| |
|
protected |
◆ updateWellPotentials()
◆ updateWellTestState()
template<typename TypeTag >
void Opm::BlackoilWellModel< TypeTag >::updateWellTestState |
( |
const double & |
simulationTime, |
|
|
WellTestState & |
wellTestState |
|
) |
| const |
|
protected |
◆ updateWsolvent()
◆ wasDynamicallyShutThisTimeStep() [1/2]
◆ wasDynamicallyShutThisTimeStep() [2/2]
◆ well_domain()
template<typename TypeTag >
◆ well_local_cells()
template<typename TypeTag >
◆ wellBlockAveragePressures()
template<typename TypeTag >
◆ wellCloseTimes()
◆ wellData()
template<typename TypeTag >
References Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >::assignDynamicWellStatus(), Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >::assignMassGasRate(), Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >::assignShutConnections(), Opm::BlackoilWellModelGuideRates< Scalar >::assignWellGuideRates(), Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >::assignWellTargets(), Opm::BlackoilWellModel< TypeTag >::eclState(), Opm::WellState< Scalar >::report(), Opm::BlackoilWellModel< TypeTag >::reportStepIndex(), Opm::BlackoilWellModel< TypeTag >::simulator_, and Opm::BlackoilWellModelGeneric< GetPropType< TypeTag, Properties::Scalar > >::wellState().
◆ wellOpenTimes()
◆ wellPerfEfficiencyFactors()
template<typename TypeTag >
◆ wellPI() [1/2]
◆ wellPI() [2/2]
◆ wellsActive()
return true if wells are available in the reservoir
◆ wellState() [1/2]
◆ wellState() [2/2]
◆ wellTesting()
template<typename TypeTag >
◆ wellTestState() [1/2]
◆ wellTestState() [2/2]
◆ active_wgstate_
◆ alternative_well_rate_init_
template<typename TypeTag >
◆ B_avg_
template<typename TypeTag >
◆ closed_offending_wells_
◆ closed_this_step_
|
mutableprotectedinherited |
◆ comm_
◆ conn_idx_map_
◆ depth_
template<typename TypeTag >
◆ eclState_
◆ filter_cake_
◆ gen_gaslift_
◆ global_num_cells_
template<typename TypeTag >
◆ gravity_
template<typename TypeTag >
◆ guide_rate_handler_
template<typename TypeTag >
◆ guideRate_
◆ has_energy_
template<typename TypeTag >
◆ has_micp_
template<typename TypeTag >
◆ has_polymer_
template<typename TypeTag >
◆ has_solvent_
template<typename TypeTag >
◆ initial_step_
◆ is_cell_perforated_
template<typename TypeTag >
◆ last_report_
template<typename TypeTag >
◆ last_run_wellpi_
◆ last_valid_node_pressures_
◆ last_valid_wgstate_
◆ local_num_cells_
template<typename TypeTag >
◆ local_parallel_well_info_
◆ local_shut_wells_
◆ network_active_
◆ node_pressures_
◆ not_on_process_
◆ numEq
template<typename TypeTag >
◆ nupcol_wgstate_
◆ parallel_well_info_
◆ param_
template<typename TypeTag >
◆ phase_usage_
◆ pressureVarIndex
template<typename TypeTag >
◆ prev_inj_multipliers_
◆ prod_index_calc_
◆ pvt_region_idx_
◆ rateConverter_
template<typename TypeTag >
◆ regionalAveragePressureCalculator_
template<typename TypeTag >
◆ report_step_start_events_
Well group events at start of report step.
◆ report_step_starts_
◆ schedule_
◆ simulator_
template<typename TypeTag >
Referenced by Opm::BlackoilWellModel< TypeTag >::beginEpisode(), Opm::BlackoilWellModel< TypeTag >::beginIteration(), Opm::BlackoilWellModel< TypeTag >::compressedIndexForInterior(), Opm::BlackoilWellModel< TypeTag >::compressedIndexForInteriorLGR(), Opm::BlackoilWellModel< TypeTag >::eclState(), Opm::BlackoilWellModel< TypeTag >::endTimeStep(), Opm::BlackoilWellModel< TypeTag >::equilGrid(), Opm::BlackoilWellModel< TypeTag >::grid(), Opm::BlackoilWellModel< TypeTag >::initFromRestartFile(), Opm::BlackoilWellModel< TypeTag >::isReservoirCouplingMaster(), Opm::BlackoilWellModel< TypeTag >::isReservoirCouplingSlave(), Opm::BlackoilWellModel< TypeTag >::reservoirCouplingMaster(), Opm::BlackoilWellModel< TypeTag >::reservoirCouplingSlave(), Opm::BlackoilWellModel< TypeTag >::simulator(), and Opm::BlackoilWellModel< TypeTag >::wellData().
◆ solventSaturationIdx
template<typename TypeTag >
◆ summaryState_
◆ switched_inj_groups_
◆ switched_prod_groups_
◆ terminal_output_
◆ vfp_properties_
◆ wbp_
◆ well_close_times_
◆ well_container_
template<typename TypeTag >
◆ well_container_generic_
◆ well_group_thp_calc_
template<typename TypeTag >
◆ well_open_times_
◆ well_perf_data_
◆ wells_active_
◆ wells_ecl_
◆ wellStructureChangedDynamically_
The documentation for this class was generated from the following files:
|