ECLPvtGas.hpp
Go to the documentation of this file.
1/*
2 Copyright 2017 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_ECLPVTGAS_HEADER_INCLUDED
21#define OPM_ECLPVTGAS_HEADER_INCLUDED
22
26
27#include <memory>
28#include <vector>
29
30// Forward declarations
31namespace Opm {
32 struct ECLPropTableRawData;
33 class ECLInitFileData;
34} // Opm
35
36namespace Opm { namespace ECLPVT {
37
39 class Gas
40 {
41 public:
55 const int usys,
56 std::vector<double> rhoS);
57
60
64 Gas(const Gas& rhs);
65
73 Gas(Gas&& rhs);
74
80 Gas& operator=(const Gas& rhs);
81
90 Gas& operator=(Gas&& rhs);
91
96 {
98 std::vector<double> data;
99 };
100
105 {
107 std::vector<double> data;
108 };
109
124 std::vector<double>
125 formationVolumeFactor(const int region,
126 const VaporizedOil& rv,
127 const GasPressure& pg) const;
128
143 std::vector<double>
144 viscosity(const int region,
145 const VaporizedOil& rv,
146 const GasPressure& pg) const;
147
155 double surfaceMassDensity(const int region) const;
156
178 std::vector<PVTGraph>
180 const int region) const;
181
182 private:
184 class Impl;
185
187 std::unique_ptr<Impl> pImpl_;
188 };
189
192 {
200 static std::unique_ptr<Gas>
202 };
203}} // Opm::ECLPVT
204
205#endif // OPM_ECLPVTGAS_HEADER_INCLUDED
const char *const const char *const raw
Definition: cJSON.h:264
Definition: ECLResultData.hpp:177
Interpolant for Basic Gas PVT Relations.
Definition: ECLPvtGas.hpp:40
std::vector< PVTGraph > getPvtCurve(const RawCurve curve, const int region) const
std::vector< double > formationVolumeFactor(const int region, const VaporizedOil &rv, const GasPressure &pg) const
Gas(Gas &&rhs)
~Gas()
Destructor.
Gas & operator=(Gas &&rhs)
Gas & operator=(const Gas &rhs)
std::vector< double > viscosity(const int region, const VaporizedOil &rv, const GasPressure &pg) const
Gas(const Gas &rhs)
double surfaceMassDensity(const int region) const
Gas(const ECLPropTableRawData &raw, const int usys, std::vector< double > rhoS)
RawCurve
Definition: ECLPvtCommon.hpp:293
std::vector< double > init(const std::string &kewyord, const TableManager &tables, const Phases &phases, const std::vector< double > &cell_depth, const std::vector< int > &num, const std::vector< int > &endnum)
Definition: A.hpp:4
Basic Gas PVT Relation Interpolant Factory Functions.
Definition: ECLPvtGas.hpp:192
static std::unique_ptr< Gas > fromECLOutput(const ECLInitFileData &init)
Definition: ECLPvtGas.hpp:105
std::vector< double > data
Gas phase pressure for all sampling points.
Definition: ECLPvtGas.hpp:107
Definition: ECLPvtGas.hpp:96
std::vector< double > data
Vaporised oil-gas ratio data for all sampling points.
Definition: ECLPvtGas.hpp:98
Raw table data from which to construct collection of interpolants.
Definition: ECLPropTable.hpp:37