move segment_depth_diffs_ to MultisegmentWellSegments

This commit is contained in:
Arne Morten Kvarving 2022-12-19 13:52:21 +01:00
parent 5755c94256
commit 40adc0ddbd
5 changed files with 13 additions and 13 deletions

View File

@ -360,7 +360,7 @@ typename MultisegmentWellEval<FluidSystem,Indices,Scalar>::EvalWell
MultisegmentWellEval<FluidSystem,Indices,Scalar>:: MultisegmentWellEval<FluidSystem,Indices,Scalar>::
getHydroPressureLoss(const int seg) const getHydroPressureLoss(const int seg) const
{ {
return segments_.densities_[seg] * baseif_.gravity() * this->segment_depth_diffs_[seg]; return segments_.densities_[seg] * baseif_.gravity() * segments_.depth_diffs_[seg];
} }
template<typename FluidSystem, typename Indices, typename Scalar> template<typename FluidSystem, typename Indices, typename Scalar>

View File

@ -46,17 +46,7 @@ template<typename Scalar>
MultisegmentWellGeneric<Scalar>:: MultisegmentWellGeneric<Scalar>::
MultisegmentWellGeneric(WellInterfaceGeneric& baseif) MultisegmentWellGeneric(WellInterfaceGeneric& baseif)
: baseif_(baseif) : baseif_(baseif)
, segment_depth_diffs_(numberOfSegments(), 0.0)
{ {
// calculating the depth difference between the segment and its oulet_segments
// for the top segment, we will make its zero unless we find other purpose to use this value
for (int seg = 1; seg < numberOfSegments(); ++seg) {
const double segment_depth = segmentSet()[seg].depth();
const int outlet_segment_number = segmentSet()[seg].outletSegment();
const Segment& outlet_segment = segmentSet()[segmentNumberToIndex(outlet_segment_number)];
const double outlet_depth = outlet_segment.depth();
segment_depth_diffs_[seg] = segment_depth - outlet_depth;
}
} }
template<typename Scalar> template<typename Scalar>

View File

@ -73,8 +73,6 @@ protected:
bool frictionalPressureLossConsidered() const; bool frictionalPressureLossConsidered() const;
const WellInterfaceGeneric& baseif_; const WellInterfaceGeneric& baseif_;
std::vector<double> segment_depth_diffs_;
}; };
} }

View File

@ -44,6 +44,7 @@ MultisegmentWellSegments(const int numSegments,
: perforations_(numSegments) : perforations_(numSegments)
, perforation_depth_diffs_(well.numPerfs(), 0.0) , perforation_depth_diffs_(well.numPerfs(), 0.0)
, inlets_(well.wellEcl().getSegments().size()) , inlets_(well.wellEcl().getSegments().size())
, depth_diffs_(numSegments, 0.0)
, densities_(numSegments, 0.0) , densities_(numSegments, 0.0)
, mass_rates_(numSegments, 0.0) , mass_rates_(numSegments, 0.0)
, viscosities_(numSegments, 0.0) , viscosities_(numSegments, 0.0)
@ -96,6 +97,15 @@ MultisegmentWellSegments(const int numSegments,
} }
} }
// calculating the depth difference between the segment and its oulet_segments
// for the top segment, we will make its zero unless we find other purpose to use this value
for (int seg = 1; seg < numSegments; ++seg) {
const double segment_depth = segment_set[seg].depth();
const int outlet_segment_number = segment_set[seg].outletSegment();
const Segment& outlet_segment = segment_set[segment_set.segmentNumberToIndex(outlet_segment_number)];
const double outlet_depth = outlet_segment.depth();
depth_diffs_[seg] = segment_depth - outlet_depth;
}
} }
#define INSTANCE(...) \ #define INSTANCE(...) \

View File

@ -60,6 +60,8 @@ public:
// the inlet segments for each segment. It is for convenience and efficiency reason // the inlet segments for each segment. It is for convenience and efficiency reason
std::vector<std::vector<int>> inlets_; std::vector<std::vector<int>> inlets_;
std::vector<double> depth_diffs_;
// the densities of segment fluids // the densities of segment fluids
// we should not have this member variable // we should not have this member variable
std::vector<EvalWell> densities_; std::vector<EvalWell> densities_;