20#ifndef OPM_SUMMARY_CONFIG_HPP
21#define OPM_SUMMARY_CONFIG_HPP
28#include <unordered_set>
32#include <opm/io/eclipse/SummaryNode.hpp>
33#include <opm/common/OpmLog/KeywordLocation.hpp>
45 using Category = Opm::EclIO::SummaryNode::Category;
46 using Type = Opm::EclIO::SummaryNode::Type;
59 const std::string& keyword()
const {
return this->keyword_; }
60 Category category()
const {
return this->category_; }
61 Type type()
const {
return this->type_; }
62 const std::string& namedEntity()
const {
return this->name_; }
63 int number()
const {
return this->number_; }
64 bool isUserDefined()
const {
return this->userDefined_; }
65 const std::string& fip_region()
const {
return *this->fip_region_ ; }
67 std::string uniqueNodeKey()
const;
71 return { keyword_, category_, type_, name_, number_, fip_region_, {}};
74 template<
class Serializer>
78 serializer(category_);
83 serializer(fip_region_);
84 serializer(userDefined_);
91 Type type_{ Type::Undefined };
93 int number_{std::numeric_limits<int>::min()};
94 std::optional<std::string> fip_region_;
95 bool userDefined_{
false};
98 SummaryConfigNode::Category parseKeywordCategory(
const std::string& keyword);
99 SummaryConfigNode::Type parseKeywordType(std::string keyword);
106 return ! (lhs == rhs);
109 inline bool operator<=(
const SummaryConfigNode& lhs,
const SummaryConfigNode& rhs)
111 return ! (rhs < lhs);
114 inline bool operator>(
const SummaryConfigNode& lhs,
const SummaryConfigNode& rhs)
119 inline bool operator>=(
const SummaryConfigNode& lhs,
const SummaryConfigNode& rhs)
121 return ! (lhs < rhs);
130 class FieldPropsManager;
135 typedef std::vector< keyword_type > keyword_list;
136 typedef keyword_list::const_iterator const_iterator;
146 template <
typename T>
160 const std::set<std::string>& shortKwds,
161 const std::set<std::string>& smryKwds);
165 const_iterator begin()
const;
166 const_iterator end()
const;
177 bool hasKeyword(
const std::string& keyword )
const;
185 bool match(
const std::string& keywordPattern)
const;
188 keyword_list keywords(
const std::string& keywordPattern)
const;
194 bool hasSummaryKey(
const std::string& keyword )
const;
199 bool require3DField(
const std::string& keyword)
const;
200 std::set<std::string> fip_regions()
const;
201 std::set<std::string> fip_regions_interreg_flow()
const;
202 std::unordered_set<std::string> wbp_wells()
const;
206 template<
class Serializer>
209 serializer(m_keywords);
210 serializer(short_keywords);
211 serializer(summary_keywords);
214 bool createRunSummary()
const {
215 return runSummaryConfig.create;
235 keyword_list m_keywords;
236 std::set<std::string> short_keywords;
237 std::set<std::string> summary_keywords;
240 bool create {
false };
241 bool narrow {
false };
242 bool separate {
true };
245 void handleProcessingInstruction(
const std::string& keyword);
Definition: AquiferConfig.hpp:44
Definition: ErrorGuard.hpp:29
Definition: FieldPropsManager.hpp:38
Definition: GridDims.hpp:31
Definition: KeywordLocation.hpp:27
Definition: ParseContext.hpp:88
Definition: Schedule.hpp:138
Class for (de-)serializing.
Definition: Serializer.hpp:75
Definition: SummaryConfig.hpp:43
Definition: SummaryConfig.hpp:132
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: SummaryNode.hpp:36