Class for handling the multi-segment well model. More...
#include <MultisegmentWells.hpp>
Classes | |
struct | MultisegmentWellOps |
Public Types | |
typedef Eigen::Array< Scalar, Eigen::Dynamic, 1 > | V |
Underlying type for values. | |
Public Member Functions | |
MultisegmentWells (const Wells *wells_arg, WellCollection *well_collection, const std::vector< const Well * > &wells_ecl, const int time_step) | |
std::vector < WellMultiSegmentConstPtr > | createMSWellVector (const Wells *wells_arg, const std::vector< const Well * > &wells_ecl, const int time_step) |
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 std::vector < WellMultiSegmentConstPtr > & | msWells () const |
const MultisegmentWellOps & | wellOps () const |
const Wells & | wells () const |
const Wells * | wellsPointer () const |
int | numPhases () const |
int | numWells () const |
int | numSegment () const |
int | numPerf () const |
bool | wellsActive () const |
void | setWellsActive (const bool wells_active) |
bool | localWellsActive () const |
int | numWellVars () 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 |
Vector & | wellPerforationCellPressureDiffs () |
Vector & | wellSegmentPerforationDepthDiffs () |
const Vector & | wellPerforationCellDensities () const |
Vector & | wellPerforationCellDensities () |
const std::vector< Vector > & | segmentCompSurfVolumeInitial () const |
std::vector< Vector > & | segmentCompSurfVolumeInitial () |
const std::vector< ADB > & | segmentCompSurfVolumeCurrent () const |
const std::vector< int > & | topWellSegments () const |
std::vector< int > & | topWellSegments () |
Vector & | segVDt () |
const Vector & | wellPerforationDensities () const |
Vector & | wellPerforationDensities () |
const Vector & | wellPerforationPressureDiffs () const |
Vector & | wellPerforationPressureDiffs () |
template<class WellState > | |
void | updateWellState (const Vector &dwells, const double dpmaxrel, WellState &well_state) 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 SolutionState > | |
void | computeSegmentFluidProperties (const SolutionState &state) |
void | computeSegmentPressuresDelta (const double grav) |
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 WellState > | |
void | updateWellControls (WellState &xw) const |
void | variableStateWellIndices (std::vector< int > &indices, int &next) const |
template<class SolutionState > | |
void | variableStateExtractWellsVars (const std::vector< int > &indices, std::vector< ADB > &vars, SolutionState &state) const |
std::vector< int > | variableWellStateIndices () const |
template<class WellState > | |
void | variableWellStateInitials (const WellState &xw, std::vector< Vector > &vars0) const |
template<class SolutionState , class WellState > | |
void | computeWellConnectionPressures (const SolutionState &state, const WellState &xw, const std::vector< ADB > &kr_adb, const std::vector< ADB > &fluid_density) |
WellCollection * | wellCollection () const |
void | calculateEfficiencyFactors () |
const Vector & | wellPerfEfficiencyFactors () const |
Protected Attributes | |
bool | wells_active_ |
std::vector < WellMultiSegmentConstPtr > | wells_multisegment_ |
MultisegmentWellOps | wops_ms_ |
WellCollection * | well_collection_ |
Vector | well_perforation_efficiency_factors_ |
const int | num_phases_ |
int | nseg_total_ |
int | nperf_total_ |
const Wells * | wells_ |
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_cell_pressure_diffs_ |
ADB | well_segment_perforation_pressure_diffs_ |
Vector | well_segment_perforation_depth_diffs_ |
Vector | perf_cell_depth_diffs_ |
Vector | well_perforation_cell_densities_ |
ADB | well_segment_densities_ |
ADB | well_segment_pressures_delta_ |
std::vector< Vector > | segment_comp_surf_volume_initial_ |
std::vector< ADB > | segment_comp_surf_volume_current_ |
ADB | segment_mass_flow_rates_ |
ADB | segment_viscosities_ |
std::vector< int > | top_well_segments_ |
Vector | segvdt_ |
Vector | well_perforation_densities_ |
Vector | well_perforation_pressure_diffs_ |
Class for handling the multi-segment well model.