Add start_time argument to SummaryState
This commit is contained in:
parent
ae75aa3255
commit
ff69737b99
@ -41,7 +41,7 @@ void msim::run(Schedule& schedule, EclipseIO& io, bool report_only) {
|
||||
const double week = 7 * 86400;
|
||||
data::Solution sol;
|
||||
data::Wells well_data;
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::from_time_t(schedule.getStartTime()));
|
||||
|
||||
io.writeInitial();
|
||||
for (size_t report_step = 1; report_step < schedule.size(); report_step++) {
|
||||
|
@ -21,6 +21,7 @@
|
||||
#define SUMMARY_STATE_H
|
||||
|
||||
#include <string>
|
||||
#include <chrono>
|
||||
#include <vector>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
@ -66,6 +67,7 @@ namespace Opm{
|
||||
class SummaryState {
|
||||
public:
|
||||
typedef std::unordered_map<std::string, double>::const_iterator const_iterator;
|
||||
explicit SummaryState(std::chrono::system_clock::time_point sim_start_arg);
|
||||
|
||||
/*
|
||||
The set() function has to be retained temporarily to support updating of
|
||||
@ -99,6 +101,7 @@ public:
|
||||
std::size_t num_wells() const;
|
||||
std::size_t size() const;
|
||||
private:
|
||||
std::chrono::system_clock::time_point sim_start;
|
||||
double elapsed = 0;
|
||||
std::unordered_map<std::string,double> values;
|
||||
|
||||
|
@ -154,7 +154,6 @@ namespace {
|
||||
|
||||
int wellVFPTab(const Opm::Well2& well, const Opm::SummaryState& st)
|
||||
{
|
||||
Opm::SummaryState summaryState;
|
||||
if (well.isInjector()) {
|
||||
return well.injectionControls(st).vfp_table_number;
|
||||
}
|
||||
|
@ -1269,7 +1269,7 @@ Summary::Summary( const EclipseState& st,
|
||||
* entry.
|
||||
*/
|
||||
std::set< std::string > unsupported_keywords;
|
||||
|
||||
SummaryState summary_state(std::chrono::system_clock::from_time_t(schedule.getStartTime()));
|
||||
for( const auto& node : sum ) {
|
||||
ecl_smspec_type * smspec = ecl_sum_get_smspec(this->ecl_sum.get());
|
||||
std::string keyword = node.keyword();
|
||||
@ -1318,13 +1318,13 @@ Summary::Summary( const EclipseState& st,
|
||||
const auto handle = funs_pair->second;
|
||||
const std::vector< Well2 > dummy_wells;
|
||||
|
||||
const fn_args no_args { dummy_wells, // Wells from Schedule object
|
||||
0, // Duration of time step
|
||||
0, // Simulation step
|
||||
const fn_args no_args { dummy_wells, // Wells from Schedule object
|
||||
0, // Duration of time step
|
||||
0, // Simulation step
|
||||
node.num(),
|
||||
{}, // SummaryState
|
||||
{}, // Well results - data::Wells
|
||||
{}, // Region <-> cell mappings.
|
||||
summary_state, // SummaryState
|
||||
{}, // Well results - data::Wells
|
||||
{}, // Region <-> cell mappings.
|
||||
this->grid,
|
||||
{}};
|
||||
|
||||
|
@ -51,6 +51,13 @@ namespace {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SummaryState::SummaryState(std::chrono::system_clock::time_point sim_start_arg):
|
||||
sim_start(sim_start_arg)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void SummaryState::update_elapsed(double delta) {
|
||||
this->elapsed += delta;
|
||||
}
|
||||
|
@ -524,7 +524,7 @@ BOOST_AUTO_TEST_CASE(TestMatchingWells2) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(TestMatchingWells_AND) {
|
||||
Action::AST ast({"WOPR", "*", ">", "1.0", "AND", "WWCT", "*", "<", "0.50"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
st.update_well_var("OPX", "WOPR", 0);
|
||||
st.update_well_var("OPY", "WOPR", 0.50);
|
||||
@ -546,7 +546,7 @@ BOOST_AUTO_TEST_CASE(TestMatchingWells_AND) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(TestMatchingWells_OR) {
|
||||
Action::AST ast({"WOPR", "*", ">", "1.0", "OR", "WWCT", "*", "<", "0.50"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
st.update_well_var("OPX", "WOPR", 0);
|
||||
st.update_well_var("OPY", "WOPR", 0.50);
|
||||
@ -571,7 +571,7 @@ BOOST_AUTO_TEST_CASE(TestMatchingWells_OR) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(TestFieldAND) {
|
||||
Action::AST ast({"FMWPR", ">=", "4", "AND", "WUPR3", "OP*", "=", "1"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
Action::Context context(st);
|
||||
|
||||
st.update_well_var("OP1", "WUPR3", 3);
|
||||
|
@ -75,7 +75,7 @@ BOOST_AUTO_TEST_CASE(CreateGroup_SetInjectorProducer_CorrectStatusSet) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(ControlModeOK) {
|
||||
Opm::Group2 group("G1" , 1, 0, 0, UnitSystem::newMETRIC());
|
||||
Opm::SummaryState st;
|
||||
Opm::SummaryState st(std::chrono::system_clock::now());
|
||||
const auto& inj = group.injectionControls(st);
|
||||
BOOST_CHECK( Opm::Group2::InjectionCMode::NONE == inj.cmode);
|
||||
}
|
||||
@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(ControlModeOK) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GroupChangePhaseSameTimeThrows) {
|
||||
Opm::Group2 group("G1" , 1, 0, 0, UnitSystem::newMETRIC());
|
||||
Opm::SummaryState st;
|
||||
Opm::SummaryState st(std::chrono::system_clock::now());
|
||||
const auto& inj = group.injectionControls(st);
|
||||
BOOST_CHECK_EQUAL( Opm::Phase::WATER , inj.phase); // Default phase - assumed WATER
|
||||
}
|
||||
@ -285,7 +285,7 @@ BOOST_AUTO_TEST_CASE(createDeckWithGCONPROD) {
|
||||
Eclipse3DProperties eclipseProperties ( deck , table, grid);
|
||||
Runspec runspec (deck );
|
||||
Opm::Schedule schedule(deck, grid, eclipseProperties, runspec);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
const auto& group1 = schedule.getGroup2("G1", 0);
|
||||
const auto& group2 = schedule.getGroup2("G2", 0);
|
||||
|
@ -1193,7 +1193,7 @@ BOOST_AUTO_TEST_CASE(createDeckModifyMultipleGCONPROD) {
|
||||
Eclipse3DProperties eclipseProperties ( deck , table, grid);
|
||||
Runspec runspec (deck);
|
||||
Opm::Schedule schedule(deck, grid, eclipseProperties, runspec);
|
||||
Opm::SummaryState st;
|
||||
Opm::SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
Opm::UnitSystem unitSystem = deck.getActiveUnitSystem();
|
||||
double siFactorL = unitSystem.parse("LiquidSurfaceVolume/Time").getSIScaling();
|
||||
|
@ -54,7 +54,7 @@ BOOST_AUTO_TEST_CASE(MIX_SCALAR) {
|
||||
UDQFunctionTable udqft;
|
||||
UDQParams udqp;
|
||||
UDQDefine def_add(udqp, "WU", {"WOPR", "+", "1"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("P1", "WOPR", 1);
|
||||
@ -77,7 +77,7 @@ BOOST_AUTO_TEST_CASE(UDQFieldSetTest) {
|
||||
UDQFunctionTable udqft(udqp);
|
||||
UDQDefine def_fxxx(udqp, "FU_SCALAR", {"123"});
|
||||
UDQDefine def_fopr(udqp, "FUOPR", {"SUM", "(", "WOPR", ")"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("P1", "WOPR", 1.0);
|
||||
@ -149,7 +149,7 @@ BOOST_AUTO_TEST_CASE(UDQ_GROUP_TEST) {
|
||||
UDQParams udqp;
|
||||
UDQFunctionTable udqft(udqp);
|
||||
UDQDefine def_fopr(udqp, "FUOPR", {"SUM", "(", "GOPR", ")"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_group_var("G1", "GOPR", 1.0);
|
||||
@ -170,7 +170,7 @@ BOOST_AUTO_TEST_CASE(UDQ_DEFINETEST) {
|
||||
UDQFunctionTable udqft(udqp);
|
||||
{
|
||||
UDQDefine def(udqp, "WUBHP", {"WBHP"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("W1", "WBHP", 11);
|
||||
@ -184,7 +184,7 @@ BOOST_AUTO_TEST_CASE(UDQ_DEFINETEST) {
|
||||
}
|
||||
{
|
||||
UDQDefine def(udqp, "WUBHP", {"WBHP" , "'P*'"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
|
||||
@ -201,7 +201,7 @@ BOOST_AUTO_TEST_CASE(UDQ_DEFINETEST) {
|
||||
}
|
||||
{
|
||||
UDQDefine def(udqp, "WUBHP", {"NINT" , "(", "WBHP", ")"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
st.update_well_var("P1", "WBHP", 4);
|
||||
st.update_well_var("P2", "WBHP", 3);
|
||||
@ -437,7 +437,7 @@ ASSIGN WU2 8.0 /
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(UDQ_CONTEXT) {
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQFunctionTable func_table;
|
||||
UDQParams udqp;
|
||||
UDQContext ctx(func_table, st);
|
||||
@ -846,7 +846,7 @@ BOOST_AUTO_TEST_CASE(UDQ_POW_TEST) {
|
||||
UDQParams udqp;
|
||||
UDQDefine def_pow1(udqp, "WU", {"WOPR", "+", "WWPR", "*", "WGOR", "^", "WWIR"});
|
||||
UDQDefine def_pow2(udqp, "WU", {"(", "WOPR", "+", "WWPR", ")", "^", "(", "WOPR", "+" , "WGOR", "*", "WWIR", "-", "WOPT", ")"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("P1", "WOPR", 1);
|
||||
@ -865,7 +865,7 @@ BOOST_AUTO_TEST_CASE(UDQ_CMP_TEST) {
|
||||
UDQFunctionTable udqft;
|
||||
UDQParams udqp;
|
||||
UDQDefine def_cmp(udqp, "WU", {"WOPR", ">", "WWPR", "+", "WGOR", "*", "WWIR"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("P1", "WOPR", 0);
|
||||
@ -892,7 +892,7 @@ BOOST_AUTO_TEST_CASE(UDQ_CMP_TEST) {
|
||||
BOOST_AUTO_TEST_CASE(UDQ_SCALAR_SET) {
|
||||
UDQParams udqp;
|
||||
UDQFunctionTable udqft;
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("P1", "WOPR", 1);
|
||||
@ -963,7 +963,7 @@ BOOST_AUTO_TEST_CASE(UDQ_BASIC_MATH_TEST) {
|
||||
UDQDefine def_div(udqp, "WU2OPR", {"WOPR", "/", "WOPR"});
|
||||
UDQDefine def_muladd(udqp , "WUX", {"WOPR", "+", "WOPR", "*", "WOPR"});
|
||||
UDQDefine def_wuwct(udqp , "WUWCT", {"WWPR", "/", "(", "WOPR", "+", "WWPR", ")"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("P1", "WOPR", 1);
|
||||
@ -1023,7 +1023,7 @@ BOOST_AUTO_TEST_CASE(DECK_TEST) {
|
||||
UDQParams udqp;
|
||||
UDQFunctionTable udqft(udqp);
|
||||
UDQDefine def(udqp, "WUOPRL", {"(", "WOPR", "OP1", "-", "150", ")", "*", "0.90"});
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQContext context(udqft, st);
|
||||
|
||||
st.update_well_var("OP1", "WOPR", 300);
|
||||
@ -1055,7 +1055,7 @@ BOOST_AUTO_TEST_CASE(UDQ_PARSE_ERROR) {
|
||||
parseContext.update(ParseContext::UDQ_PARSE_ERROR, InputError::IGNORE);
|
||||
{
|
||||
UDQDefine def1(udqp, "WUBHP", tokens, parseContext, errors);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQFunctionTable udqft(udqp);
|
||||
UDQContext context(udqft, st);
|
||||
st.update_well_var("P1", "WBHP", 1);
|
||||
@ -1079,7 +1079,7 @@ BOOST_AUTO_TEST_CASE(UDQ_TYPE_ERROR) {
|
||||
UDQDefine def1(udqp, "FUBHP", tokens1, parseContext, errors);
|
||||
UDQDefine def2(udqp, "WUBHP", tokens2, parseContext, errors);
|
||||
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
UDQFunctionTable udqft(udqp);
|
||||
UDQContext context(udqft, st);
|
||||
st.update_well_var("P1", "WBHP", 1);
|
||||
|
@ -759,7 +759,7 @@ BOOST_AUTO_TEST_CASE(CMODE_DEFAULT) {
|
||||
BOOST_AUTO_TEST_CASE(WELL_CONTROLS) {
|
||||
Opm::Well2 well("WELL", "GROUP", 0, 0, 0, 0, 1000, Opm::Phase::OIL, Opm::Well2::ProducerCMode::CMODE_UNDEFINED, Opm::Connection::Order::DEPTH, UnitSystem::newMETRIC(), 0);
|
||||
Opm::Well2::WellProductionProperties prod("OP1");
|
||||
Opm::SummaryState st;
|
||||
Opm::SummaryState st(std::chrono::system_clock::now());
|
||||
well.productionControls(st);
|
||||
|
||||
// Use a scalar FIELD variable - that should work; although it is a bit weird.
|
||||
|
@ -1396,7 +1396,7 @@ BOOST_AUTO_TEST_CASE( WCONINJE ) {
|
||||
Eclipse3DProperties eclipseProperties( deck , table, grid );
|
||||
Runspec runspec (deck);
|
||||
Schedule sched( deck, grid, eclipseProperties, runspec);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
BOOST_CHECK_EQUAL(5U, sched.numWells());
|
||||
BOOST_CHECK(sched.hasWell("PROD1"));
|
||||
|
@ -205,7 +205,7 @@ BOOST_AUTO_TEST_CASE(WellTesting) {
|
||||
|
||||
BOOST_CHECK( sched.getWell2("W_1", 9).isInjector());
|
||||
{
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
const auto controls = sched.getWell2("W_1", 9).injectionControls(st);
|
||||
BOOST_CHECK_CLOSE(20000/Metric::Time , controls.surface_rate , 0.001);
|
||||
BOOST_CHECK_CLOSE(200000/Metric::Time , controls.reservoir_rate, 0.001);
|
||||
@ -224,7 +224,7 @@ BOOST_AUTO_TEST_CASE(WellTesting) {
|
||||
BOOST_CHECK( Well2::Status::SHUT == sched.getWell2("W_1", 13).getStatus( ));
|
||||
BOOST_CHECK( Well2::Status::OPEN == sched.getWell2("W_1", 14).getStatus( ));
|
||||
{
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
const auto controls = sched.getWell2("W_1", 12).injectionControls(st);
|
||||
BOOST_CHECK( controls.hasControl(Well2::InjectorCMode::RATE ));
|
||||
BOOST_CHECK( !controls.hasControl(Well2::InjectorCMode::RESV));
|
||||
@ -333,7 +333,7 @@ BOOST_AUTO_TEST_CASE( WellTestGroups ) {
|
||||
Eclipse3DProperties eclipseProperties ( deck , table, grid);
|
||||
Runspec runspec (deck);
|
||||
Schedule sched(deck, grid , eclipseProperties, runspec);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
BOOST_CHECK_EQUAL( 3U , sched.numGroups() );
|
||||
BOOST_CHECK( sched.hasGroup( "INJ" ));
|
||||
|
@ -430,7 +430,7 @@ END
|
||||
|
||||
Opm::SummaryState sim_state()
|
||||
{
|
||||
auto state = Opm::SummaryState{};
|
||||
auto state = Opm::SummaryState{std::chrono::system_clock::now()};
|
||||
|
||||
state.update("GOPR:GRP1", 235.);
|
||||
state.update("GGPR:GRP1", 100237.);
|
||||
|
@ -496,7 +496,7 @@ END
|
||||
|
||||
Opm::SummaryState sim_state()
|
||||
{
|
||||
auto state = Opm::SummaryState{};
|
||||
auto state = Opm::SummaryState{std::chrono::system_clock::now()};
|
||||
|
||||
state.update("SPR:PROD:1", 235.);
|
||||
state.update("SPR:PROD:2", 237.);
|
||||
|
@ -216,7 +216,7 @@ TSTEP -- 8
|
||||
|
||||
Opm::SummaryState sim_state()
|
||||
{
|
||||
auto state = Opm::SummaryState{};
|
||||
auto state = Opm::SummaryState{std::chrono::system_clock::now()};
|
||||
|
||||
state.update("WOPR:OP_1" , 1.0);
|
||||
state.update("WWPR:OP_1" , 2.0);
|
||||
|
@ -292,7 +292,7 @@ BOOST_AUTO_TEST_CASE(EclipseIOIntegration) {
|
||||
auto& eclGrid = es.getInputGrid();
|
||||
Schedule schedule(deck, eclGrid, es.get3DProperties(), es.runspec());
|
||||
SummaryConfig summary_config( deck, schedule, es.getTableManager( ));
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
es.getIOConfig().setBaseName( "FOO" );
|
||||
|
||||
EclipseIO eclWriter( es, eclGrid , schedule, summary_config);
|
||||
|
@ -271,7 +271,7 @@ BOOST_AUTO_TEST_CASE(test_RFT)
|
||||
const auto start_time = schedule.posixStartTime();
|
||||
const auto step_time = timeStamp(::Opm::EclIO::ERft::RftDate{ 2008, 10, 10 });
|
||||
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
data::Rates r1, r2;
|
||||
r1.set( data::Rates::opt::wat, 4.11 );
|
||||
@ -385,7 +385,7 @@ BOOST_AUTO_TEST_CASE(test_RFT2)
|
||||
|
||||
Schedule schedule(deck, eclipseState);
|
||||
SummaryConfig summary_config( deck, schedule, eclipseState.getTableManager( ));
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
const auto start_time = schedule.posixStartTime();
|
||||
const auto& time_map = schedule.getTimeMap( );
|
||||
|
@ -349,7 +349,7 @@ data::Solution mkSolution( int numCells ) {
|
||||
|
||||
Opm::SummaryState sim_state()
|
||||
{
|
||||
auto state = Opm::SummaryState{};
|
||||
auto state = Opm::SummaryState{std::chrono::system_clock::now()};
|
||||
|
||||
state.update("WOPR:OP_1" , 1.0);
|
||||
state.update("WWPR:OP_1" , 2.0);
|
||||
@ -546,7 +546,7 @@ BOOST_AUTO_TEST_CASE(EclipseReadWriteWellStateData) {
|
||||
|
||||
Setup setup("FIRST_SIM.DATA");
|
||||
EclipseIO eclWriter( setup.es, setup.grid, setup.schedule, setup.summary_config);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
auto state1 = first_sim( setup.es , eclWriter , st, false );
|
||||
auto state2 = second_sim( eclWriter , st , keys );
|
||||
compare(state1, state2 , keys);
|
||||
@ -680,7 +680,7 @@ BOOST_AUTO_TEST_CASE(EclipseReadWriteWellStateData_double) {
|
||||
test_work_area_copy_file( test_area, "FIRST_SIM.DATA");
|
||||
Setup setup("FIRST_SIM.DATA");
|
||||
EclipseIO eclWriter( setup.es, setup.grid, setup.schedule, setup.summary_config);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
auto state1 = first_sim( setup.es , eclWriter , st, true);
|
||||
auto state2 = second_sim( eclWriter ,st, solution_keys );
|
||||
@ -698,7 +698,7 @@ BOOST_AUTO_TEST_CASE(WriteWrongSOlutionSize) {
|
||||
auto num_cells = setup.grid.getNumActive( ) + 1;
|
||||
auto cells = mkSolution( num_cells );
|
||||
auto wells = mkWells();
|
||||
Opm::SummaryState sumState;
|
||||
Opm::SummaryState sumState(std::chrono::system_clock::now());
|
||||
|
||||
const auto seqnum = 1;
|
||||
auto rstFile = OS::Restart {
|
||||
@ -751,7 +751,7 @@ BOOST_AUTO_TEST_CASE(ExtraData_content) {
|
||||
const auto& units = setup.es.getUnits();
|
||||
{
|
||||
RestartValue restart_value(cells, wells);
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
const auto sumState = sim_state();
|
||||
|
||||
restart_value.addExtra("EXTRA", UnitSystem::measure::pressure, {10,1,2,3});
|
||||
@ -947,7 +947,7 @@ BOOST_AUTO_TEST_CASE(Restore_Cumulatives)
|
||||
setup.es, setup.grid, setup.schedule, sumState);
|
||||
}
|
||||
|
||||
SummaryState rstSumState;
|
||||
SummaryState rstSumState(std::chrono::system_clock::now());
|
||||
RestartIO::load(OS::outputFileName(rset, "UNRST"), seqnum, rstSumState,
|
||||
/* solution_keys = */ {
|
||||
RestartKey("SWAT", UnitSystem::measure::identity),
|
||||
|
@ -311,7 +311,7 @@ BOOST_AUTO_TEST_CASE(well_keywords) {
|
||||
util_make_path( "PATH" );
|
||||
cfg.name = "PATH/CASE";
|
||||
|
||||
SummaryState st;
|
||||
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, {});
|
||||
@ -528,7 +528,7 @@ BOOST_AUTO_TEST_CASE(udq_keywords) {
|
||||
setup cfg( "test_summary_udq" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -550,7 +550,7 @@ BOOST_AUTO_TEST_CASE(group_keywords) {
|
||||
setup cfg( "test_summary_group" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
|
||||
@ -694,7 +694,7 @@ BOOST_AUTO_TEST_CASE(group_group) {
|
||||
setup cfg( "test_summary_group_group" , "group_group.DATA");
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -750,7 +750,7 @@ BOOST_AUTO_TEST_CASE(completion_kewords) {
|
||||
setup cfg( "test_summary_completion" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -812,7 +812,7 @@ BOOST_AUTO_TEST_CASE(field_keywords) {
|
||||
setup cfg( "test_summary_field" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -941,7 +941,7 @@ BOOST_AUTO_TEST_CASE(report_steps_time) {
|
||||
setup cfg( "test_summary_report_steps_time" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 1, 2 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 1);
|
||||
writer.eval( st, 1, 5 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -967,7 +967,7 @@ BOOST_AUTO_TEST_CASE(skip_unknown_var) {
|
||||
setup cfg( "test_summary_skip_unknown_var" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 1, 2 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 1);
|
||||
writer.eval( st, 1, 5 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -1078,7 +1078,7 @@ BOOST_AUTO_TEST_CASE(region_vars) {
|
||||
|
||||
{
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 1, 2 * day, cfg.es, cfg.schedule, cfg.wells, {}, region_values);
|
||||
writer.add_timestep( st, 1);
|
||||
writer.eval( st, 1, 5 * day, cfg.es, cfg.schedule, cfg.wells, {}, region_values);
|
||||
@ -1129,7 +1129,7 @@ BOOST_AUTO_TEST_CASE(region_production) {
|
||||
|
||||
{
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -1161,7 +1161,7 @@ BOOST_AUTO_TEST_CASE(region_injection) {
|
||||
setup cfg( "region_injection" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -1217,7 +1217,7 @@ BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) {
|
||||
block_values[std::make_pair("BOVIS", 1)] = 33.0;
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {},{}, block_values);
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {},{}, block_values);
|
||||
@ -1314,7 +1314,7 @@ BOOST_AUTO_TEST_CASE(MISC) {
|
||||
setup cfg( "test_misc");
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , {});
|
||||
@ -1334,7 +1334,7 @@ BOOST_AUTO_TEST_CASE(EXTRA) {
|
||||
|
||||
{
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule , cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells , { {"TCPU" , 0 }});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells , { {"TCPU" , 1 }});
|
||||
@ -1432,7 +1432,7 @@ BOOST_AUTO_TEST_CASE(efficiency_factor) {
|
||||
setup cfg( "test_efficiency_factor", "SUMMARY_EFF_FAC.DATA" );
|
||||
|
||||
out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name );
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval( st, 0, 0 * day, cfg.es, cfg.schedule, cfg.wells, {});
|
||||
writer.add_timestep( st, 0);
|
||||
writer.eval( st, 1, 1 * day, cfg.es, cfg.schedule, cfg.wells, {});
|
||||
@ -1504,7 +1504,7 @@ BOOST_AUTO_TEST_CASE(efficiency_factor) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Test_SummaryState) {
|
||||
Opm::SummaryState st;
|
||||
Opm::SummaryState st(std::chrono::system_clock::now());
|
||||
st.update("WWCT:OP_2", 100);
|
||||
BOOST_CHECK_CLOSE(st.get("WWCT:OP_2"), 100, 1e-5);
|
||||
BOOST_CHECK_THROW(st.get("NO_SUCH_KEY"), std::out_of_range);
|
||||
@ -1569,7 +1569,7 @@ namespace {
|
||||
config.schedule, "Ignore.This"
|
||||
};
|
||||
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
smry.eval(st, 0, 0*day, config.es, config.schedule, config.wells, {});
|
||||
smry.add_timestep(st, 0);
|
||||
smry.eval(st, 1, 1*day, config.es, config.schedule, config.wells, {});
|
||||
@ -2565,7 +2565,7 @@ BOOST_AUTO_TEST_CASE(Write_Read)
|
||||
config.es, config.config, config.grid, config.schedule
|
||||
};
|
||||
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
writer.eval(st, 0, 0*day, config.es, config.schedule, config.wells, {});
|
||||
writer.add_timestep(st, 0);
|
||||
writer.eval(st, 1, 1*day, config.es, config.schedule, config.wells, {});
|
||||
@ -3061,7 +3061,7 @@ BOOST_AUTO_TEST_SUITE(Reset_Cumulative_Vectors)
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(SummaryState_TOTAL) {
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
st.update("FOPR", 100);
|
||||
BOOST_CHECK_EQUAL(st.get("FOPR"), 100);
|
||||
st.update("FOPR", 100);
|
||||
@ -3162,7 +3162,7 @@ bool equal(const SummaryState& st1 , const SummaryState& st2) {
|
||||
|
||||
|
||||
void test_serialize(const SummaryState& st) {
|
||||
SummaryState st2;
|
||||
SummaryState st2(std::chrono::system_clock::now());
|
||||
auto serial = st.serialize();
|
||||
st2.deserialize(serial);
|
||||
BOOST_CHECK( equal(st, st2));
|
||||
@ -3175,7 +3175,7 @@ void test_serialize(const SummaryState& st) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(serialize_sumary_state) {
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
test_serialize(st);
|
||||
|
||||
st.update_elapsed(1000);
|
||||
|
@ -151,7 +151,7 @@ BOOST_AUTO_TEST_CASE(EclipseWriteRestartWellInfo) {
|
||||
const auto num_cells = grid.getCartesianSize();
|
||||
EclipseIO eclipseWriter( es, grid , schedule, summary_config);
|
||||
int countTimeStep = schedule.getTimeMap().numTimesteps();
|
||||
SummaryState st;
|
||||
SummaryState st(std::chrono::system_clock::now());
|
||||
|
||||
data::Solution solution;
|
||||
solution.insert( "PRESSURE",UnitSystem::measure::pressure , std::vector< double >( num_cells, 1 ) , data::TargetType::RESTART_SOLUTION);
|
||||
|
Loading…
Reference in New Issue
Block a user