23#include <opm/input/eclipse/Schedule/Action/ActionAST.hpp>
24#include <opm/input/eclipse/Schedule/Action/ActionResult.hpp>
25#include <opm/input/eclipse/Schedule/Action/Condition.hpp>
27#include <opm/input/eclipse/Deck/DeckKeyword.hpp>
32#include <unordered_set>
41namespace Opm::RestartIO {
45namespace Opm::Action {
49namespace Opm::Action {
167 const std::vector<std::string>& tokens);
187 bool ready(
const State& state, std::time_t sim_time)
const;
212 std::vector<std::string>
226 std::string
name()
const {
return this->m_name; }
229 std::size_t
max_run()
const {
return this->m_max_run; }
233 double min_wait()
const {
return this->m_min_wait; }
236 std::size_t
id()
const {
return this->m_id; }
249 std::time_t
start_time()
const {
return this->m_start_time; }
252 auto begin()
const {
return this->keywords.begin(); }
255 auto end()
const {
return this->keywords.end(); }
261 return this->m_conditions;
282 template<
class Serializer>
286 serializer(m_max_run);
287 serializer(m_min_wait);
288 serializer(m_start_time);
290 serializer(keywords);
291 serializer(condition);
292 serializer(m_conditions);
297 std::string m_name{};
300 std::size_t m_max_run = 0;
304 double m_min_wait = 0.0;
310 std::time_t m_start_time;
323 std::size_t m_id = 0;
326 std::vector<DeckKeyword> keywords{};
331 std::vector<Condition> m_conditions{};
350std::pair<ActionX, std::vector<std::pair<std::string, std::string>>>
351parseActionX(
const DeckKeyword& kw,
const Actdims& actimds, std::time_t start_time);
Definition ActionX.hpp:72
std::vector< std::string > keyword_strings() const
Textual representation of action block SCHEDULE keywords.
Definition ActionX.cpp:284
void required_summary(std::unordered_set< std::string > &required_summary) const
Export all summary vectors needed to evaluate the conditions of the current ActionX object.
Definition ActionX.cpp:274
static ActionX serializationTestObject()
Create a serialisation test object.
Definition ActionX.cpp:184
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition ActionX.hpp:283
Result eval(const Context &context) const
Evaluate the action's conditions at current dynamic state.
Definition ActionX.cpp:230
void update_id(std::size_t id)
Assign distinguishing numeric ID of this action object.
Definition ActionX.cpp:279
auto begin() const
Start of action block SCHEDULE keyword sequence.
Definition ActionX.hpp:252
bool operator==(const ActionX &data) const
Equality predicate.
Definition ActionX.cpp:315
std::size_t id() const
Retrieve distinguishing numeric ID of this action object.
Definition ActionX.hpp:236
void addKeyword(const DeckKeyword &kw)
Include SCHEDULE section keyword in block executed when action triggers.
Definition ActionX.cpp:207
std::vector< std::string > wellpi_wells(const WellMatcher &well_matcher, const Result::MatchingEntities &matches) const
Retrive list of well names used in action block WELPI keywords.
Definition ActionX.cpp:236
bool ready(const State &state, std::time_t sim_time) const
Query whether or not the current ActionX object is ready to run.
Definition ActionX.cpp:212
std::size_t max_run() const
Retrieve maximum number of times this action can run/trigger.
Definition ActionX.hpp:229
double min_wait() const
Retrieve minimum wait time, in seconds of simulated time, between action triggers.
Definition ActionX.hpp:233
std::string name() const
Retrieve name of action object.
Definition ActionX.hpp:226
const std::vector< Condition > & conditions() const
Intermediate representation of triggering conditions for restart file output purposes.
Definition ActionX.hpp:259
auto end() const
End of action block SCHEDULE keyword sequence.
Definition ActionX.hpp:255
static bool valid_keyword(const std::string &keyword)
Keyword validity predicate.
Definition ActionX.cpp:97
ActionX()
Default constructor.
Definition ActionX.cpp:132
std::time_t start_time() const
Retrieve point in time at which this action object is created.
Definition ActionX.hpp:249
Manager of summary vector values.
Definition ActionContext.hpp:42
Container of matching entities.
Definition ActionResult.hpp:174
Class Action::Result holds the boolean result of a ACTIONX condition like.
Definition ActionResult.hpp:69
Management information about the current run's ACTION system, especially concerning the number of tim...
Definition State.hpp:51
Definition DeckKeyword.hpp:36
Definition DeckRecord.hpp:32
Class for (de-)serializing.
Definition Serializer.hpp:94
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30