21 #ifndef OPM_PARSER_MULTREGTSCANNER_HPP
22 #define OPM_PARSER_MULTREGTSCANNER_HPP
24 #include <opm/input/eclipse/EclipseState/Grid/FaceDir.hpp>
30 class FieldPropsManager;
36 enum NNCBehaviourEnum {
43 std::string RegionNameFromDeckValue(
const std::string& stringValue);
44 NNCBehaviourEnum NNCBehaviourFromString(
const std::string& stringValue);
55 MULTREGT::NNCBehaviourEnum nnc_behaviour;
56 std::string region_name;
59 return src_value == data.src_value &&
60 target_value == data.target_value &&
61 trans_mult == data.trans_mult &&
62 directions == data.directions &&
63 nnc_behaviour == data.nnc_behaviour &&
64 region_name == data.region_name;
67 template<
class Serializer>
70 serializer(src_value);
71 serializer(target_value);
72 serializer(trans_mult);
73 serializer(directions);
74 serializer(nnc_behaviour);
75 serializer(region_name);
79 typedef std::map< std::pair<int , int> ,
const MULTREGTRecord * > MULTREGTSearchMap;
80 typedef std::tuple<size_t , FaceDir::DirEnum , double> MULTREGTConnection;
87 using ExternalSearchMap = std::map<std::string, std::map<std::pair<int,int>,
int>>;
93 const std::vector< const DeckKeyword* >& keywords);
97 double getRegionMultiplier(
size_t globalCellIdx1,
size_t globalCellIdx2, FaceDir::DirEnum faceDir)
const;
102 template<
class Serializer>
108 serializer(m_records);
109 ExternalSearchMap searchMap = getSearchMap();
110 serializer(searchMap);
111 if (m_searchMap.empty())
112 constructSearchMap(searchMap);
114 serializer(default_region);
118 ExternalSearchMap getSearchMap()
const;
119 void constructSearchMap(
const ExternalSearchMap& searchMap);
121 void addKeyword(
const DeckKeyword& deckKeyword,
const std::string& defaultRegion);
122 void assertKeywordSupported(
const DeckKeyword& deckKeyword);
123 std::size_t nx = 0,ny = 0, nz = 0;
125 std::vector< MULTREGTRecord > m_records;
126 std::map<std::string , MULTREGTSearchMap> m_searchMap;
127 std::map<std::string, std::vector<int>> regions;
128 std::string default_region;
Definition: DeckKeyword.hpp:36
Definition: FieldPropsManager.hpp:38
Definition: GridDims.hpp:31
Definition: MULTREGTScanner.hpp:84
Class for (de-)serializing.
Definition: Serializer.hpp:75
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29
Definition: MULTREGTScanner.hpp:50