Class for handling the standard well model. More...
#include <StandardWells.hpp>
Classes | |
struct | WellOps |
Public Types | |
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 | |
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 WellOps & | wellOps () 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 | |
bool | wells_active_ |
const Wells * | wells_ |
const WellOps | wops_ |
WellCollection * | well_collection_ |
Vector | well_perforation_efficiency_factors_ |
const BlackoilPropsAdFromDeck * | fluid_ |
const std::vector< bool > * | active_ |
const std::vector< PhasePresence > * | phase_condition_ |
const VFPProperties * | vfp_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_ |
Class for handling the standard well model.
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.