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> 41 class FieldPropsManager;
58 using Category = Opm::EclIO::SummaryNode::Category;
61 using Type = Opm::EclIO::SummaryNode::Type;
124 const std::string&
keyword()
const {
return this->keyword_; }
127 Category
category()
const {
return this->category_; }
130 Type
type()
const {
return this->type_; }
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{};
238 bool operator==(
const SummaryConfigNode& lhs,
const SummaryConfigNode& rhs);
247 bool operator<(
const SummaryConfigNode& lhs,
const SummaryConfigNode& rhs);
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(); }
493 bool hasKeyword(
const std::string& keyword)
const;
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);
663 #endif // OPM_SUMMARY_CONFIG_HPP SummaryConfig()=default
Default constructor.
bool narrow
Whether or not to output the .RSM file in "narrow" format.
Definition: SummaryConfig.hpp:641
std::vector< SummaryConfigNode > keyword_list
Convenience type alias for a linear sequence of summary vector definitions.
Definition: SummaryConfig.hpp:303
bool createRunSummary() const
Whether or not to create a human-readable .RSM file at the end of the simulation run.
Definition: SummaryConfig.hpp:565
std::size_t size() const
Number of summary vectors in current collection.
Definition: SummaryConfig.hpp:441
bool isUserDefined() const
Retrieve summary vector's UDQ flag.
Definition: SummaryConfig.hpp:139
Definition: KeywordLocation.hpp:27
Opm::EclIO::SummaryNode::Type Type
Summary vector type (rates, cumulative, pressure, &c)
Definition: SummaryConfig.hpp:61
int number() const
Retrieve summary vector's associated numeric ID.
Definition: SummaryConfig.hpp:136
Definition: Schedule.hpp:100
const std::string & fip_region() const
Retrieve summary vector's associated region.
Definition: SummaryConfig.hpp:142
bool operator==(const SummaryConfig &data) const
Equality predicate.
Collection of run's summary vectors.
Definition: SummaryConfig.hpp:298
bool operator<=(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Less-than-or-equal comparison operator for SummaryConfigNode objects.
Definition: SummaryConfig.hpp:268
Definition: FieldPropsManager.hpp:42
const std::string & keyword() const
Retrieve summary vector name.
Definition: SummaryConfig.hpp:124
SummaryConfigNode::Category parseKeywordCategory(const std::string &keyword)
Infer summary vector level from keyword name.
Definition of a single summary vector.
Definition: SummaryConfig.hpp:54
bool operator>(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Greater-than comparison operator for SummaryConfigNode objects.
Definition: SummaryConfig.hpp:280
std::set< std::string > fip_regions() const
Named region sets needed across all known region level vectors.
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
bool hasKeyword(const std::string &keyword) const
Query existence of summary vector name.
bool hasSummaryKey(const std::string &key) const
Query existence of fully qualified summary vector key.
Definition: EclipseState.hpp:66
Definition: AquiferConfig.hpp:46
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)
Canonical comparison operator for SummaryConfigNode objects.
SummaryConfigNode::Type parseKeywordType(std::string keyword)
Infer summary vector type from keyword name.
std::string uniqueNodeKey() const
Retrieve a unique distinguishing identifier for this summary vector.
SummaryConfigNode()=default
Default constructor.
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition: SummaryConfig.hpp:172
SummaryConfigNode & parameterType(const Type type)
Assign vector type.
bool require3DField(const std::string &keyword) const
Query whether or not a 3D dynamic property is needed to evaluate some/all summary vectors...
const SummaryConfigNode & operator[](std::size_t index) const
Retrieve summary vector definition from linear index.
keyword_list registerRequisiteUDQorActionSummaryKeys(const std::vector< std::string > &extraKeys, const EclipseState &es, const Schedule &sched)
Form definitions from vectors used in UDQs and ACTIONX.
static SummaryConfig serializationTestObject()
Create a serialisation test object.
bool create
Whether or not to create a human-readable .RSM file at the end of the simulation run.
Definition: SummaryConfig.hpp:636
Type type() const
Retrieve summary vector's type.
Definition: SummaryConfig.hpp:130
Control parser behaviour in failure conditions.
Definition: ParseContext.hpp:114
auto end() const
One past the end of the sequence of summary vector definitions.
Definition: SummaryConfig.hpp:438
Category category() const
Retrieve summary vector's level.
Definition: SummaryConfig.hpp:127
const KeywordLocation & location() const
Retrieve summary keyword location in input.
Definition: SummaryConfig.hpp:150
Definition: GridDims.hpp:30
Definition: SummaryNode.hpp:36
keyword_list keywords(const std::string &keywordPattern) const
Retrieve all vector definitions matching a vector name pattern.
SummaryConfig & merge(const SummaryConfig &other)
Incorporate other vector collection into current.
const std::string & namedEntity() const
Retrieve summary vector's named entity.
Definition: SummaryConfig.hpp:133
Opm::EclIO::SummaryNode::Category Category
Summary vector level (field, well, region, &c).
Definition: SummaryConfig.hpp:58
std::set< std::string > fip_regions_interreg_flow() const
Named region sets needed across all known inter-region vectors.
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
Class for (de-)serializing.
Definition: Serializer.hpp:94
bool match(const std::string &keywordPattern) const
Query existence of summary vector name with pattern matching.
auto begin() const
Beginning of sequence of summary vector definitions.
Definition: SummaryConfig.hpp:433
bool operator!=(const SummaryConfigNode &lhs, const SummaryConfigNode &rhs)
Inequality operator for SummaryConfigNode objects.
Definition: SummaryConfig.hpp:256
Definition: ErrorGuard.hpp:30
static SummaryConfigNode serializationTestObject()
Create a serialisation test object.
void serializeOp(Serializer &serializer)
Convert between byte array and object representation.
Definition: SummaryConfig.hpp:556