OGS
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
w
z
Enumerations
b
c
d
e
f
g
i
l
m
n
o
p
s
t
u
v
Enumerator
a
b
c
d
e
f
g
h
l
m
n
p
r
s
t
v
y
Classes
Class List
Class Index
Class Hierarchy
Files
File List
File Members
All
a
b
c
d
e
f
g
i
k
m
n
o
p
r
s
t
v
w
x
Functions
a
c
d
e
f
g
i
m
o
p
r
s
t
v
w
Variables
Typedefs
Enumerations
Macros
b
c
g
m
n
o
p
r
s
t
▼
OGS
►
OpenGeoSys 6.5.4-293-gce72897f source code documentation
►
OGS CTests—Project Files
►
OGS Input File Parameters—Quality Assurance
►
OGS Input File Parameters
BulkMappingDocuPage
Todo List
OGS Input File Parameters—List of incomplete documentation pages
Bibliography
►
Namespaces
►
Classes
▼
Files
▼
File List
►
Applications
►
BaseLib
►
build
►
ChemistryLib
Documentation
►
GeoLib
►
InfoLib
▼
MaterialLib
►
Adsorption
►
Fluid
►
FractureModels
►
MPL
▼
PorousMedium
►
Permeability
▼
UnsaturatedProperty
►
CapillaryPressure
▼
RelativePermeability
►
CreateRelativePermeabilityModel.cpp
►
CreateRelativePermeabilityModel.h
NonWettingPhaseBrooksCoreyOilGas.cpp
►
NonWettingPhaseBrooksCoreyOilGas.h
NonWettingPhaseVanGenuchten.cpp
►
NonWettingPhaseVanGenuchten.h
►
RelativePermeability.h
►
RelativePermeabilityCurve.h
WettingPhaseBrooksCoreyOilGas.cpp
►
WettingPhaseBrooksCoreyOilGas.h
WettingPhaseVanGenuchten.cpp
►
WettingPhaseVanGenuchten.h
►
CreatePorousMediaProperties.cpp
►
CreatePorousMediaProperties.h
PorousMediaProperties.cpp
►
PorousMediaProperties.h
►
SolidModels
►
Utils
►
PhysicalConstant.h
►
MathLib
►
MeshGeoToolsLib
►
MeshLib
►
MeshToolsLib
►
NumLib
►
ParameterLib
►
ProcessLib
►
File Members
NonWettingPhaseVanGenuchten.cpp
Go to the documentation of this file.
1
13
#include "
NonWettingPhaseVanGenuchten.h
"
14
15
#include <algorithm>
16
#include <cmath>
17
18
namespace
MaterialLib
19
{
20
namespace
PorousMedium
21
{
22
double
NonWettingPhaseVanGenuchten::getValue
(
const
double
saturation_w)
const
23
{
24
const
double
S = std::clamp(saturation_w,
25
_saturation_r
+
_minor_offset
,
26
_saturation_max
-
_minor_offset
);
27
const
double
Se = (S -
_saturation_r
) / (
_saturation_max
-
_saturation_r
);
28
const
double
krel =
29
std::cbrt(1.0 - Se) * std::pow(1.0 - std::pow(Se, 1.0 /
_m
), 2.0 *
_m
);
30
return
std::max(
_krel_min
, krel);
31
}
22
double
NonWettingPhaseVanGenuchten::getValue
(
const
double
saturation_w)
const
{
…
}
32
33
double
NonWettingPhaseVanGenuchten::getdValue
(
const
double
saturation_w)
const
34
{
35
const
double
S = std::clamp(saturation_w,
36
_saturation_r
+
_minor_offset
,
37
_saturation_max
-
_minor_offset
);
38
const
double
Se = (S -
_saturation_r
) / (
_saturation_max
-
_saturation_r
);
39
const
double
cbrt1_Se = std::cbrt(1.0 - Se);
40
const
double
temp_val = 1.0 - std::pow(Se, 1.0 /
_m
);
41
return
(-std::pow(temp_val, 2. *
_m
) / (3. * cbrt1_Se * cbrt1_Se) -
42
2. * cbrt1_Se * std::pow(temp_val, 2. *
_m
- 1.) *
43
std::pow(Se, (1. -
_m
) /
_m
)) /
44
(
_saturation_max
-
_saturation_r
);
45
}
33
double
NonWettingPhaseVanGenuchten::getdValue
(
const
double
saturation_w)
const
{
…
}
46
}
// namespace PorousMedium
47
}
// namespace MaterialLib
NonWettingPhaseVanGenuchten.h
MaterialLib::PorousMedium::NonWettingPhaseVanGenuchten::getdValue
double getdValue(const double saturation_w) const override
Definition
NonWettingPhaseVanGenuchten.cpp:33
MaterialLib::PorousMedium::NonWettingPhaseVanGenuchten::_krel_min
const double _krel_min
Minimum relative permeability.
Definition
NonWettingPhaseVanGenuchten.h:72
MaterialLib::PorousMedium::NonWettingPhaseVanGenuchten::getValue
double getValue(const double saturation_w) const override
Definition
NonWettingPhaseVanGenuchten.cpp:22
MaterialLib::PorousMedium::NonWettingPhaseVanGenuchten::_m
const double _m
Exponent m, m in [0, 1], n=1/(1-m).
Definition
NonWettingPhaseVanGenuchten.h:71
MaterialLib::PorousMedium::RelativePermeability::_saturation_max
const double _saturation_max
Maximum saturation.
Definition
RelativePermeability.h:50
MaterialLib::PorousMedium::RelativePermeability::_minor_offset
const double _minor_offset
Definition
RelativePermeability.h:47
MaterialLib::PorousMedium::RelativePermeability::_saturation_r
const double _saturation_r
Residual saturation.
Definition
RelativePermeability.h:49
MaterialLib
Definition
ConstantFluidProperty.h:18
MaterialLib
PorousMedium
UnsaturatedProperty
RelativePermeability
NonWettingPhaseVanGenuchten.cpp
Generated by
1.12.0