20#ifndef OPM_SUMMARY_CONFIG_HPP
21#define OPM_SUMMARY_CONFIG_HPP
23#include <opm/io/eclipse/SummaryNode.hpp>
25#include <opm/common/OpmLog/KeywordLocation.hpp>
33#include <unordered_set>
58 using Category = Opm::EclIO::SummaryNode::Category;
61 using Type = Opm::EclIO::SummaryNode::Type;
124 const std::string&
keyword()
const {
return this->keyword_; }
136 int number()
const {
return this->number_; }
142 const std::string&
fip_region()
const {
return *this->fip_region_ ; }
171 template<
class Serializer>
174 serializer(keyword_);
175 serializer(category_);
180 serializer(fip_region_);
181 serializer(userDefined_);
186 std::string keyword_{};
192 Type type_{ Type::Undefined };
201 int number_{std::numeric_limits<int>::min()};
204 std::optional<std::string> fip_region_{};
207 bool userDefined_{
false};
212 KeywordLocation loc{};
258 return ! (lhs == rhs);
270 return ! (rhs < lhs);
294 return ! (lhs < rhs);
377 template <
typename T>
424 const std::set<std::string>& shortKwds,
425 const std::set<std::string>& smryKwds);
433 auto begin()
const {
return this->m_keywords.begin(); }
438 auto end()
const {
return this->m_keywords.end(); }
441 std::size_t
size()
const {
return this->m_keywords.size(); }
505 bool match(
const std::string& keywordPattern)
const;
555 template<
class Serializer>
558 serializer(m_keywords);
559 serializer(short_keywords);
560 serializer(summary_keywords);
566 {
return runSummaryConfig.create; }
627 std::set<std::string> short_keywords{};
630 std::set<std::string> summary_keywords{};
648 } runSummaryConfig{};
658 void handleProcessingInstruction(
const std::string& keyword);
Definition AquiferConfig.hpp:46
Definition EclipseState.hpp:66
Definition ErrorGuard.hpp:30
Definition FieldPropsManager.hpp:42
Definition GridDims.hpp:31
Definition KeywordLocation.hpp:27
Control parser behaviour in failure conditions.
Definition ParseContext.hpp:115
Definition Schedule.hpp:101
Class for (de-)serializing.
Definition Serializer.hpp:94
Definition of a single summary vector.
Definition SummaryConfig.hpp:55
SummaryConfigNode()=default
Default constructor.
Type type() const
Retrieve summary vector's type.
Definition SummaryConfig.hpp:130
static SummaryConfigNode serializationTestObject()
Create a serialisation test object.
SummaryConfigNode & namedEntity(std::string name)
Assign vector's named entity.
SummaryConfigNode(std::string keyword, const Category cat, KeywordLocation loc_arg)
Constructor.
bool isUserDefined() const
Retrieve summary vector's UDQ flag.
Definition SummaryConfig.hpp:139
int number() const
Retrieve summary vector's associated numeric ID.
Definition SummaryConfig.hpp:136
const KeywordLocation & location() const
Retrieve summary keyword location in input.
Definition SummaryConfig.hpp:150
SummaryConfigNode & isUserDefined(const bool userDefined)
Assign vector's UDQ flag.
const std::string & namedEntity() const
Retrieve summary vector's named entity.
Definition SummaryConfig.hpp:133
const std::string & fip_region() const
Retrieve summary vector's associated region.
Definition SummaryConfig.hpp:142
SummaryConfigNode & number(const int num)
Assign vector's numeric ID.
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition SummaryConfig.hpp:172
SummaryConfigNode & fip_region(const std::string &fip_region)
Assign vector's associated region name.
Category category() const
Retrieve summary vector's level.
Definition SummaryConfig.hpp:127
SummaryConfigNode & parameterType(const Type type)
Assign vector type.
std::string uniqueNodeKey() const
Retrieve a unique distinguishing identifier for this summary vector.
Opm::EclIO::SummaryNode::Type Type
Summary vector type (rates, cumulative, pressure, &c).
Definition SummaryConfig.hpp:61
Opm::EclIO::SummaryNode::Category Category
Summary vector level (field, well, region, &c).
Definition SummaryConfig.hpp:58
const std::string & keyword() const
Retrieve summary vector name.
Definition SummaryConfig.hpp:124
bool create
Whether or not to create a human-readable .RSM file at the end of the simulation run.
Definition SummaryConfig.hpp:636
SummaryConfig(const Deck &deck, const Schedule &schedule, const FieldPropsManager &field_props, const AquiferConfig &aquiferConfig)
Constructor.
std::set< std::string > fip_regions() const
Named region sets needed across all known region level vectors.
bool require3DField(const std::string &keyword) const
Query whether or not a 3D dynamic property is needed to evaluate some/all summary vectors.
keyword_list keywords(const std::string &keywordPattern) const
Retrieve all vector definitions matching a vector name pattern.
const SummaryConfigNode & operator[](std::size_t index) const
Retrieve summary vector definition from linear index.
SummaryConfig & merge(SummaryConfig &&other)
Incorporate other vector collection into current.
SummaryConfig & merge(const SummaryConfig &other)
Incorporate other vector collection into current.
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition SummaryConfig.hpp:556
std::set< std::string > fip_regions_interreg_flow() const
Named region sets needed across all known inter-region vectors.
std::vector< SummaryConfigNode > keyword_list
Convenience type alias for a linear sequence of summary vector definitions.
Definition SummaryConfig.hpp:303
bool separate
Whether or not to create a separate .RSM file instead of placing the run summary at the end of the ....
Definition SummaryConfig.hpp:647
SummaryConfig(const Deck &deck, const Schedule &schedule, const FieldPropsManager &field_props, const AquiferConfig &aquiferConfig, const ParseContext &parseContext, ErrorGuard &errors)
Constructor.
static SummaryConfig serializationTestObject()
Create a serialisation test object.
SummaryConfig(const keyword_list &keywords, const std::set< std::string > &shortKwds, const std::set< std::string > &smryKwds)
Constructor.
bool operator==(const SummaryConfig &data) const
Equality predicate.
std::size_t size() const
Number of summary vectors in current collection.
Definition SummaryConfig.hpp:441
bool match(const std::string &keywordPattern) const
Query existence of summary vector name with pattern matching.
auto end() const
One past the end of the sequence of summary vector definitions.
Definition SummaryConfig.hpp:438
bool createRunSummary() const
Whether or not to create a human-readable .RSM file at the end of the simulation run.
Definition SummaryConfig.hpp:565
bool narrow
Whether or not to output the .RSM file in "narrow" format.
Definition SummaryConfig.hpp:641
bool hasKeyword(const std::string &keyword) const
Query existence of summary vector name.
SummaryConfig()=default
Default constructor.
bool hasSummaryKey(const std::string &key) const
Query existence of fully qualified summary vector key.
auto begin() const
Beginning of sequence of summary vector definitions.
Definition SummaryConfig.hpp:433
keyword_list registerRequisiteUDQorActionSummaryKeys(const std::vector< std::string > &extraKeys, const EclipseState &es, const Schedule &sched)
Form definitions from vectors used in UDQs and ACTIONX.
SummaryConfig(const Deck &deck, const Schedule &schedule, const FieldPropsManager &field_props, const AquiferConfig &aquiferConfig, const ParseContext &parseContext, T &&errors)
Constructor.
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
bool operator<(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Canonical comparison operator for SummaryConfigNode objects.
SummaryConfigNode::Type parseKeywordType(std::string keyword)
Infer summary vector type from keyword name.
bool operator<=(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Less-than-or-equal comparison operator for SummaryConfigNode objects.
Definition SummaryConfig.hpp:268
bool operator>(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Greater-than comparison operator for SummaryConfigNode objects.
Definition SummaryConfig.hpp:280
bool operator>=(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Greater-than-or-equal comparison operator for SummaryConfigNode objects.
Definition SummaryConfig.hpp:292
bool operator!=(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Inequality operator for SummaryConfigNode objects.
Definition SummaryConfig.hpp:256
SummaryConfigNode::Category parseKeywordCategory(const std::string &keyword)
Infer summary vector level from keyword name.
Definition SummaryNode.hpp:36