Merge pull request #2120 from joakim-hove/summary-store-ref

Store references to EclipseState and Schedule in Summary class
This commit is contained in:
Bård Skaflestad 2020-11-19 11:00:06 +01:00 committed by GitHub
commit 5338a1dd13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 105 additions and 113 deletions

View File

@ -115,8 +115,6 @@ void msim::run_step(const Schedule& schedule, Action::State& action_state, Summa
io.summary().eval(st,
report_step,
seconds_elapsed,
this->state,
schedule,
well_data,
group_nwrk_data,
{});

View File

@ -63,8 +63,6 @@ public:
void eval(SummaryState& summary_state,
const int report_step,
const double secs_elapsed,
const EclipseState& es,
const Schedule& schedule,
const data::WellRates& well_solution,
const data::GroupAndNetworkValues& group_and_nwrk_solution,
GlobalProcessParameters single_values,

View File

@ -2630,6 +2630,27 @@ makeResultSet(const Opm::IOConfig& iocfg, const std::string& basenm)
return { iocfg.getOutputDir(), base };
}
void validateElapsedTime(const double secs_elapsed,
const Opm::EclipseState& es,
const Opm::SummaryState& st)
{
if (! (secs_elapsed < st.get_elapsed()))
return;
const auto& usys = es.getUnits();
const auto elapsed = usys.from_si(measure::time, secs_elapsed);
const auto prev_el = usys.from_si(measure::time, st.get_elapsed());
const auto unt = '[' + std::string{ usys.name(measure::time) } + ']';
throw std::invalid_argument {
"Elapsed time ("
+ std::to_string(elapsed) + ' ' + unt
+ ") must not precede previous elapsed time ("
+ std::to_string(prev_el) + ' ' + unt
+ "). Incorrect restart time?"
};
}
} // Anonymous namespace
class Opm::out::Summary::SummaryImplementation
@ -2646,13 +2667,11 @@ public:
SummaryImplementation& operator=(const SummaryImplementation& rhs) = delete;
SummaryImplementation& operator=(SummaryImplementation&& rhs) = default;
void eval(const EclipseState& es,
const Schedule& sched,
const int sim_step,
const double duration,
void eval(const int sim_step,
const double secs_elapsed,
const data::WellRates& well_solution,
const data::GroupAndNetworkValues& grp_nwrk_solution,
const GlobalProcessParameters& single_values,
GlobalProcessParameters& single_values,
const RegionParameters& region_values,
const BlockValues& block_values,
const data::Aquifers& aquifer_values,
@ -2672,6 +2691,8 @@ private:
using EvalPtr = SummaryOutputParameters::EvalPtr;
std::reference_wrapper<const Opm::EclipseGrid> grid_;
std::reference_wrapper<const Opm::EclipseState> es_;
std::reference_wrapper<const Opm::Schedule> sched_;
Opm::out::RegionCache regCache_;
std::unique_ptr<SMSpecStreamDeferredCreation> deferredSMSpec_;
@ -2721,6 +2742,8 @@ SummaryImplementation(const EclipseState& es,
const Schedule& sched,
const std::string& basename)
: grid_ (std::cref(grid))
, es_ (std::cref(es))
, sched_ (std::cref(sched))
, regCache_ (sumcfg.fip_regions(), es.globalFieldProps(), grid, sched)
, deferredSMSpec_(makeDeferredSMSpecCreation(es, grid, sched))
, rset_ (makeResultSet(es.cfg().io(), basename))
@ -2752,20 +2775,24 @@ internal_store(const SummaryState& st, const int report_step)
void
Opm::out::Summary::SummaryImplementation::
eval(const EclipseState& es,
const Schedule& sched,
const int sim_step,
const double duration,
eval(const int sim_step,
const double secs_elapsed,
const data::WellRates& well_solution,
const data::GroupAndNetworkValues& grp_nwrk_solution,
const GlobalProcessParameters& single_values,
GlobalProcessParameters& single_values,
const RegionParameters& region_values,
const BlockValues& block_values,
const data::Aquifers& aquifer_values,
Opm::SummaryState& st) const
{
validateElapsedTime(secs_elapsed, this->es_, st);
const double duration = secs_elapsed - st.get_elapsed();
single_values["TIMESTEP"] = duration;
st.update("TIMESTEP", this->es_.get().getUnits().from_si(Opm::UnitSystem::measure::time, duration));
const Evaluator::InputData input {
es, sched, this->grid_, this->regCache_
this->es_, this->sched_, this->grid_, this->regCache_
};
const Evaluator::SimulatorResults simRes {
@ -2780,6 +2807,8 @@ eval(const EclipseState& es,
(void)_;
evalPtr->update(sim_step, duration, input, simRes, st);
}
st.update_elapsed(duration);
}
void Opm::out::Summary::SummaryImplementation::write()
@ -3130,30 +3159,7 @@ createSmryStreamIfNecessary(const int report_step)
}
}
namespace {
void validateElapsedTime(const double secs_elapsed,
const Opm::EclipseState& es,
const Opm::SummaryState& st)
{
if (! (secs_elapsed < st.get_elapsed()))
return;
const auto& usys = es.getUnits();
const auto elapsed = usys.from_si(measure::time, secs_elapsed);
const auto prev_el = usys.from_si(measure::time, st.get_elapsed());
const auto unt = '[' + std::string{ usys.name(measure::time) } + ']';
throw std::invalid_argument {
"Elapsed time ("
+ std::to_string(elapsed) + ' ' + unt
+ ") must not precede previous elapsed time ("
+ std::to_string(prev_el) + ' ' + unt
+ "). Incorrect restart time?"
};
}
} // Anonymous namespace
namespace Opm { namespace out {
@ -3168,8 +3174,6 @@ Summary::Summary(const EclipseState& es,
void Summary::eval(SummaryState& st,
const int report_step,
const double secs_elapsed,
const EclipseState& es,
const Schedule& schedule,
const data::WellRates& well_solution,
const data::GroupAndNetworkValues& grp_nwrk_solution,
GlobalProcessParameters single_values,
@ -3177,12 +3181,6 @@ void Summary::eval(SummaryState& st,
const BlockValues& block_values,
const Opm::data::Aquifers& aquifer_values) const
{
validateElapsedTime(secs_elapsed, es, st);
const double duration = secs_elapsed - st.get_elapsed();
single_values["TIMESTEP"] = duration;
st.update("TIMESTEP", es.getUnits().from_si(Opm::UnitSystem::measure::time, duration));
/* Report_step is the one-based sequence number of the containing report.
* Report_step = 0 for the initial condition, before simulation starts.
@ -3195,11 +3193,9 @@ void Summary::eval(SummaryState& st,
* wells, groups, connections &c in the Schedule object. */
const auto sim_step = std::max( 0, report_step - 1 );
this->pImpl_->eval(es, schedule, sim_step, duration,
this->pImpl_->eval(sim_step, secs_elapsed,
well_solution, grp_nwrk_solution, single_values,
region_values, block_values, aquifer_values, st);
st.update_elapsed(duration);
}
void Summary::add_timestep(const SummaryState& st, const int report_step)

View File

@ -467,13 +467,13 @@ BOOST_AUTO_TEST_CASE(well_keywords) {
SummaryState st(std::chrono::system_clock::now());
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
writer.eval(st, 0, 0*day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval(st, 0, 0*day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval(st, 1, 1*day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval(st, 1, 1*day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval(st, 2, 2*day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval(st, 2, 2*day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -692,11 +692,11 @@ BOOST_AUTO_TEST_CASE(udq_keywords) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -717,13 +717,13 @@ BOOST_AUTO_TEST_CASE(group_keywords) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -874,11 +874,11 @@ BOOST_AUTO_TEST_CASE(group_group) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -930,11 +930,11 @@ BOOST_AUTO_TEST_CASE(connection_kewords) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1004,13 +1004,13 @@ BOOST_AUTO_TEST_CASE(DATE) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.eval( st, 3, 18 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 3, 18 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 3);
writer.eval( st, 4, 22 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 4, 22 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 4);
writer.write();
@ -1041,11 +1041,11 @@ BOOST_AUTO_TEST_CASE(field_keywords) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1178,11 +1178,11 @@ BOOST_AUTO_TEST_CASE(report_steps_time) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 1, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 1, 5 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 5 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 10 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 10 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1205,11 +1205,11 @@ BOOST_AUTO_TEST_CASE(skip_unknown_var) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 1, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 1, 5 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 5 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 10 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 10 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1316,11 +1316,11 @@ BOOST_AUTO_TEST_CASE(region_vars) {
{
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 1, 2 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {}, region_values);
writer.eval( st, 1, 2 * day, cfg.wells, cfg.grp_nwrk, {}, region_values);
writer.add_timestep( st, 1);
writer.eval( st, 1, 5 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {}, region_values);
writer.eval( st, 1, 5 * day, cfg.wells, cfg.grp_nwrk, {}, region_values);
writer.add_timestep( st, 1);
writer.eval( st, 2, 10 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {}, region_values);
writer.eval( st, 2, 10 * day, cfg.wells, cfg.grp_nwrk, {}, region_values);
writer.add_timestep( st, 2);
writer.write();
}
@ -1367,11 +1367,11 @@ BOOST_AUTO_TEST_CASE(region_production) {
{
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
}
@ -1399,11 +1399,11 @@ BOOST_AUTO_TEST_CASE(region_injection) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1457,15 +1457,15 @@ BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.add_timestep( st, 2);
writer.eval( st, 3, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.eval( st, 3, 2 * day, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.add_timestep( st, 3);
writer.eval( st, 4, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.eval( st, 4, 2 * day, cfg.wells , cfg.grp_nwrk, {},{}, block_values);
writer.add_timestep( st, 4);
writer.write();
@ -1518,13 +1518,13 @@ BOOST_AUTO_TEST_CASE(NODE_VARIABLES) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1576,11 +1576,11 @@ BOOST_AUTO_TEST_CASE(MISC) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
@ -1596,19 +1596,19 @@ BOOST_AUTO_TEST_CASE(EXTRA) {
{
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, { {"TCPU" , 0 }});
writer.eval( st, 0, 0 * day, cfg.wells , cfg.grp_nwrk, { {"TCPU" , 0 }});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, { {"TCPU" , 1 }});
writer.eval( st, 1, 1 * day, cfg.wells , cfg.grp_nwrk, { {"TCPU" , 1 }});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, { {"TCPU" , 2}});
writer.eval( st, 2, 2 * day, cfg.wells , cfg.grp_nwrk, { {"TCPU" , 2}});
writer.add_timestep( st, 2);
/* Add a not-recognized key; that is OK */
BOOST_CHECK_NO_THROW( writer.eval( st, 3, 3 * day, cfg.es, cfg.schedule, cfg.wells , cfg.grp_nwrk, { {"MISSING" , 2 }}));
BOOST_CHECK_NO_THROW( writer.eval( st, 3, 3 * day, cfg.wells , cfg.grp_nwrk, { {"MISSING" , 2 }}));
BOOST_CHECK_NO_THROW( writer.add_timestep( st, 3));
/* Override a NOT MISC variable - ignored. */
writer.eval( st, 4, 4 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval( st, 4, 4 * day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 4);
writer.write();
}
@ -1727,11 +1727,11 @@ BOOST_AUTO_TEST_CASE(efficiency_factor) {
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
SummaryState st(std::chrono::system_clock::now());
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval( st, 0, 0 * day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval( st, 1, 1 * day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.eval( st, 2, 2 * day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval( st, 2, 2 * day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 2);
writer.write();
auto res = readsum( cfg.name );
@ -1968,11 +1968,11 @@ namespace {
};
SummaryState st(std::chrono::system_clock::now());
smry.eval(st, 0, 0*day, config.es, config.schedule, config.wells, config.grp_nwrk, {});
smry.eval(st, 0, 0*day, config.wells, config.grp_nwrk, {});
smry.add_timestep(st, 0);
smry.eval(st, 1, 1*day, config.es, config.schedule, config.wells, config.grp_nwrk, {});
smry.eval(st, 1, 1*day, config.wells, config.grp_nwrk, {});
smry.add_timestep(st, 1);
smry.eval(st, 2, 2*day, config.es, config.schedule, config.wells, config.grp_nwrk, {});
smry.eval(st, 2, 2*day, config.wells, config.grp_nwrk, {});
smry.add_timestep(st, 2);
return st;
@ -2968,11 +2968,11 @@ BOOST_AUTO_TEST_CASE(Write_Read)
};
SummaryState st(std::chrono::system_clock::now());
writer.eval(st, 0, 0*day, config.es, config.schedule, config.wells, config.grp_nwrk, {});
writer.eval(st, 0, 0*day, config.wells, config.grp_nwrk, {});
writer.add_timestep(st, 0);
writer.eval(st, 1, 1*day, config.es, config.schedule, config.wells, config.grp_nwrk, {});
writer.eval(st, 1, 1*day, config.wells, config.grp_nwrk, {});
writer.add_timestep(st, 1);
writer.eval(st, 2, 2*day, config.es, config.schedule, config.wells, config.grp_nwrk, {});
writer.eval(st, 2, 2*day, config.wells, config.grp_nwrk, {});
writer.add_timestep(st, 2);
writer.write();

View File

@ -258,10 +258,10 @@ BOOST_AUTO_TEST_CASE(group_keywords) {
SummaryState st(std::chrono::system_clock::now());
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
writer.eval(st, 0, 0*day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval(st, 0, 0*day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 0);
writer.eval(st, 1, 1*day, cfg.es, cfg.schedule, cfg.wells, cfg.grp_nwrk, {});
writer.eval(st, 1, 1*day, cfg.wells, cfg.grp_nwrk, {});
writer.add_timestep( st, 1);
writer.write();