My Project
Equil.hpp
1 #ifndef OPM_EQUIL_HPP
2 #define OPM_EQUIL_HPP
3 
4 #include <cstddef>
5 #include <vector>
6 
7 namespace Opm {
8  class DeckKeyword;
9  class EquilRecord {
10  public:
11  double datumDepth() const;
12  double datumDepthPressure() const;
13  double waterOilContactDepth() const;
14  double waterOilContactCapillaryPressure() const;
15  double gasOilContactDepth() const;
16  double gasOilContactCapillaryPressure() const;
17 
18  bool liveOilInitConstantRs() const;
19  bool wetGasInitConstantRv() const;
20  int initializationTargetAccuracy() const;
21 
22  EquilRecord();
23 
24  EquilRecord( double datum_depth_arg, double datum_depth_pc_arg, double woc_depth, double woc_pc, double goc_depth, double goc_pc, bool live_oil_init, bool wet_gas_init, int target_accuracy);
25 
26  bool operator==(const EquilRecord& data) const;
27 
28  template<class Serializer>
29  void serializeOp(Serializer& serializer)
30  {
31  serializer(datum_depth);
32  serializer(datum_depth_ps);
33  serializer(water_oil_contact_depth);
34  serializer(water_oil_contact_capillary_pressure);
35  serializer(gas_oil_contact_depth);
36  serializer(gas_oil_contact_capillary_pressure);
37  serializer(live_oil_init_proc);
38  serializer(wet_gas_init_proc);
39  serializer(init_target_accuracy);
40  }
41 
42  private:
43  double datum_depth;
44  double datum_depth_ps;
45  double water_oil_contact_depth;
46  double water_oil_contact_capillary_pressure;
47  double gas_oil_contact_depth;
48  double gas_oil_contact_capillary_pressure;
49 
50  bool live_oil_init_proc;
51  bool wet_gas_init_proc;
52  int init_target_accuracy;
53  };
54 
55  class Equil {
56  public:
57  using const_iterator = std::vector< EquilRecord >::const_iterator;
58 
59  Equil() = default;
60  explicit Equil( const DeckKeyword& );
61 
62  static Equil serializeObject();
63 
64  const EquilRecord& getRecord( size_t id ) const;
65 
66  size_t size() const;
67  bool empty() const;
68 
69  const_iterator begin() const;
70  const_iterator end() const;
71 
72  bool operator==(const Equil& data) const;
73 
74  template<class Serializer>
75  void serializeOp(Serializer& serializer)
76  {
77  serializer.vector(m_records);
78  }
79 
80  private:
81  std::vector< EquilRecord > m_records;
82  };
83 
84 }
85 
86 #endif //OPM_EQUIL_HPP
Definition: DeckKeyword.hpp:36
Definition: Equil.hpp:9
Definition: Equil.hpp:55
Definition: Serializer.hpp:38
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29