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);
}
auto top_segment_index = well_state.topSegmentIndex(index_of_well_);
well_state.segPressDrop()[top_segment_index + seg] = well_state.segPressDropHydroStatic()[top_segment_index + seg] +
well_state.segPressDropFriction()[top_segment_index + seg] +
well_state.segPressDropAcceleration()[top_segment_index + seg];
auto seg_press_drop = well_state.segPressDrop(index_of_well_);
seg_press_drop[seg] = well_state.segPressDropHydroStatic()[seg] +
well_state.segPressDropFriction()[seg] +
well_state.segPressDropAcceleration()[seg];
}
}

View File

@ -1157,7 +1157,7 @@ WellState::reportSegmentResults(const PhaseUsage& pu,
using Value = data::SegmentPressures::Value;
auto& segpress = seg_res.pressures;
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::PDropFriction] = this->segPressDropFriction()[seg_dof];
segpress[Value::PDropAccel] = this->segPressDropAcceleration()[seg_dof];

View File

@ -217,14 +217,16 @@ public:
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()