Init GuideRateModel from restart file
This commit is contained in:
parent
5a91c73b8e
commit
f6077809c7
@ -54,6 +54,16 @@ public:
|
|||||||
bool use_free_gas_arg);
|
bool use_free_gas_arg);
|
||||||
GuideRateModel() = default;
|
GuideRateModel() = default;
|
||||||
|
|
||||||
|
static bool rst_valid(double time_interval,
|
||||||
|
double A,
|
||||||
|
double B,
|
||||||
|
double C,
|
||||||
|
double D,
|
||||||
|
double E,
|
||||||
|
double F,
|
||||||
|
double damping_factor);
|
||||||
|
|
||||||
|
|
||||||
static GuideRateModel serializeObject();
|
static GuideRateModel serializeObject();
|
||||||
|
|
||||||
bool updateLINCOM(const UDAValue& alpha, const UDAValue& beta, const UDAValue& gamma);
|
bool updateLINCOM(const UDAValue& alpha, const UDAValue& beta, const UDAValue& gamma);
|
||||||
|
@ -90,6 +90,29 @@ GuideRateModel GuideRateModel::serializeObject()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GuideRateModel::rst_valid(double time_interval,
|
||||||
|
double A,
|
||||||
|
double B,
|
||||||
|
double C,
|
||||||
|
double D,
|
||||||
|
double E,
|
||||||
|
double F,
|
||||||
|
double damping_factor) {
|
||||||
|
if (time_interval == 0 &&
|
||||||
|
A == 0 &&
|
||||||
|
B == 0 &&
|
||||||
|
C == 0 &&
|
||||||
|
D == 0 &&
|
||||||
|
E == 0 &&
|
||||||
|
F == 0 &&
|
||||||
|
damping_factor == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
double GuideRateModel::pot(double oil_pot, double gas_pot, double wat_pot) const {
|
double GuideRateModel::pot(double oil_pot, double gas_pot, double wat_pot) const {
|
||||||
return pot(this->target(), oil_pot, gas_pot, wat_pot);
|
return pot(this->target(), oil_pot, gas_pot, wat_pot);
|
||||||
}
|
}
|
||||||
|
@ -1696,6 +1696,35 @@ namespace {
|
|||||||
|
|
||||||
m_tuning.update(report_step, rst_state.tuning);
|
m_tuning.update(report_step, rst_state.tuning);
|
||||||
m_events.addEvent( ScheduleEvents::TUNING_CHANGE , report_step);
|
m_events.addEvent( ScheduleEvents::TUNING_CHANGE , report_step);
|
||||||
|
|
||||||
|
{
|
||||||
|
const auto& header = rst_state.header;
|
||||||
|
bool time_interval = 0;
|
||||||
|
GuideRateModel::Target target = GuideRateModel::Target::OIL;
|
||||||
|
bool allow_increase = true;
|
||||||
|
bool use_free_gas = false;
|
||||||
|
if (GuideRateModel::rst_valid(time_interval,
|
||||||
|
header.guide_rate_a,
|
||||||
|
header.guide_rate_b,
|
||||||
|
header.guide_rate_c,
|
||||||
|
header.guide_rate_d,
|
||||||
|
header.guide_rate_e,
|
||||||
|
header.guide_rate_f,
|
||||||
|
header.guide_rate_damping)) {
|
||||||
|
auto guide_rate_model = GuideRateModel(time_interval,
|
||||||
|
target,
|
||||||
|
header.guide_rate_a,
|
||||||
|
header.guide_rate_b,
|
||||||
|
header.guide_rate_c,
|
||||||
|
header.guide_rate_d,
|
||||||
|
header.guide_rate_e,
|
||||||
|
header.guide_rate_f,
|
||||||
|
allow_increase,
|
||||||
|
header.guide_rate_damping,
|
||||||
|
use_free_gas);
|
||||||
|
this->updateGuideRateModel(guide_rate_model, report_step);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<const Python> Schedule::python() const
|
std::shared_ptr<const Python> Schedule::python() const
|
||||||
|
Loading…
Reference in New Issue
Block a user