20 #ifndef UDQASSIGN_HPP_ 21 #define UDQASSIGN_HPP_ 23 #include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp> 24 #include <opm/input/eclipse/Schedule/UDQ/UDQSet.hpp> 29 #include <unordered_set> 56 using ItemMatcher = std::function<VEnumItems(const VString&)>;
134 const RestartIO::RstUDQ& assignRst,
141 const std::string&
keyword()
const;
208 void add_record(
const RestartIO::RstUDQ& assignRst,
299 template<
class Serializer>
302 serializer(m_keyword);
303 serializer(m_var_type);
342 AssignRecord() =
default;
357 AssignRecord(
const VString& selector,
358 const double value_arg,
359 const std::size_t report_step_arg)
360 : input_selector(selector)
378 const double value_arg,
379 const std::size_t report_step_arg)
380 : numbered_selector(selector)
400 const double value_arg,
401 const std::size_t report_step_arg)
402 : numbered_selector(
std::move(selector))
413 void eval(UDQSet& values)
const;
438 bool operator==(
const AssignRecord& data)
const;
445 template<
class Serializer>
448 serializer(this->input_selector);
449 serializer(this->numbered_selector);
450 serializer(this->
value);
463 void assignEnumeration(
const VEnumItems& items, UDQSet& values)
const;
467 std::string m_keyword{};
470 UDQVarType m_var_type{UDQVarType::NONE};
473 std::vector<AssignRecord> records{};
484 void add_well_or_group_records(
const RestartIO::RstUDQ& assignRst,
495 void add_segment_records(
const RestartIO::RstUDQ& assignRst,
501 #endif // UDQASSIGN_HPP_ std::vector< std::string > VString
Type alias for a vector of strings. Simplifies function signatures.
Definition: UDQAssign.hpp:44
std::vector< UDQSet::EnumeratedItems > VEnumItems
Type alias for a vector of enumerated items.
Definition: UDQAssign.hpp:48
std::size_t report_step() const
Time at which this assignment happens.
Definition: UDQAssign.cpp:214
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
void add_record(const VString &selector, double value, std::size_t report_step)
Add new record to existing UDQ assignment.
Definition: UDQAssign.cpp:151
bool operator==(const UDQAssign &data) const
Equality predicate.
Definition: UDQAssign.cpp:312
Definition: UDQSet.hpp:186
UDQVarType var_type() const
Kind of UDQ to which this assignment applies.
Definition: UDQAssign.cpp:209
std::function< VString(const VString &)> WGNameMatcher
Call-back function type for a well/group name matcher.
Definition: UDQAssign.hpp:52
static UDQAssign serializationTestObject()
Create a serialisation test object.
Definition: UDQAssign.cpp:138
UDQSet eval() const
Construct scalar UDQ set for a scalar UDQ assignment.
Definition: UDQAssign.cpp:257
UDQAssign()=default
Default constructor.
const std::string & keyword() const
Name of UDQ to which this assignment applies.
Definition: UDQAssign.cpp:204
Representation of a UDQ ASSIGN statement.
Definition: UDQAssign.hpp:40
Definition: Aquancon.hpp:40
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition: UDQAssign.hpp:300
Class for (de-)serializing.
Definition: Serializer.hpp:94
std::function< VEnumItems(const VString &)> ItemMatcher
Call-back function type for a matcher of enumerated items.
Definition: UDQAssign.hpp:56