My Project
Loading...
Searching...
No Matches
Opm::WellConnections Class Reference

Public Types

using const_iterator = std::vector< Connection >::const_iterator
 

Public Member Functions

 WellConnections (const Connection::Order ordering, const int headI, const int headJ)
 
 WellConnections (const Connection::Order ordering, const int headI, const int headJ, const std::vector< Connection > &connections)
 
template<class Grid >
 WellConnections (const WellConnections &src, const Grid &grid)
 
void add (const Connection &conn)
 
void addConnection (const int i, const int j, const int k, const std::size_t global_index, const Connection::State state, const double depth, const Connection::CTFProperties &ctf_props, const int satTableId, const Connection::Direction direction=Connection::Direction::Z, const Connection::CTFKind ctf_kind=Connection::CTFKind::DeckValue, const std::size_t seqIndex=0, const bool defaultSatTabId=true)
 
void loadCOMPDAT (const DeckRecord &record, const ScheduleGrid &grid, const std::string &wname, const WDFAC &wdfac, const KeywordLocation &location)
 
void loadCOMPTRAJ (const DeckRecord &record, const ScheduleGrid &grid, const std::string &wname, const KeywordLocation &location, external::cvf::ref< external::cvf::BoundingBoxTree > &cellSearchTree)
 
void loadWELTRAJ (const DeckRecord &record, const ScheduleGrid &grid, const std::string &wname, const KeywordLocation &location)
 
void applyDFactorCorrelation (const ScheduleGrid &grid, const WDFAC &wdfac)
 
int getHeadI () const
 
int getHeadJ () const
 
const std::vector< double > & getMD () const
 
std::size_t size () const
 
bool empty () const
 
std::size_t num_open () const
 
const Connectionoperator[] (size_t index) const
 
const Connectionget (size_t index) const
 
const ConnectiongetFromIJK (const int i, const int j, const int k) const
 
const ConnectiongetFromGlobalIndex (std::size_t global_index) const
 
const Connectionlowest () const
 
ConnectiongetFromIJK (const int i, const int j, const int k)
 
bool hasGlobalIndex (std::size_t global_index) const
 
double segment_perf_length (int segment) const
 
const_iterator begin () const
 
const_iterator end () const
 
void filter (const ActiveGridCells &grid)
 
bool allConnectionsShut () const
 
void order ()
 Order connections irrespective of input order.
 
bool operator== (const WellConnections &) const
 
bool operator!= (const WellConnections &) const
 
Connection::Order ordering () const
 
std::vector< const Connection * > output (const EclipseGrid &grid) const
 
bool prepareWellPIScaling ()
 Activate or reactivate WELPI scaling for this connection set.
 
void applyWellPIScaling (const double scaleFactor, std::vector< bool > &scalingApplicable)
 Scale pertinent connections' CF value by supplied value.
 
template<class Serializer >
void serializeOp (Serializer &serializer)
 

Static Public Member Functions

static WellConnections serializationTestObject ()
 

Member Function Documentation

◆ applyWellPIScaling()

void Opm::WellConnections::applyWellPIScaling ( const double  scaleFactor,
std::vector< bool > &  scalingApplicable 
)

Scale pertinent connections' CF value by supplied value.

Scaling factor typically derived from 'WELPI' input keyword and a dynamic productivity index calculation. Applicability array specifies whether or not a particular connection is exempt from scaling. Empty array means "apply scaling to all eligible connections". This array is updated on return (entries set to 'false' if corresponding connection is not eligible).

◆ order()

void Opm::WellConnections::order ( )

Order connections irrespective of input order.

The algorithm used is the following:

  1. The connection nearest to the given (well_i, well_j) coordinates in terms of the connection's (i, j) is chosen to be the first connection. If non-unique, choose one with lowest z-depth (shallowest).
  2. Choose next connection to be nearest to current in (i, j) sense. If non-unique choose closest in z-depth (not logical cartesian k).
Parameters
[in]well_ilogical cartesian i-coordinate of well head
[in]well_jlogical cartesian j-coordinate of well head
[in]gridEclipseGrid object, used for cell depths

◆ prepareWellPIScaling()

bool Opm::WellConnections::prepareWellPIScaling ( )

Activate or reactivate WELPI scaling for this connection set.

Following this call, any WELPI-based scaling will apply to all connections whose properties are not reset in COMPDAT.

Returns whether or not this call to prepareWellPIScaling() is a state change (e.g., no WELPI to active WELPI or WELPI for some connections to WELPI for all connections).


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