https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowRogersStallybrassClements.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
11
13{
14Real
15effectiveSaturation(Real pc, Real shift, Real scale)
16{
17 Real x = (pc - shift) / scale;
18 Real ex = std::exp(x);
19 return std::pow(1.0 + ex, -0.5);
20}
21
22Real
23dEffectiveSaturation(Real pc, Real shift, Real scale)
24{
25 Real x = (pc - shift) / scale;
26 Real ex = std::exp(x);
27 return -0.5 * ex * std::pow(1.0 + ex, -1.5) / scale;
28}
29
30Real
31d2EffectiveSaturation(Real pc, Real shift, Real scale)
32{
33 Real x = (pc - shift) / scale;
34 Real ex = std::exp(x);
35 return (0.75 * ex * ex * std::pow(1.0 + ex, -2.5) - 0.5 * ex * std::pow(1.0 + ex, -1.5)) / scale /
36 scale;
37}
38}
const std::vector< double > x
Real scale
Rogers-Stallybrass-Clements version of effective saturation as a function of capillary pressure.
Real dEffectiveSaturation(Real pc, Real shift, Real scale)
Derivative of effective saturation wrt capillary pressure.
Real d2EffectiveSaturation(Real pc, Real shift, Real scale)
Second derivative of effective saturation wrt capillary pressure.
Real effectiveSaturation(Real pc, Real shift, Real scale)
Effective saturation as a function of capillary pressure.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real