All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
RockCompressibility.hpp
1 /*
2  Copyright 2012 SINTEF ICT, Applied Mathematics.
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_ROCKCOMPRESSIBILITY_HEADER_INCLUDED
21 #define OPM_ROCKCOMPRESSIBILITY_HEADER_INCLUDED
22 
23 #include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
24 
25 #include <vector>
26 
27 namespace Opm
28 {
29 
30  class ParameterGroup;
31 
33  {
34  public:
37  RockCompressibility(const Opm::EclipseState& eclipseState,
38  const bool is_io_rank = true);
39 
44  RockCompressibility(const ParameterGroup& param);
45 
47  bool isActive() const;
48 
50  double poroMult(double pressure) const;
51 
53  double poroMultDeriv(double pressure) const;
54 
56  double transMult(double pressure) const;
57 
59  double transMultDeriv(double pressure) const;
60 
62  double rockComp(double pressure) const;
63 
64  private:
65  std::vector<double> p_;
66  std::vector<double> poromult_;
67  std::vector<double> transmult_;
68  double pref_;
69  double rock_comp_;
70  };
71 
72 } // namespace Opm
73 
74 
75 #endif // OPM_ROCKCOMPRESSIBILITY_HEADER_INCLUDED
RockCompressibility(const Opm::EclipseState &eclipseState, const bool is_io_rank=true)
Construct from input deck.
Definition: RockCompressibility.cpp:44
double poroMult(double pressure) const
Porosity multiplier.
Definition: RockCompressibility.cpp:86
double transMult(double pressure) const
Transmissibility multiplier.
Definition: RockCompressibility.cpp:109
Definition: RockCompressibility.hpp:32
double transMultDeriv(double pressure) const
Derivative of transmissibility multiplier with respect to pressure.
Definition: RockCompressibility.cpp:118
ParameterGroup is a class that is used to provide run-time parameters.
Definition: ParameterGroup.hpp:81
double poroMultDeriv(double pressure) const
Derivative of porosity multiplier with respect to pressure.
Definition: RockCompressibility.cpp:97
double rockComp(double pressure) const
Rock compressibility = (d poro / d p)*(1 / poro).
Definition: RockCompressibility.cpp:127
bool isActive() const
Returns true if there are compressibility effects.
Definition: RockCompressibility.cpp:81