Opm::StandardWells Class Reference

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

#include <StandardWells.hpp>

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

List of all members.

Classes

struct  WellOps

Public Types

typedef Eigen::Array< Scalar,
Eigen::Dynamic, 1 > 
V
 Underlying type for values.

Public Member Functions

 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.
const Vector & getStoredWellPerforationFluxes () const
 Retrieves the stored fluxes.
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 Types

enum  ConnectionIndex { INVALIDCONNECTION = -10000 }

Protected Member Functions

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

Protected Attributes

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_

Detailed Description

Class for handling the standard well model.


Member Function Documentation

const StandardWells::Vector & Opm::StandardWells::getStoredWellPerforationFluxes (  )  const

Retrieves the stored fluxes.

It is an error to call this unless setStoreWellPerforationFluxesFlag(true) has been called.

void Opm::StandardWells::setStoreWellPerforationFluxesFlag ( const bool  store_fluxes  ) 

If set, computeWellFlux() will additionally store the total reservoir volume perforation fluxes.


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

Generated on 26 Mar 2018 by  doxygen 1.6.1