Init GuideRateModel from restart file

This commit is contained in:
Joakim Hove 2020-10-20 08:38:13 +02:00
parent 5a91c73b8e
commit f6077809c7
3 changed files with 62 additions and 0 deletions

View File

@ -54,6 +54,16 @@ public:
bool use_free_gas_arg);
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();
bool updateLINCOM(const UDAValue& alpha, const UDAValue& beta, const UDAValue& gamma);

View File

@ -90,6 +90,29 @@ GuideRateModel GuideRateModel::serializeObject()
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 {
return pot(this->target(), oil_pot, gas_pot, wat_pot);
}

View File

@ -1696,6 +1696,35 @@ namespace {
m_tuning.update(report_step, rst_state.tuning);
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