Opm::MultisegmentWells Class Reference

Class for handling the multi-segment well model. More...

#include <MultisegmentWells.hpp>

List of all members.

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 MultisegmentWellOpswellOps () 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 BlackoilPropsAdFromDeckfluid_
const std::vector< bool > * active_
const std::vector
< PhasePresence > * 
phase_condition_
const VFPPropertiesvfp_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< ADBsegment_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_

Detailed Description

Class for handling the multi-segment well model.


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

Generated on 26 Mar 2018 by  doxygen 1.6.1