My Project
SimulationConfig.hpp
1 /*
2  Copyright 2015 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_SIMULATION_CONFIG_HPP
21 #define OPM_SIMULATION_CONFIG_HPP
22 
23 #include <opm/input/eclipse/EclipseState/SimulationConfig/RockConfig.hpp>
24 #include <opm/input/eclipse/EclipseState/SimulationConfig/ThresholdPressure.hpp>
25 #include <opm/input/eclipse/EclipseState/SimulationConfig/BCConfig.hpp>
26 
27 namespace Opm {
28 
29  class Deck;
30  class FieldPropsManager;
31 
33 
34  public:
35 
37  SimulationConfig(bool restart,
38  const Deck& deck,
39  const FieldPropsManager& fp);
40 
41  static SimulationConfig serializeObject();
42 
43  const RockConfig& rock_config() const;
44  const ThresholdPressure& getThresholdPressure() const;
45  const BCConfig& bcconfig() const;
46  bool useThresholdPressure() const;
47  bool useCPR() const;
48  bool hasDISGAS() const;
49  bool hasVAPOIL() const;
50  bool hasVAPWAT() const;
51  bool isThermal() const;
52  bool isDiffusive() const;
53  bool hasPRECSALT() const;
54 
55  bool operator==(const SimulationConfig& data) const;
56  static bool rst_cmp(const SimulationConfig& full_config, const SimulationConfig& rst_config);
57 
58  template<class Serializer>
59  void serializeOp(Serializer& serializer)
60  {
61  m_ThresholdPressure.serializeOp(serializer);
62  m_bcconfig.serializeOp(serializer);
63  m_rock_config.serializeOp(serializer);
64  serializer(m_useCPR);
65  serializer(m_DISGAS);
66  serializer(m_VAPOIL);
67  serializer(m_VAPWAT);
68  serializer(m_isThermal);
69  serializer(m_diffuse);
70  serializer(m_PRECSALT);
71  }
72 
73  private:
74  ThresholdPressure m_ThresholdPressure;
75  BCConfig m_bcconfig;
76  RockConfig m_rock_config;
77  bool m_useCPR;
78  bool m_DISGAS;
79  bool m_VAPOIL;
80  bool m_VAPWAT;
81  bool m_isThermal;
82  bool m_diffuse;
83  bool m_PRECSALT;
84  };
85 
86 } //namespace Opm
87 
88 
89 
90 #endif
Definition: BCConfig.hpp:49
Definition: Deck.hpp:63
Definition: FieldPropsManager.hpp:38
Definition: RockConfig.hpp:30
Definition: Serializer.hpp:38
Definition: SimulationConfig.hpp:32
Definition: ThresholdPressure.hpp:32
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29