|
| 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 SimulatorReportSingle & | lastReport () 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) |
|
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.
|
|
| 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 PhaseUsage & | phaseUsage () 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 |
|
|
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
|
|
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 |
|
|
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< WBPCalcID > | wbpCalcMap_ {} |
|
SimulatorReportSingle | last_report_ {} |
|
BVector | scaleAddRes_ {} |
|
std::vector< Scalar > | B_avg_ {} |
|
std::map< std::string, int > | well_domain_ |
|
SparseTable< int > | well_local_cells_ |
|
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_ |
|
template<typename TypeTag>
class Opm::BlackoilWellModel< TypeTag >
Class for handling the blackoil well model.