Use well index for segment pressure drop

This commit is contained in:
Joakim Hove 2021-05-27 08:07:04 +02:00
parent 8332909498
commit 92e31b4ee3
3 changed files with 11 additions and 9 deletions

View File

@ -2704,10 +2704,10 @@ namespace Opm
assemblePressureEq(seg, unit_system, well_state, deferred_logger); assemblePressureEq(seg, unit_system, well_state, deferred_logger);
} }
auto top_segment_index = well_state.topSegmentIndex(index_of_well_); auto seg_press_drop = well_state.segPressDrop(index_of_well_);
well_state.segPressDrop()[top_segment_index + seg] = well_state.segPressDropHydroStatic()[top_segment_index + seg] + seg_press_drop[seg] = well_state.segPressDropHydroStatic()[seg] +
well_state.segPressDropFriction()[top_segment_index + seg] + well_state.segPressDropFriction()[seg] +
well_state.segPressDropAcceleration()[top_segment_index + seg]; well_state.segPressDropAcceleration()[seg];
} }
} }

View File

@ -1157,7 +1157,7 @@ WellState::reportSegmentResults(const PhaseUsage& pu,
using Value = data::SegmentPressures::Value; using Value = data::SegmentPressures::Value;
auto& segpress = seg_res.pressures; auto& segpress = seg_res.pressures;
segpress[Value::Pressure] = this->segPress(well_id)[seg_ix]; segpress[Value::Pressure] = this->segPress(well_id)[seg_ix];
segpress[Value::PDrop] = this->segPressDrop()[seg_dof]; segpress[Value::PDrop] = this->segPressDrop(well_id)[seg_ix];
segpress[Value::PDropHydrostatic] = this->segPressDropHydroStatic()[seg_dof]; segpress[Value::PDropHydrostatic] = this->segPressDropHydroStatic()[seg_dof];
segpress[Value::PDropFriction] = this->segPressDropFriction()[seg_dof]; segpress[Value::PDropFriction] = this->segPressDropFriction()[seg_dof];
segpress[Value::PDropAccel] = this->segPressDropAcceleration()[seg_dof]; segpress[Value::PDropAccel] = this->segPressDropAcceleration()[seg_dof];

View File

@ -217,14 +217,16 @@ public:
return &seg_press_[top_segment_index]; return &seg_press_[top_segment_index];
} }
std::vector<double>& segPressDrop() double * segPressDrop(std::size_t well_index)
{ {
return seg_pressdrop_; const int top_segment_index = this->top_segment_index_[well_index];
return &seg_pressdrop_[top_segment_index];
} }
const std::vector<double>& segPressDrop() const const double * segPressDrop(std::size_t well_index) const
{ {
return seg_pressdrop_; const int top_segment_index = this->top_segment_index_[well_index];
return &seg_pressdrop_[top_segment_index];
} }
std::vector<double>& segPressDropFriction() std::vector<double>& segPressDropFriction()