All Classes Namespaces Files Functions Variables Typedefs Enumerator Pages
Opm::StandardWellsSolvent Class Reference

Class for handling the standard well model for solvent model. More...

#include <StandardWellsSolvent.hpp>

Inheritance diagram for Opm::StandardWellsSolvent:
Opm::StandardWells

Public Types

using Base = StandardWells
 
- Public Types inherited from Opm::StandardWells
using ADB = AutoDiffBlock< double >
 
using Vector = ADB::V
 
using Communication = Dune::CollectiveCommunication< typename Dune::MPIHelper::MPICommunicator >
 
using DataBlock = Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >
 

Public Member Functions

 StandardWellsSolvent (const Wells *wells_arg, WellCollection *well_collection)
 
void initSolvent (const SolventPropsAdFromDeck *solvent_props, const int solvent_pos, const bool has_solvent)
 
template<class SolutionState >
void computeWellFlux (const SolutionState &state, const std::vector< ADB > &mob_perfcells, const std::vector< ADB > &b_perfcells, Vector &aliveWells, std::vector< ADB > &cq_s) const
 
template<class SolutionState , class WellState >
void computePropertiesForWellConnectionPressures (const SolutionState &state, const WellState &xw, std::vector< double > &b_perf, std::vector< double > &rsmax_perf, std::vector< double > &rvmax_perf, std::vector< double > &surf_dens_perf)
 
template<class ReservoirResidualQuant , class SolutionState >
void extractWellPerfProperties (const SolutionState &state, const std::vector< ReservoirResidualQuant > &rq, std::vector< ADB > &mob_perfcells, std::vector< ADB > &b_perfcells) const
 
template<class SolutionState , class WellState >
void computeWellConnectionPressures (const SolutionState &state, const WellState &xw)
 
- Public Member Functions inherited from Opm::StandardWells
 StandardWells (const Wells *wells_arg, WellCollection *well_collection)
 
void init (const BlackoilPropsAdFromDeck *fluid_arg, const std::vector< bool > *active_arg, const std::vector< PhasePresence > *pc_arg, const VFPProperties *vfp_properties_arg, const double gravity_arg, const Vector &depth_arg)
 
const WellOpswellOps () const
 
int numPhases () const
 
const Wells & wells () const
 
const Wells * wellsPointer () const
 
bool wellsActive () const
 return true if wells are available in the reservoir
 
void setWellsActive (const bool wells_active)
 
bool localWellsActive () const
 return true if wells are available on this process
 
int numWellVars () const
 
Vector & wellPerforationDensities ()
 Density of each well perforation.
 
const Vector & wellPerforationDensities () const
 
Vector & wellPerforationPressureDiffs ()
 Diff to bhp for each well perforation.
 
const Vector & wellPerforationPressureDiffs () const
 
template<class ReservoirResidualQuant , class SolutionState >
void extractWellPerfProperties (const SolutionState &state, const std::vector< ReservoirResidualQuant > &rq, std::vector< ADB > &mob_perfcells, std::vector< ADB > &b_perfcells) const
 
template<class SolutionState >
void computeWellFlux (const SolutionState &state, const std::vector< ADB > &mob_perfcells, const std::vector< ADB > &b_perfcells, Vector &aliveWells, std::vector< ADB > &cq_s) const
 
template<class SolutionState , class WellState >
void updatePerfPhaseRatesAndPressures (const std::vector< ADB > &cq_s, const SolutionState &state, WellState &xw) const
 
template<class WellState >
void updateWellState (const Vector &dwells, const double dpmaxrel, WellState &well_state)
 
template<class WellState >
void updateWellControls (WellState &xw) const
 
template<class SolutionState >
void addWellFluxEq (const std::vector< ADB > &cq_s, const SolutionState &state, LinearisedBlackoilResidual &residual)
 
template<class SolutionState , class WellState >
void addWellControlEq (const SolutionState &state, const WellState &xw, const Vector &aliveWells, LinearisedBlackoilResidual &residual)
 
template<class SolutionState , class WellState >
void computeWellConnectionPressures (const SolutionState &state, const WellState &xw)
 
template<class SolutionState , class WellState >
void computeWellPotentials (const std::vector< ADB > &mob_perfcells, const std::vector< ADB > &b_perfcells, const WellState &well_state, SolutionState &state0, std::vector< double > &well_potentials) const
 
template<class SolutionState >
void variableStateExtractWellsVars (const std::vector< int > &indices, std::vector< ADB > &vars, SolutionState &state) const
 
void variableStateWellIndices (std::vector< int > &indices, int &next) const
 
std::vector< int > variableWellStateIndices () const
 
template<class WellState >
void variableWellStateInitials (const WellState &xw, std::vector< Vector > &vars0) const
 
void setStoreWellPerforationFluxesFlag (const bool store_fluxes)
 If set, computeWellFlux() will additionally store the total reservoir volume perforation fluxes. More...
 
const Vector & getStoredWellPerforationFluxes () const
 Retrieves the stored fluxes. More...
 
template<class WellState >
void updateListEconLimited (const Schedule &schedule, const int current_step, const Wells *wells, const WellState &well_state, DynamicListEconLimited &list_econ_limited) const
 upate the dynamic lists related to economic limits
 
WellCollection * wellCollection () const
 
void calculateEfficiencyFactors ()
 
const Vector & wellPerfEfficiencyFactors () const
 

Protected Attributes

const SolventPropsAdFromDecksolvent_props_
 
int solvent_pos_
 
bool has_solvent_
 
- Protected Attributes inherited from Opm::StandardWells
bool wells_active_
 
const Wells * wells_
 
const WellOps wops_
 
WellCollection * well_collection_
 
Vector well_perforation_efficiency_factors_
 
const BlackoilPropsAdFromDeckfluid_
 
const std::vector< bool > * active_
 
const std::vector
< PhasePresence > * 
phase_condition_
 
const VFPPropertiesvfp_properties_
 
double gravity_
 
Vector perf_cell_depth_
 
Vector well_perforation_densities_
 
Vector well_perforation_pressure_diffs_
 
bool store_well_perforation_fluxes_
 
Vector well_perforation_fluxes_
 

Additional Inherited Members

- Protected Types inherited from Opm::StandardWells
enum  ConnectionIndex { INVALIDCONNECTION = -10000 }
 
using WellMapType = typename WellState::WellMapType
 
using WellMapEntryType = typename WellState::mapentry_t
 
using RatioCheckTuple = std::tuple< bool, bool, int, double >
 
- Protected Member Functions inherited from Opm::StandardWells
template<class SolutionState , class WellState >
void computePropertiesForWellConnectionPressures (const SolutionState &state, const WellState &xw, std::vector< double > &b_perf, std::vector< double > &rsmax_perf, std::vector< double > &rvmax_perf, std::vector< double > &surf_dens_perf)
 
template<class WellState >
void computeWellConnectionDensitesPressures (const WellState &xw, const std::vector< double > &b_perf, const std::vector< double > &rsmax_perf, const std::vector< double > &rvmax_perf, const std::vector< double > &surf_dens_perf, const std::vector< double > &depth_perf, const double grav)
 
template<class WellState >
bool checkRateEconLimits (const WellEconProductionLimits &econ_production_limits, const WellState &well_state, const int well_number) const
 
template<class WellState >
RatioCheckTuple checkRatioEconLimits (const WellEconProductionLimits &econ_production_limits, const WellState &well_state, const WellMapEntryType &map_entry) const
 
template<class WellState >
RatioCheckTuple checkMaxWaterCutLimit (const WellEconProductionLimits &econ_production_limits, const WellState &well_state, const WellMapEntryType &map_entry) const
 
template<class WellState >
void updateWellStateWithTarget (const WellControls *wc, const int current, const int well_index, WellState &xw) const
 

Detailed Description

Class for handling the standard well model for solvent model.


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