Add private member segment_number to SegmentState class

This commit is contained in:
Joakim Hove 2021-06-01 15:28:03 +02:00
parent ac12c8b3a4
commit d3e019fbce
2 changed files with 18 additions and 3 deletions

View File

@ -27,14 +27,23 @@
namespace Opm
{
namespace {
std::vector<int> make_segment_number( const WellSegments& segments ) {
std::vector<int> segment_number;
std::transform(segments.begin(), segments.end(), std::back_insert_iterator(segment_number), [](const Segment& segment) { return segment.segmentNumber(); });
return segment_number;
}
}
SegmentState::SegmentState(int num_phases, const WellSegments& segments) :
rates(segments.size() * num_phases),
pressure(segments.size()),
pressure_drop_friction(segments.size()),
pressure_drop_hydrostatic(segments.size()),
pressure_drop_accel(segments.size())
pressure_drop_accel(segments.size()),
m_segment_number(make_segment_number(segments))
{
}
double SegmentState::pressure_drop(std::size_t index) const {
@ -57,4 +66,8 @@ void SegmentState::scale_pressure(double bhp) {
[scale_factor] (const double& p) { return p*scale_factor;});
}
const std::vector<int>& SegmentState::segment_number() const {
return this->m_segment_number;
}
}

View File

@ -37,13 +37,15 @@ public:
double pressure_drop(std::size_t index) const;
bool empty() const;
void scale_pressure(double bhp);
const std::vector<int>& segment_number() const;
std::vector<double> rates;
std::vector<double> pressure;
std::vector<double> pressure_drop_friction;
std::vector<double> pressure_drop_hydrostatic;
std::vector<double> pressure_drop_accel;
private:
std::vector<int> m_segment_number;
};
}