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>::
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>

View File

@ -46,17 +46,7 @@ template<typename Scalar>
MultisegmentWellGeneric<Scalar>::
MultisegmentWellGeneric(WellInterfaceGeneric& 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>

View File

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

View File

@ -44,6 +44,7 @@ MultisegmentWellSegments(const int numSegments,
: perforations_(numSegments)
, perforation_depth_diffs_(well.numPerfs(), 0.0)
, inlets_(well.wellEcl().getSegments().size())
, depth_diffs_(numSegments, 0.0)
, densities_(numSegments, 0.0)
, mass_rates_(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(...) \

View File

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