EclipseState.hpp
Go to the documentation of this file.
1/*
2 Copyright 2013 Statoil ASA.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef OPM_ECLIPSE_STATE_HPP
21#define OPM_ECLIPSE_STATE_HPP
22
23#include <memory>
24#include <vector>
25
39
40namespace Opm {
41
43
44 template< typename > class GridProperty;
45 template< typename > class GridProperties;
46
47 class Box;
48 class BoxManager;
49 class Deck;
50 class DeckItem;
51 class DeckKeyword;
52 class DeckRecord;
53 class EclipseGrid;
54 class InitConfig;
55 class IOConfig;
56 class RestartConfig;
57 class DeckSection;
58 class SimulationConfig;
59 class TableManager;
60 class UnitSystem;
61
62
64 public:
68
70 };
71
72 EclipseState() = default;
73 EclipseState(const Deck& deck);
74 virtual ~EclipseState() = default;
75
76 const IOConfig& getIOConfig() const;
78
79 const InitConfig& getInitConfig() const;
81 virtual const EclipseGrid& getInputGrid() const;
82
83 const FaultCollection& getFaults() const;
84 const TransMult& getTransMult() const;
85
88 const NNC& getInputNNC() const;
89 bool hasInputNNC() const;
90
93 const EDITNNC& getInputEDITNNC() const;
94 bool hasInputEDITNNC() const;
95
96 // The potentially parallelized field properties
97 virtual const FieldPropsManager& fieldProps() const;
98 // Always the non-parallel field properties
99 virtual const FieldPropsManager& globalFieldProps() const;
102 const EclipseConfig& cfg() const;
103 const GridDims& gridDims() const;
104
105 // the unit system used by the deck. note that it is rarely needed to convert
106 // units because internally to opm-parser everything is represented by SI
107 // units...
109 const UnitSystem& getUnits() const;
110
112
113 void applyModifierDeck(const Deck& deck);
114
115 const Runspec& runspec() const;
116 const AquiferConfig& aquifer() const;
117 const TracerConfig& tracer() const;
118
119 template<class Serializer>
120 void serializeOp(Serializer& serializer)
121 {
122 // FieldPropsManager is handled otherwise, do not add
123 m_tables.serializeOp(serializer);
124 m_runspec.serializeOp(serializer);
125 m_eclipseConfig.serializeOp(serializer);
126 m_deckUnitSystem.serializeOp(serializer);
127 m_inputNnc.serializeOp(serializer);
128 m_inputEditNnc.serializeOp(serializer);
129 m_gridDims.serializeOp(serializer);
131 m_transMult.serializeOp(serializer);
132 m_faults.serializeOp(serializer);
133 serializer(m_title);
134 aquifer_config.serializeOp(serializer);
135 tracer_config.serializeOp(serializer);
136 }
137
138 private:
139 void initIOConfigPostSchedule(const Deck& deck);
140 void initTransMult();
141 void initFaults(const Deck& deck);
142
143 void setMULTFLT(const Opm::DeckSection& section);
144
145 void complainAboutAmbiguousKeyword(const Deck& deck,
146 const std::string& keywordName);
147
148 protected:
160
165 };
166}
167
168#endif // OPM_ECLIPSE_STATE_HPP
const char *const string
Definition: cJSON.h:170
Definition: AquiferConfig.hpp:33
void serializeOp(Serializer &serializer)
Definition: AquiferConfig.hpp:48
Definition: BoxManager.hpp:55
Definition: Box.hpp:31
Definition: DeckItem.hpp:37
Definition: DeckKeyword.hpp:38
Definition: Deck.hpp:115
Definition: DeckRecord.hpp:32
Definition: DeckSection.hpp:44
Represents edit information for non-neighboring connections (NNCs, faults, etc.)
Definition: EDITNNC.hpp:28
void serializeOp(Serializer &serializer)
Definition: EDITNNC.hpp:51
Definition: EclipseConfig.hpp:33
void serializeOp(Serializer &serializer)
Definition: EclipseConfig.hpp:49
Definition: EclipseGrid.hpp:54
Definition: EclipseState.hpp:63
FieldPropsManager field_props
Definition: EclipseState.hpp:157
TracerConfig tracer_config
Definition: EclipseState.hpp:164
EnabledTypes
Definition: EclipseState.hpp:65
@ DoubleProperties
Definition: EclipseState.hpp:67
@ IntProperties
Definition: EclipseState.hpp:66
@ AllProperties
Definition: EclipseState.hpp:69
const EclipseConfig & getEclipseConfig() const
const EDITNNC & getInputEDITNNC() const
std::string m_title
Definition: EclipseState.hpp:162
virtual const FieldPropsManager & fieldProps() const
TransMult m_transMult
Definition: EclipseState.hpp:159
const AquiferConfig & aquifer() const
virtual ~EclipseState()=default
EclipseConfig m_eclipseConfig
Definition: EclipseState.hpp:151
UnitSystem m_deckUnitSystem
Definition: EclipseState.hpp:152
const TracerConfig & tracer() const
const UnitSystem & getUnits() const
FaultCollection m_faults
Definition: EclipseState.hpp:161
EclipseGrid m_inputGrid
Definition: EclipseState.hpp:155
Runspec m_runspec
Definition: EclipseState.hpp:150
const TableManager & getTableManager() const
EclipseState(const Deck &deck)
const GridDims & gridDims() const
std::string getTitle() const
GridDims m_gridDims
Definition: EclipseState.hpp:156
bool hasInputEDITNNC() const
bool hasInputNNC() const
virtual const EclipseGrid & getInputGrid() const
void serializeOp(Serializer &serializer)
Definition: EclipseState.hpp:120
IOConfig & getIOConfig()
const UnitSystem & getDeckUnitSystem() const
const EclipseConfig & cfg() const
const IOConfig & getIOConfig() const
const SimulationConfig & getSimulationConfig() const
NNC m_inputNnc
Definition: EclipseState.hpp:153
SimulationConfig m_simulationConfig
Definition: EclipseState.hpp:158
EclipseState()=default
TableManager m_tables
Definition: EclipseState.hpp:149
const NNC & getInputNNC() const
const InitConfig & getInitConfig() const
void applyModifierDeck(const Deck &deck)
virtual const FieldPropsManager & globalFieldProps() const
AquiferConfig aquifer_config
Definition: EclipseState.hpp:163
const Runspec & runspec() const
const FaultCollection & getFaults() const
EDITNNC m_inputEditNnc
Definition: EclipseState.hpp:154
const TransMult & getTransMult() const
Definition: FaultCollection.hpp:35
void serializeOp(Serializer &serializer)
Definition: FaultCollection.hpp:56
Definition: FieldPropsManager.hpp:33
Definition: GridDims.hpp:32
void serializeOp(Serializer &serializer)
Definition: GridDims.hpp:64
Definition: EclipseState.hpp:45
Definition: EclipseState.hpp:44
Definition: IOConfig.hpp:147
Definition: InitConfig.hpp:32
Definition: NNC.hpp:61
void serializeOp(Serializer &serializer)
Definition: NNC.hpp:78
Definition: RestartConfig.hpp:326
Definition: Runspec.hpp:264
void serializeOp(Serializer &serializer)
Definition: Runspec.hpp:285
Definition: Serializer.hpp:38
Definition: SimulationConfig.hpp:32
void serializeOp(Serializer &serializer)
Definition: SimulationConfig.hpp:55
Definition: TableManager.hpp:63
void serializeOp(Serializer &serializer)
Definition: TableManager.hpp:185
Definition: TracerConfig.hpp:31
void serializeOp(Serializer &serializer)
Definition: TracerConfig.hpp:80
Definition: TransMult.hpp:47
void serializeOp(Serializer &serializer)
Definition: TransMult.hpp:65
Definition: UnitSystem.hpp:32
void serializeOp(Serializer &serializer)
Definition: UnitSystem.hpp:121
Definition: A.hpp:4
bool enable3DPropsTesting()