Merge pull request #1460 from joakim-hove/wellsegments-state
Wellsegments state
This commit is contained in:
@@ -42,6 +42,9 @@ namespace Opm {
|
||||
|
||||
Segment();
|
||||
|
||||
Segment(const Segment& src, double new_depth, double new_length, double new_volume);
|
||||
Segment(const Segment& src, double new_depth, double new_length);
|
||||
Segment(const Segment& src, double new_volume);
|
||||
Segment(int segment_number_in, int branch_in, int outlet_segment_in, double length_in, double depth_in,
|
||||
double internal_diameter_in, double roughness_in, double cross_area_in, double volume_in, bool data_ready_in, SegmentType segment_type_in);
|
||||
|
||||
@@ -76,11 +79,7 @@ namespace Opm {
|
||||
int ecl_type_id() const;
|
||||
|
||||
|
||||
void setVolume(const double volume_in);
|
||||
void setDepthAndLength(const double depth_in, const double length_in);
|
||||
|
||||
const std::vector<int>& inletSegments() const;
|
||||
void addInletSegment(const int segment_number);
|
||||
|
||||
static double invalidValue();
|
||||
static SegmentType type_from_int(int ecl_id);
|
||||
@@ -88,15 +87,13 @@ namespace Opm {
|
||||
bool operator==( const Segment& ) const;
|
||||
bool operator!=( const Segment& ) const;
|
||||
|
||||
void updateSpiralICD(const SpiralICD& spiral_icd);
|
||||
|
||||
const std::shared_ptr<SpiralICD>& spiralICD() const;
|
||||
const std::shared_ptr<Valve>& getValve() const;
|
||||
|
||||
void updateValve(const Valve& valve, const double segment_length);
|
||||
|
||||
const Valve* valve() const;
|
||||
|
||||
void updateSpiralICD(const SpiralICD& spiral_icd);
|
||||
void updateValve(const Valve& valve, const double segment_length);
|
||||
void addInletSegment(const int segment_number);
|
||||
private:
|
||||
// segment number
|
||||
// it should work as a ID.
|
||||
|
||||
@@ -62,38 +62,27 @@ namespace Opm {
|
||||
|
||||
|
||||
WellSegments() = default;
|
||||
WellSegments(const std::string& wname,
|
||||
double depthTopSeg,
|
||||
double lengthTopSeg,
|
||||
double volumeTopSeg,
|
||||
LengthDepth lenDepType,
|
||||
CompPressureDrop compDrop,
|
||||
MultiPhaseModel multiPhase,
|
||||
WellSegments(const DeckKeyword& keyword);
|
||||
WellSegments(CompPressureDrop compDrop,
|
||||
const std::vector<Segment>& segments,
|
||||
const std::map<int,int>& segmentNumberIdx);
|
||||
|
||||
const std::string& wellName() const;
|
||||
int size() const;
|
||||
double depthTopSegment() const;
|
||||
double lengthTopSegment() const;
|
||||
double volumeTopSegment() const;
|
||||
|
||||
CompPressureDrop compPressureDrop() const;
|
||||
LengthDepth lengthDepthType() const;
|
||||
MultiPhaseModel multiPhaseModel() const;
|
||||
|
||||
// mapping the segment number to the index in the vector of segments
|
||||
int segmentNumberToIndex(const int segment_number) const;
|
||||
|
||||
void addSegment(Segment new_segment);
|
||||
|
||||
void loadWELSEGS( const DeckKeyword& welsegsKeyword);
|
||||
|
||||
const Segment& getFromSegmentNumber(const int segment_number) const;
|
||||
|
||||
const Segment& operator[](size_t idx) const;
|
||||
void orderSegments();
|
||||
void process(bool first_time);
|
||||
|
||||
bool operator==( const WellSegments& ) const;
|
||||
bool operator!=( const WellSegments& ) const;
|
||||
@@ -109,23 +98,13 @@ namespace Opm {
|
||||
|
||||
private:
|
||||
void processABS();
|
||||
void processINC(const bool first_time);
|
||||
void processINC(double depth_top, double length_top);
|
||||
void process(LengthDepth length_depth, double depth_top, double length_top);
|
||||
void addSegment(const Segment& new_segment);
|
||||
void loadWELSEGS( const DeckKeyword& welsegsKeyword);
|
||||
|
||||
std::string m_well_name;
|
||||
// depth of the nodal point of the top segment
|
||||
// it is taken as the BHP reference depth of the well
|
||||
// BHP reference depth data from elsewhere will be ignored for multi-segmented wells
|
||||
double m_depth_top;
|
||||
// length down the tubing to the nodal point of the top segment
|
||||
double m_length_top;
|
||||
// effective wellbore volume of the top segment
|
||||
double m_volume_top;
|
||||
// type of the tubing length and depth information
|
||||
LengthDepth m_length_depth_type;
|
||||
// components of the pressure drop to be included
|
||||
CompPressureDrop m_comp_pressure_drop;
|
||||
// multi-phase flow model
|
||||
MultiPhaseModel m_multiphase_model;
|
||||
// There are X and Y cooridnate of the nodal point of the top segment
|
||||
// Since they are not used for simulations and we are not supporting plotting,
|
||||
// we are not handling them at the moment.
|
||||
|
||||
Reference in New Issue
Block a user