opm-common
Loading...
Searching...
No Matches
NullOilPvt.hpp
1/*
2 Copyright 2025 Equinor ASA
3 This file is part of the Open Porous Media project (OPM).
4 OPM is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
8 OPM is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with OPM. If not, see <http://www.gnu.org/licenses/>.
14*/
15#ifndef OPM_NULL_OIL_PVT_HPP
16#define OPM_NULL_OIL_PVT_HPP
17
18#include <opm/common/utility/gpuDecorators.hpp>
20
21namespace Opm
22{
23
31template <class Scalar>
33{
34public:
35 // Approach method
36 OPM_HOST_DEVICE static constexpr auto approach()
37 {
38 return OilPvtApproach::NoOil;
39 } // NoOil approach
40
41 OPM_HOST_DEVICE static constexpr bool isActive()
42 {
43 return false;
44 }
45
46 // Formation volume factor methods
47 template <class Evaluation>
48 OPM_HOST_DEVICE Evaluation inverseFormationVolumeFactor(unsigned /*regionIdx*/,
49 const Evaluation& /*temperature*/,
50 const Evaluation& /*pressure*/,
51 const Evaluation& /*Rs*/) const
52 {
53 return 1.0;
54 }
55
56 template <class Evaluation>
57 OPM_HOST_DEVICE Evaluation saturatedInverseFormationVolumeFactor(unsigned /*regionIdx*/,
58 const Evaluation& /*temperature*/,
59 const Evaluation& /*pressure*/) const
60 {
61 return 1.0;
62 }
63
64 // Dissolution factor methods
65 template <class Evaluation>
66 OPM_HOST_DEVICE Evaluation saturatedGasDissolutionFactor(unsigned /*regionIdx*/,
67 const Evaluation& /*temperature*/,
68 const Evaluation& /*pressure*/) const
69 {
70 return 0.0;
71 }
72
73 template <class Evaluation>
74 OPM_HOST_DEVICE Evaluation saturatedGasDissolutionFactor(unsigned /*regionIdx*/,
75 const Evaluation& /*temperature*/,
76 const Evaluation& /*pressure*/,
77 const Evaluation& /*oilSaturation*/,
78 const Evaluation& /*maxOilSaturation*/) const
79 {
80 return 0.0;
81 }
82
83 // Saturation pressure method
84 template <class Evaluation>
85 OPM_HOST_DEVICE Evaluation saturationPressure(unsigned /*regionIdx*/,
86 const Evaluation& /*temperature*/,
87 const Evaluation& /*Rs*/) const
88 {
89 return 0.0;
90 }
91
92 // Viscosity methods
93 template <class Evaluation>
94 OPM_HOST_DEVICE Evaluation viscosity(unsigned /*regionIdx*/,
95 const Evaluation& /*temperature*/,
96 const Evaluation& /*pressure*/,
97 const Evaluation& /*Rs*/) const
98 {
99 return 0.0;
100 }
101
102 template <class Evaluation>
103 OPM_HOST_DEVICE Evaluation saturatedViscosity(unsigned /*regionIdx*/,
104 const Evaluation& /*temperature*/,
105 const Evaluation& /*pressure*/) const
106 {
107 return 0.0;
108 }
109
110 // Internal energy methods
111 template <class Evaluation>
112 OPM_HOST_DEVICE Evaluation internalEnergy(unsigned /*regionIdx*/,
113 const Evaluation& /*temperature*/,
114 const Evaluation& /*pressure*/,
115 const Evaluation& /*Rs*/) const
116 {
117 return 0.0;
118 }
119
120 // Vaporization parameter methods
121 OPM_HOST_DEVICE void setVapPars(const Scalar /*par1*/, const Scalar /*par2*/) const
122 {
123 }
124
125 // Heat of vaporization
126 OPM_HOST_DEVICE Scalar hVap(unsigned /*regionIdx*/) const
127 {
128 return 0.0;
129 }
130
131 // Mixing energy flag
132 OPM_HOST_DEVICE static constexpr bool mixingEnergy()
133 {
134 return false;
135 }
136
137 // Diffusion coefficient
138 template <class Evaluation>
139 OPM_HOST_DEVICE Evaluation diffusionCoefficient(const Evaluation& /*temperature*/,
140 const Evaluation& /*pressure*/,
141 unsigned /*compIdx*/) const
142 {
143 return 0.0;
144 }
145};
146
147} // namespace Opm
148
149#endif // OPM_NULL_OIL_PVT_HPP
This class represents the Pressure-Volume-Temperature relations of the oil phase in the black-oil mod...
Null object for oil PVT calculations.
Definition NullOilPvt.hpp:33
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30