21 #ifndef OPM_PARSER_MULTREGTSCANNER_HPP
22 #define OPM_PARSER_MULTREGTSCANNER_HPP
24 #include <opm/input/eclipse/EclipseState/Grid/FaceDir.hpp>
29 class FieldPropsManager;
37 enum NNCBehaviourEnum {
44 std::string RegionNameFromDeckValue(
const std::string& stringValue);
45 NNCBehaviourEnum NNCBehaviourFromString(
const std::string& stringValue);
56 MULTREGT::NNCBehaviourEnum nnc_behaviour;
57 std::string region_name;
60 return src_value == data.src_value &&
61 target_value == data.target_value &&
62 trans_mult == data.trans_mult &&
63 directions == data.directions &&
64 nnc_behaviour == data.nnc_behaviour &&
65 region_name == data.region_name;
68 template<
class Serializer>
71 serializer(src_value);
72 serializer(target_value);
73 serializer(trans_mult);
74 serializer(directions);
75 serializer(nnc_behaviour);
76 serializer(region_name);
80 typedef std::map< std::pair<int , int> ,
const MULTREGTRecord * > MULTREGTSearchMap;
81 typedef std::tuple<size_t , FaceDir::DirEnum , double> MULTREGTConnection;
88 using ExternalSearchMap = std::map<std::string, std::map<std::pair<int,int>,
int>>;
94 const std::vector< const DeckKeyword* >& keywords);
98 double getRegionMultiplier(
size_t globalCellIdx1,
size_t globalCellIdx2, FaceDir::DirEnum faceDir)
const;
103 template<
class Serializer>
109 serializer.vector(m_records);
110 ExternalSearchMap searchMap = getSearchMap();
111 serializer(searchMap);
112 if (m_searchMap.empty())
113 constructSearchMap(searchMap);
115 serializer(default_region);
119 ExternalSearchMap getSearchMap()
const;
120 void constructSearchMap(
const ExternalSearchMap& searchMap);
122 void addKeyword(
const DeckKeyword& deckKeyword,
const std::string& defaultRegion);
123 void assertKeywordSupported(
const DeckKeyword& deckKeyword);
124 std::size_t nx = 0,ny = 0, nz = 0;
126 std::vector< MULTREGTRecord > m_records;
127 std::map<std::string , MULTREGTSearchMap> m_searchMap;
128 std::map<std::string, std::vector<int>> regions;
129 std::string default_region;
Definition: DeckKeyword.hpp:36
Definition: FieldPropsManager.hpp:38
Definition: GridDims.hpp:32
Definition: MULTREGTScanner.hpp:85
Definition: Serializer.hpp:38
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: MULTREGTScanner.hpp:51