https://mooseframework.inl.gov
Loading...
Searching...
No Matches
porous_flow
unit
src
PorousFlowRogersStallybrassClementsTest.C
Go to the documentation of this file.
1
//* This file is part of the MOOSE framework
2
//* https://mooseframework.inl.gov
3
//*
4
//* All rights reserved, see COPYRIGHT for full restrictions
5
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6
//*
7
//* Licensed under LGPL 2.1, please see LICENSE for details
8
//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10
#include "gtest/gtest.h"
11
12
#include "
PorousFlowRogersStallybrassClements.h
"
13
14
const
double
eps
= 1.0E-8;
15
16
TEST
(
PorousFlowRogersStallybrassClements
, sat)
17
{
18
EXPECT_NEAR(0.0,
PorousFlowRogersStallybrassClements::effectiveSaturation
(50, 0.7, 0.5), 1.0E-5);
19
EXPECT_NEAR(std::pow(2.0, -0.5),
20
PorousFlowRogersStallybrassClements::effectiveSaturation
(1.1, 1.1, 4.4),
21
1.0E-5);
22
EXPECT_NEAR(std::pow(1.0 + std::exp(1.0), -0.5),
23
PorousFlowRogersStallybrassClements::effectiveSaturation
(5.5, 1.1, 4.4),
24
1.0E-5);
25
EXPECT_NEAR(1.0,
PorousFlowRogersStallybrassClements::effectiveSaturation
(-50, 0.7, 0.5), 1.0E-5);
26
}
27
28
TEST
(
PorousFlowRogersStallybrassClements
, dsat)
29
{
30
Real fd;
31
EXPECT_NEAR(0.0,
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(50, 0.7, 0.5), 1.0E-5);
32
fd = (
PorousFlowRogersStallybrassClements::effectiveSaturation
(1.1 +
eps
, 1.1, 4.4) -
33
PorousFlowRogersStallybrassClements::effectiveSaturation
(1.1, 1.1, 4.4)) /
34
eps
;
35
EXPECT_NEAR(fd,
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(1.1, 1.1, 4.4), 1.0E-5);
36
fd = (
PorousFlowRogersStallybrassClements::effectiveSaturation
(5.5 +
eps
, 1.1, 4.4) -
37
PorousFlowRogersStallybrassClements::effectiveSaturation
(5.5, 1.1, 4.4)) /
38
eps
;
39
EXPECT_NEAR(fd,
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(5.5, 1.1, 4.4), 1.0E-5);
40
EXPECT_NEAR(
41
0.0,
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(-50, 0.7, 0.5), 1.0E-5);
42
}
43
44
TEST
(
PorousFlowRogersStallybrassClements
, d2sat)
45
{
46
Real fd;
47
EXPECT_NEAR(
48
0.0,
PorousFlowRogersStallybrassClements::d2EffectiveSaturation
(50, 0.7, 0.5), 1.0E-5);
49
fd = (
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(1.1 +
eps
, 1.1, 4.4) -
50
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(1.1, 1.1, 4.4)) /
51
eps
;
52
EXPECT_NEAR(
53
fd,
PorousFlowRogersStallybrassClements::d2EffectiveSaturation
(1.1, 1.1, 4.4), 1.0E-5);
54
fd = (
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(5.5 +
eps
, 1.1, 4.4) -
55
PorousFlowRogersStallybrassClements::dEffectiveSaturation
(5.5, 1.1, 4.4)) /
56
eps
;
57
EXPECT_NEAR(
58
fd,
PorousFlowRogersStallybrassClements::d2EffectiveSaturation
(5.5, 1.1, 4.4), 1.0E-5);
59
EXPECT_NEAR(
60
0.0,
PorousFlowRogersStallybrassClements::d2EffectiveSaturation
(-50, 0.7, 0.5), 1.0E-5);
61
}
eps
const double eps
Definition
PorousFlowRogersStallybrassClementsTest.C:14
TEST
TEST(PorousFlowRogersStallybrassClements, sat)
Definition
PorousFlowRogersStallybrassClementsTest.C:16
PorousFlowRogersStallybrassClements.h
PorousFlowRogersStallybrassClements
Rogers-Stallybrass-Clements version of effective saturation as a function of capillary pressure.
Definition
PorousFlowRogersStallybrassClements.h:23
PorousFlowRogersStallybrassClements::dEffectiveSaturation
Real dEffectiveSaturation(Real pc, Real shift, Real scale)
Derivative of effective saturation wrt capillary pressure.
Definition
PorousFlowRogersStallybrassClements.C:23
PorousFlowRogersStallybrassClements::d2EffectiveSaturation
Real d2EffectiveSaturation(Real pc, Real shift, Real scale)
Second derivative of effective saturation wrt capillary pressure.
Definition
PorousFlowRogersStallybrassClements.C:31
PorousFlowRogersStallybrassClements::effectiveSaturation
Real effectiveSaturation(Real pc, Real shift, Real scale)
Effective saturation as a function of capillary pressure.
Definition
PorousFlowRogersStallybrassClements.C:15
Generated on Fri Aug 21 2026 13:41:31 for https://mooseframework.inl.gov by
1.9.8