#include <Well.hpp>

Classes

struct  InjectionControls
 
struct  ProductionControls
 
struct  WellGuideRate
 
struct  WellInjectionProperties
 
class  WellProductionProperties
 

Public Types

enum class  Status { OPEN = 1 , STOP = 2 , SHUT = 3 , AUTO = 4 }
 
enum class  InjectorCMode : int {
  RATE = 1 , RESV = 2 , BHP = 4 , THP = 8 ,
  GRUP = 16 , CMODE_UNDEFINED = 512
}
 
enum class  ProducerCMode : int {
  NONE = 0 , ORAT = 1 , WRAT = 2 , GRAT = 4 ,
  LRAT = 8 , CRAT = 16 , RESV = 32 , BHP = 64 ,
  THP = 128 , GRUP = 256 , CMODE_UNDEFINED = 1024
}
 
enum class  WELTARGCMode {
  ORAT = 1 , WRAT = 2 , GRAT = 3 , LRAT = 4 ,
  CRAT = 5 , RESV = 6 , BHP = 7 , THP = 8 ,
  VFP = 9 , LIFT = 10 , GUID = 11
}
 
enum class  GuideRateTarget {
  OIL = 0 , WAT = 1 , GAS = 2 , LIQ = 3 ,
  COMB = 4 , WGA = 5 , CVAL = 6 , RAT = 7 ,
  RES = 8 , UNDEFINED = 9
}
 
enum class  GasInflowEquation { STD = 0 , R_G = 1 , P_P = 2 , GPP = 3 }
 

Public Member Functions

 Well ()=default
 
 Well (const std::string &wname, const std::string &gname, std::size_t init_step, std::size_t insert_index, int headI, int headJ, double ref_depth, const WellType &wtype_arg, ProducerCMode whistctl_cmode, Connection::Order ordering, const UnitSystem &unit_system, double udq_undefined, double dr, bool allow_xflow, bool auto_shutin, int pvt_table, GasInflowEquation inflow_eq)
 
 Well (const RestartIO::RstWell &rst_well, int report_step, const UnitSystem &unit_system, double udq_undefined)
 
bool isMultiSegment () const
 
bool isAvailableForGroupControl () const
 
double getGuideRate () const
 
GuideRateTarget getGuideRatePhase () const
 
double getGuideRateScalingFactor () const
 
bool hasBeenDefined (size_t timeStep) const
 
std::size_t firstTimeStep () const
 
const WellTypewellType () const
 
bool predictionMode () const
 
bool canOpen () const
 
bool isProducer () const
 
bool isInjector () const
 
InjectorType injectorType () const
 
size_t seqIndex () const
 
bool getAutomaticShutIn () const
 
bool getAllowCrossFlow () const
 
const std::stringname () const
 
int getHeadI () const
 
int getHeadJ () const
 
double getRefDepth () const
 
double getDrainageRadius () const
 
double getEfficiencyFactor () const
 
double getSolventFraction () const
 
Status getStatus () const
 
const std::stringgroupName () const
 
Phase getPreferredPhase () const
 
const WellConnectionsgetConnections () const
 
const WellSegmentsgetSegments () const
 
const WellProductionPropertiesgetProductionProperties () const
 
const WellInjectionPropertiesgetInjectionProperties () const
 
const WellEconProductionLimitsgetEconLimits () const
 
const WellFoamPropertiesgetFoamProperties () const
 
const WellPolymerPropertiesgetPolymerProperties () const
 
const WellBrinePropertiesgetBrineProperties () const
 
const WellTracerPropertiesgetTracerProperties () const
 
double production_rate (const SummaryState &st, Phase phase) const
 
double injection_rate (const SummaryState &st, Phase phase) const
 
std::map< int, std::vector< Connection > > getCompletions () const
 
bool updatePrediction (bool prediction_mode)
 
bool updateAutoShutin (bool auto_shutin)
 
bool updateCrossFlow (bool allow_cross_flow)
 
bool updatePVTTable (int pvt_table)
 
bool updateHead (int I, int J)
 
bool updateRefDepth (double ref_dpeth)
 
bool updateDrainageRadius (double drainage_radius)
 
void updateSegments (std::shared_ptr< WellSegments > segments_arg)
 
bool updateConnections (std::shared_ptr< WellConnections > connections)
 
bool updateConnections (std::shared_ptr< WellConnections > connections, const EclipseGrid &grid, const std::vector< int > &pvtnum)
 
bool updateStatus (Status status, bool update_connections)
 
bool updateGroup (const std::string &group)
 
bool updateWellGuideRate (bool available, double guide_rate, GuideRateTarget guide_phase, double scale_factor)
 
bool updateWellGuideRate (double guide_rate)
 
bool updateEfficiencyFactor (double efficiency_factor)
 
bool updateSolventFraction (double solvent_fraction)
 
bool updateTracer (std::shared_ptr< WellTracerProperties > tracer_properties)
 
bool updateFoamProperties (std::shared_ptr< WellFoamProperties > foam_properties)
 
bool updatePolymerProperties (std::shared_ptr< WellPolymerProperties > polymer_properties)
 
bool updateBrineProperties (std::shared_ptr< WellBrineProperties > brine_properties)
 
bool updateEconLimits (std::shared_ptr< WellEconProductionLimits > econ_limits)
 
bool updateProduction (std::shared_ptr< WellProductionProperties > production)
 
bool updateInjection (std::shared_ptr< WellInjectionProperties > injection)
 
bool updateWSEGSICD (const std::vector< std::pair< int, SpiralICD > > &sicd_pairs)
 
bool updateWSEGVALV (const std::vector< std::pair< int, Valve > > &valve_pairs)
 
bool handleWELSEGS (const DeckKeyword &keyword)
 
bool handleCOMPSEGS (const DeckKeyword &keyword, const EclipseGrid &grid, const ParseContext &parseContext, ErrorGuard &errors)
 
bool handleWELOPEN (const DeckRecord &record, Connection::State status, bool action_mode)
 
bool handleCOMPLUMP (const DeckRecord &record)
 
bool handleWPIMULT (const DeckRecord &record)
 
void filterConnections (const ActiveGridCells &grid)
 
ProductionControls productionControls (const SummaryState &st) const
 
InjectionControls injectionControls (const SummaryState &st) const
 
int vfp_table_number () const
 
int pvt_table_number () const
 
int fip_region_number () const
 
GasInflowEquation gas_inflow_equation () const
 
bool segmented_density_calculation () const
 
double alq_value () const
 
double temperature () const
 
bool cmp_structure (const Well &other) const
 
bool operator== (const Well &data) const
 
void setInsertIndex (std::size_t index)
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 

Static Public Member Functions

static std::string Status2String (Status enumValue)
 
static Status StatusFromString (const std::string &stringValue)
 
static const std::string InjectorCMode2String (InjectorCMode enumValue)
 
static InjectorCMode InjectorCModeFromString (const std::string &stringValue)
 
static const std::string ProducerCMode2String (ProducerCMode enumValue)
 
static ProducerCMode ProducerCModeFromString (const std::string &stringValue)
 
static WELTARGCMode WELTARGCModeFromString (const std::string &stringValue)
 
static const std::string GuideRateTarget2String (GuideRateTarget enumValue)
 
static GuideRateTarget GuideRateTargetFromString (const std::string &stringValue)
 
static const std::string GasInflowEquation2String (GasInflowEquation enumValue)
 
static GasInflowEquation GasInflowEquationFromString (const std::string &stringValue)
 
static Well serializeObject ()
 
static bool wellNameInWellNamePattern (const std::string &wellName, const std::string &wellNamePattern)
 

Member Enumeration Documentation

◆ GasInflowEquation

enum class Opm::Well::GasInflowEquation
strong
Enumerator
STD 
R_G 
P_P 
GPP 

◆ GuideRateTarget

enum class Opm::Well::GuideRateTarget
strong
Enumerator
OIL 
WAT 
GAS 
LIQ 
COMB 
WGA 
CVAL 
RAT 
RES 
UNDEFINED 

◆ InjectorCMode

enum class Opm::Well::InjectorCMode : int
strong
Enumerator
RATE 
RESV 
BHP 
THP 
GRUP 
CMODE_UNDEFINED 

◆ ProducerCMode

enum class Opm::Well::ProducerCMode : int
strong
Enumerator
NONE 
ORAT 
WRAT 
GRAT 
LRAT 
CRAT 
RESV 
BHP 
THP 
GRUP 
CMODE_UNDEFINED 

◆ Status

enum class Opm::Well::Status
strong
Enumerator
OPEN 
STOP 
SHUT 
AUTO 

◆ WELTARGCMode

enum class Opm::Well::WELTARGCMode
strong
Enumerator
ORAT 
WRAT 
GRAT 
LRAT 
CRAT 
RESV 
BHP 
THP 
VFP 
LIFT 
GUID 

Constructor & Destructor Documentation

◆ Well() [1/3]

Opm::Well::Well ( )
default

◆ Well() [2/3]

Opm::Well::Well ( const std::string wname,
const std::string gname,
std::size_t  init_step,
std::size_t  insert_index,
int  headI,
int  headJ,
double  ref_depth,
const WellType wtype_arg,
ProducerCMode  whistctl_cmode,
Connection::Order  ordering,
const UnitSystem unit_system,
double  udq_undefined,
double  dr,
bool  allow_xflow,
bool  auto_shutin,
int  pvt_table,
GasInflowEquation  inflow_eq 
)

◆ Well() [3/3]

Opm::Well::Well ( const RestartIO::RstWell rst_well,
int  report_step,
const UnitSystem unit_system,
double  udq_undefined 
)

Member Function Documentation

◆ alq_value()

double Opm::Well::alq_value ( ) const

◆ canOpen()

bool Opm::Well::canOpen ( ) const

◆ cmp_structure()

bool Opm::Well::cmp_structure ( const Well other) const

◆ filterConnections()

void Opm::Well::filterConnections ( const ActiveGridCells grid)

◆ fip_region_number()

int Opm::Well::fip_region_number ( ) const

◆ firstTimeStep()

std::size_t Opm::Well::firstTimeStep ( ) const

◆ gas_inflow_equation()

GasInflowEquation Opm::Well::gas_inflow_equation ( ) const

◆ GasInflowEquation2String()

static const std::string Opm::Well::GasInflowEquation2String ( GasInflowEquation  enumValue)
static

◆ GasInflowEquationFromString()

static GasInflowEquation Opm::Well::GasInflowEquationFromString ( const std::string stringValue)
static

◆ getAllowCrossFlow()

bool Opm::Well::getAllowCrossFlow ( ) const

◆ getAutomaticShutIn()

bool Opm::Well::getAutomaticShutIn ( ) const

◆ getBrineProperties()

const WellBrineProperties & Opm::Well::getBrineProperties ( ) const

◆ getCompletions()

std::map< int, std::vector< Connection > > Opm::Well::getCompletions ( ) const

◆ getConnections()

const WellConnections & Opm::Well::getConnections ( ) const

◆ getDrainageRadius()

double Opm::Well::getDrainageRadius ( ) const

◆ getEconLimits()

const WellEconProductionLimits & Opm::Well::getEconLimits ( ) const

◆ getEfficiencyFactor()

double Opm::Well::getEfficiencyFactor ( ) const

◆ getFoamProperties()

const WellFoamProperties & Opm::Well::getFoamProperties ( ) const

◆ getGuideRate()

double Opm::Well::getGuideRate ( ) const

◆ getGuideRatePhase()

GuideRateTarget Opm::Well::getGuideRatePhase ( ) const

◆ getGuideRateScalingFactor()

double Opm::Well::getGuideRateScalingFactor ( ) const

◆ getHeadI()

int Opm::Well::getHeadI ( ) const

◆ getHeadJ()

int Opm::Well::getHeadJ ( ) const

◆ getInjectionProperties()

const WellInjectionProperties & Opm::Well::getInjectionProperties ( ) const

◆ getPolymerProperties()

const WellPolymerProperties & Opm::Well::getPolymerProperties ( ) const

◆ getPreferredPhase()

Phase Opm::Well::getPreferredPhase ( ) const

◆ getProductionProperties()

const WellProductionProperties & Opm::Well::getProductionProperties ( ) const

◆ getRefDepth()

double Opm::Well::getRefDepth ( ) const

◆ getSegments()

const WellSegments & Opm::Well::getSegments ( ) const

◆ getSolventFraction()

double Opm::Well::getSolventFraction ( ) const

◆ getStatus()

Status Opm::Well::getStatus ( ) const

◆ getTracerProperties()

const WellTracerProperties & Opm::Well::getTracerProperties ( ) const

◆ groupName()

const std::string & Opm::Well::groupName ( ) const

◆ GuideRateTarget2String()

static const std::string Opm::Well::GuideRateTarget2String ( GuideRateTarget  enumValue)
static

◆ GuideRateTargetFromString()

static GuideRateTarget Opm::Well::GuideRateTargetFromString ( const std::string stringValue)
static

◆ handleCOMPLUMP()

bool Opm::Well::handleCOMPLUMP ( const DeckRecord record)

◆ handleCOMPSEGS()

bool Opm::Well::handleCOMPSEGS ( const DeckKeyword keyword,
const EclipseGrid grid,
const ParseContext parseContext,
ErrorGuard errors 
)

◆ handleWELOPEN()

bool Opm::Well::handleWELOPEN ( const DeckRecord record,
Connection::State  status,
bool  action_mode 
)

◆ handleWELSEGS()

bool Opm::Well::handleWELSEGS ( const DeckKeyword keyword)

◆ handleWPIMULT()

bool Opm::Well::handleWPIMULT ( const DeckRecord record)

◆ hasBeenDefined()

bool Opm::Well::hasBeenDefined ( size_t  timeStep) const

◆ injection_rate()

double Opm::Well::injection_rate ( const SummaryState st,
Phase  phase 
) const

◆ injectionControls()

InjectionControls Opm::Well::injectionControls ( const SummaryState st) const

◆ InjectorCMode2String()

static const std::string Opm::Well::InjectorCMode2String ( InjectorCMode  enumValue)
static

◆ InjectorCModeFromString()

static InjectorCMode Opm::Well::InjectorCModeFromString ( const std::string stringValue)
static

◆ injectorType()

InjectorType Opm::Well::injectorType ( ) const

◆ isAvailableForGroupControl()

bool Opm::Well::isAvailableForGroupControl ( ) const

◆ isInjector()

bool Opm::Well::isInjector ( ) const

◆ isMultiSegment()

bool Opm::Well::isMultiSegment ( ) const

◆ isProducer()

bool Opm::Well::isProducer ( ) const

◆ name()

const std::string & Opm::Well::name ( ) const

◆ operator==()

bool Opm::Well::operator== ( const Well data) const

◆ predictionMode()

bool Opm::Well::predictionMode ( ) const

◆ ProducerCMode2String()

static const std::string Opm::Well::ProducerCMode2String ( ProducerCMode  enumValue)
static

◆ ProducerCModeFromString()

static ProducerCMode Opm::Well::ProducerCModeFromString ( const std::string stringValue)
static

◆ production_rate()

double Opm::Well::production_rate ( const SummaryState st,
Phase  phase 
) const

◆ productionControls()

ProductionControls Opm::Well::productionControls ( const SummaryState st) const

◆ pvt_table_number()

int Opm::Well::pvt_table_number ( ) const

◆ segmented_density_calculation()

bool Opm::Well::segmented_density_calculation ( ) const
inline

◆ seqIndex()

size_t Opm::Well::seqIndex ( ) const

◆ serializeObject()

static Well Opm::Well::serializeObject ( )
static

◆ serializeOp()

template<class Serializer >
void Opm::Well::serializeOp ( Serializer serializer)
inline

◆ setInsertIndex()

void Opm::Well::setInsertIndex ( std::size_t  index)

◆ Status2String()

static std::string Opm::Well::Status2String ( Status  enumValue)
static

◆ StatusFromString()

static Status Opm::Well::StatusFromString ( const std::string stringValue)
static

◆ temperature()

double Opm::Well::temperature ( ) const

◆ updateAutoShutin()

bool Opm::Well::updateAutoShutin ( bool  auto_shutin)

◆ updateBrineProperties()

bool Opm::Well::updateBrineProperties ( std::shared_ptr< WellBrineProperties brine_properties)

◆ updateConnections() [1/2]

bool Opm::Well::updateConnections ( std::shared_ptr< WellConnections connections)

◆ updateConnections() [2/2]

bool Opm::Well::updateConnections ( std::shared_ptr< WellConnections connections,
const EclipseGrid grid,
const std::vector< int > &  pvtnum 
)

◆ updateCrossFlow()

bool Opm::Well::updateCrossFlow ( bool  allow_cross_flow)

◆ updateDrainageRadius()

bool Opm::Well::updateDrainageRadius ( double  drainage_radius)

◆ updateEconLimits()

bool Opm::Well::updateEconLimits ( std::shared_ptr< WellEconProductionLimits econ_limits)

◆ updateEfficiencyFactor()

bool Opm::Well::updateEfficiencyFactor ( double  efficiency_factor)

◆ updateFoamProperties()

bool Opm::Well::updateFoamProperties ( std::shared_ptr< WellFoamProperties foam_properties)

◆ updateGroup()

bool Opm::Well::updateGroup ( const std::string group)

◆ updateHead()

bool Opm::Well::updateHead ( int  I,
int  J 
)

◆ updateInjection()

bool Opm::Well::updateInjection ( std::shared_ptr< WellInjectionProperties injection)

◆ updatePolymerProperties()

bool Opm::Well::updatePolymerProperties ( std::shared_ptr< WellPolymerProperties polymer_properties)

◆ updatePrediction()

bool Opm::Well::updatePrediction ( bool  prediction_mode)

◆ updateProduction()

bool Opm::Well::updateProduction ( std::shared_ptr< WellProductionProperties production)

◆ updatePVTTable()

bool Opm::Well::updatePVTTable ( int  pvt_table)

◆ updateRefDepth()

bool Opm::Well::updateRefDepth ( double  ref_dpeth)

◆ updateSegments()

void Opm::Well::updateSegments ( std::shared_ptr< WellSegments segments_arg)

◆ updateSolventFraction()

bool Opm::Well::updateSolventFraction ( double  solvent_fraction)

◆ updateStatus()

bool Opm::Well::updateStatus ( Status  status,
bool  update_connections 
)

◆ updateTracer()

bool Opm::Well::updateTracer ( std::shared_ptr< WellTracerProperties tracer_properties)

◆ updateWellGuideRate() [1/2]

bool Opm::Well::updateWellGuideRate ( bool  available,
double  guide_rate,
GuideRateTarget  guide_phase,
double  scale_factor 
)

◆ updateWellGuideRate() [2/2]

bool Opm::Well::updateWellGuideRate ( double  guide_rate)

◆ updateWSEGSICD()

bool Opm::Well::updateWSEGSICD ( const std::vector< std::pair< int, SpiralICD > > &  sicd_pairs)

◆ updateWSEGVALV()

bool Opm::Well::updateWSEGVALV ( const std::vector< std::pair< int, Valve > > &  valve_pairs)

◆ vfp_table_number()

int Opm::Well::vfp_table_number ( ) const

◆ wellNameInWellNamePattern()

static bool Opm::Well::wellNameInWellNamePattern ( const std::string wellName,
const std::string wellNamePattern 
)
static

◆ wellType()

const WellType & Opm::Well::wellType ( ) const

◆ WELTARGCModeFromString()

static WELTARGCMode Opm::Well::WELTARGCModeFromString ( const std::string stringValue)
static

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