mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
using addition to update segment pressure
when bhp is changed. It is much safer and more reasonable. using multiplication is more likely to result in dramatic values.
This commit is contained in:
parent
ae32b44124
commit
ccfd4152d3
@ -60,15 +60,16 @@ std::size_t SegmentState::size() const {
|
||||
}
|
||||
|
||||
|
||||
void SegmentState::scale_pressure(double bhp) {
|
||||
void SegmentState::scale_pressure(const double bhp) {
|
||||
if (this->empty())
|
||||
throw std::logic_error("Tried to pressure scale empty SegmentState");
|
||||
|
||||
auto scale_factor = bhp / this->pressure[0];
|
||||
const auto pressure_change = bhp - this->pressure[0];
|
||||
|
||||
std::transform(this->pressure.begin(),
|
||||
this->pressure.end(),
|
||||
this->pressure.begin(),
|
||||
[scale_factor] (const double& p) { return p*scale_factor;});
|
||||
[pressure_change] (const double& p) { return p + pressure_change;});
|
||||
}
|
||||
|
||||
const std::vector<int>& SegmentState::segment_number() const {
|
||||
|
Loading…
Reference in New Issue
Block a user