ECLPvtWater.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_ECLPVTWATER_HEADER_INCLUDED
21#define OPM_ECLPVTWATER_HEADER_INCLUDED
22
23#include <memory>
24#include <vector>
25
26namespace Opm {
27 struct ECLPropTableRawData;
28 class ECLInitFileData;
29} // Opm
30
31namespace Opm { namespace ECLPVT {
32
34 class Water
35 {
36 public:
50 const int usys,
51 const std::vector<double>& rhoS);
52
55
59 Water(const Water& rhs);
60
68 Water(Water&& rhs);
69
75 Water& operator=(const Water& rhs);
76
86
92 std::vector<double> data;
93 };
94
104 std::vector<double>
105 formationVolumeFactor(const int region,
106 const WaterPressure& pw) const;
107
117 std::vector<double>
118 viscosity(const int region,
119 const WaterPressure& pw) const;
120
128 double surfaceMassDensity(const int region) const;
129
130 private:
132 class Impl;
133
135 std::unique_ptr<Impl> pImpl_;
136 };
137
140 {
148 static std::unique_ptr<Water>
150 };
151}} // Opm::ECLPVT
152
153#endif // OPM_ECLPVTWATER_HEADER_INCLUDED
const char *const const char *const raw
Definition: cJSON.h:264
Definition: ECLResultData.hpp:177
Interpolant for Basic Water PVT Relations.
Definition: ECLPvtWater.hpp:35
Water(const Water &rhs)
double surfaceMassDensity(const int region) const
Water(Water &&rhs)
~Water()
Destructor.
Water & operator=(const Water &rhs)
std::vector< double > viscosity(const int region, const WaterPressure &pw) const
Water(const ECLPropTableRawData &raw, const int usys, const std::vector< double > &rhoS)
Water & operator=(Water &&rhs)
std::vector< double > formationVolumeFactor(const int region, const WaterPressure &pw) const
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 Oil PVT Relation Interpolant Factory Functions.
Definition: ECLPvtWater.hpp:140
static std::unique_ptr< Water > fromECLOutput(const ECLInitFileData &init)
Definition: ECLPvtWater.hpp:90
std::vector< double > data
Water phase pressure for all sampling points.
Definition: ECLPvtWater.hpp:92
Raw table data from which to construct collection of interpolants.
Definition: ECLPropTable.hpp:37