From 6921801eec7850e297e696b78981235950480de7 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Mon, 19 Nov 2018 09:43:50 +0100 Subject: [PATCH] Add method Schedule::evalActions() to evaluate ACTIONX --- opm/parser/eclipse/EclipseState/Schedule/Actions.hpp | 1 + opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp | 10 ++++++---- .../parser/eclipse/EclipseState/Schedule/Actions.cpp | 5 +++++ .../parser/eclipse/EclipseState/Schedule/Schedule.cpp | 10 +++++++++- tests/parser/ACTIONX.cpp | 3 ++- tests/parser/ScheduleTests.cpp | 4 +++- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/opm/parser/eclipse/EclipseState/Schedule/Actions.hpp b/opm/parser/eclipse/EclipseState/Schedule/Actions.hpp index 4b2ed4bc5..5c0b9a07b 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/Actions.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/Actions.hpp @@ -33,6 +33,7 @@ class Actions { public: Actions() = default; size_t size() const; + bool empty() const; void add(const ActionX& action); bool ready(std::time_t sim_time) const; ActionX& at(const std::string& name); diff --git a/opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp b/opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp index 904c09f2e..ce043cadd 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/Schedule.hpp @@ -45,17 +45,18 @@ namespace Opm { + class Actions; class Deck; class DeckKeyword; class DeckRecord; class EclipseGrid; class Eclipse3DProperties; - class SCHEDULESection; - class TimeMap; - class UnitSystem; class EclipseState; class Runspec; - class Actions; + class SCHEDULESection; + class SummaryState; + class TimeMap; + class UnitSystem; class Schedule { public: @@ -108,6 +109,7 @@ namespace Opm const WellTestConfig& wtestConfig(size_t timestep) const; const Actions& actionConfig() const; + void evalAction(const SummaryState& summary_state, size_t timeStep); const GroupTree& getGroupTree(size_t t) const; size_t numGroups() const; diff --git a/src/opm/parser/eclipse/EclipseState/Schedule/Actions.cpp b/src/opm/parser/eclipse/EclipseState/Schedule/Actions.cpp index 35a4f42ed..fa6759415 100644 --- a/src/opm/parser/eclipse/EclipseState/Schedule/Actions.cpp +++ b/src/opm/parser/eclipse/EclipseState/Schedule/Actions.cpp @@ -27,6 +27,11 @@ size_t Actions::size() const { } +bool Actions::empty() const { + return this->actions.empty(); +} + + void Actions::add(const ActionX& action) { auto iter = this->actions.find(action.name()); if (iter != this->actions.end()) diff --git a/src/opm/parser/eclipse/EclipseState/Schedule/Schedule.cpp b/src/opm/parser/eclipse/EclipseState/Schedule/Schedule.cpp index d289298fc..facbcc3cb 100644 --- a/src/opm/parser/eclipse/EclipseState/Schedule/Schedule.cpp +++ b/src/opm/parser/eclipse/EclipseState/Schedule/Schedule.cpp @@ -57,6 +57,7 @@ #include #include #include +#include #include #include @@ -1948,7 +1949,7 @@ namespace Opm { } - double Schedule::seconds(size_t timeStep) const { + double Schedule::seconds(size_t timeStep) const { return this->m_timeMap.seconds(timeStep); } @@ -1956,5 +1957,12 @@ namespace Opm { double Schedule::stepLength(size_t timeStep) const { return this->m_timeMap.getTimeStepLength(timeStep); } + + + void Schedule::evalAction(const SummaryState& st, size_t timeStep) { + if (this->actions.empty()) + return; + } + } diff --git a/tests/parser/ACTIONX.cpp b/tests/parser/ACTIONX.cpp index e16e63b32..ad3683db3 100644 --- a/tests/parser/ACTIONX.cpp +++ b/tests/parser/ACTIONX.cpp @@ -144,11 +144,12 @@ BOOST_AUTO_TEST_CASE(TestActions) { Opm::ActionContext context(st); Opm::Actions config; BOOST_CHECK_EQUAL(config.size(), 0); + BOOST_CHECK(config.empty()); Opm::ActionX action1("NAME", 10, 100, 0); config.add(action1); BOOST_CHECK_EQUAL(config.size(), 1); - + BOOST_CHECK(!config.empty()); double min_wait = 86400; size_t max_eval = 3; diff --git a/tests/parser/ScheduleTests.cpp b/tests/parser/ScheduleTests.cpp index 936c48368..a5500af61 100644 --- a/tests/parser/ScheduleTests.cpp +++ b/tests/parser/ScheduleTests.cpp @@ -34,6 +34,8 @@ #include #include #include +#include + #include #include #include @@ -2661,7 +2663,7 @@ VFPINJ \n \ Runspec runspec (deck); Schedule schedule(deck, grid1 , eclipseProperties, runspec , ParseContext() ); - + schedule.evalAction(SummaryState(), 5); BOOST_CHECK( schedule.getEvents().hasEvent(ScheduleEvents::VFPINJ_UPDATE, 0)); BOOST_CHECK( !schedule.getEvents().hasEvent(ScheduleEvents::VFPINJ_UPDATE, 1)); BOOST_CHECK( schedule.getEvents().hasEvent(ScheduleEvents::VFPINJ_UPDATE, 2));