23#include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp>
24#include <opm/input/eclipse/Schedule/UDQ/UDQSet.hpp>
29#include <unordered_set>
33namespace Opm::RestartIO {
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);
339 std::size_t report_step{};
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)
362 , report_step (report_step_arg)
378 const double value_arg,
379 const std::size_t report_step_arg)
380 : numbered_selector(selector)
382 , report_step (report_step_arg)
400 const double value_arg,
401 const std::size_t report_step_arg)
402 : numbered_selector(std::move(selector))
404 , report_step (report_step_arg)
413 void eval(UDQSet& values)
const;
438 bool operator==(
const AssignRecord& data)
const;
445 template<
class Serializer>
446 void serializeOp(Serializer& serializer)
448 serializer(this->input_selector);
449 serializer(this->numbered_selector);
450 serializer(this->value);
451 serializer(this->report_step);
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,
Class for (de-)serializing.
Definition Serializer.hpp:94
Representation of a UDQ ASSIGN statement.
Definition UDQAssign.hpp:41
std::size_t report_step() const
Time at which this assignment happens.
Definition UDQAssign.cpp:214
std::function< VString(const VString &)> WGNameMatcher
Call-back function type for a well/group name matcher.
Definition UDQAssign.hpp:52
std::vector< std::string > VString
Type alias for a vector of strings. Simplifies function signatures.
Definition UDQAssign.hpp:44
UDQSet eval() const
Construct scalar UDQ set for a scalar UDQ assignment.
Definition UDQAssign.cpp:257
const std::string & keyword() const
Name of UDQ to which this assignment applies.
Definition UDQAssign.cpp:204
static UDQAssign serializationTestObject()
Create a serialisation test object.
Definition UDQAssign.cpp:138
void add_record(const VString &selector, double value, std::size_t report_step)
Add new record to existing UDQ assignment.
Definition UDQAssign.cpp:151
std::function< VEnumItems(const VString &)> ItemMatcher
Call-back function type for a matcher of enumerated items.
Definition UDQAssign.hpp:56
UDQSet eval(const VString &wells) const
Apply current assignment to a selection of named items.
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition UDQAssign.hpp:300
void add_record(const VEnumItems &selector, double value, std::size_t report_step)
Add new record to existing UDQ assignment.
std::vector< UDQSet::EnumeratedItems > VEnumItems
Type alias for a vector of enumerated items.
Definition UDQAssign.hpp:48
UDQVarType var_type() const
Kind of UDQ to which this assignment applies.
Definition UDQAssign.cpp:209
UDQAssign()=default
Default constructor.
bool operator==(const UDQAssign &data) const
Equality predicate.
Definition UDQAssign.cpp:312
UDQAssign(const std::string &keyword, const VEnumItems &selector, double value, std::size_t report_step)
Constructor.
Definition UDQSet.hpp:187
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30