opm-common
Toggle main menu visibility
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>
19
#include <
opm/material/fluidsystems/blackoilpvt/OilPvtMultiplexer.hpp
>
20
21
namespace
Opm
22
{
23
31
template
<
class
Scalar>
32
class
NullOilPvt
33
{
34
public
:
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
OilPvtMultiplexer.hpp
This class represents the Pressure-Volume-Temperature relations of the oil phase in the black-oil mod...
Opm::NullOilPvt
Null object for oil PVT calculations.
Definition
NullOilPvt.hpp:33
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition
Exceptions.hpp:30
opm
material
fluidsystems
blackoilpvt
NullOilPvt.hpp
Generated by
1.17.0