www.mooseframework.org
PorousFlowCapillaryPressureBW.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
10 
11 template <>
12 InputParameters
14 {
15  InputParameters params = validParams<PorousFlowCapillaryPressure>();
16  params.addRequiredRangeCheckedParam<Real>(
17  "Sn",
18  "Sn >= 0",
19  "Low saturation. This must be < Ss, and non-negative. This is BW's "
20  "initial effective saturation, below which effective saturation never goes "
21  "in their simulations/models. If Kn=0 then Sn is the immobile saturation. "
22  "This form of effective saturation is only correct for Kn small.");
23  params.addRangeCheckedParam<Real>(
24  "Ss",
25  1.0,
26  "Ss <= 1",
27  "High saturation. This must be > Sn and <= 1. Effective saturation "
28  "where porepressure = 0. Effective saturation never exceeds this "
29  "value in BW's simulations/models.");
30  params.addRequiredRangeCheckedParam<Real>(
31  "C", "C > 1", "BW's C parameter. Must be > 1. Typical value would be 1.05.");
32  params.addRequiredRangeCheckedParam<Real>(
33  "las",
34  "las > 0",
35  "BW's lambda_s parameter multiplied by (fluid_density * gravity). Must be "
36  "> 0. Typical value would be 1E5");
37  params.addClassDescription("Broadbridge and White capillary pressure for negligable Kn");
38  return params;
39 }
40 
42  : PorousFlowCapillaryPressure(parameters),
43  _sn(getParam<Real>("Sn")),
44  _ss(getParam<Real>("Ss")),
45  _c(getParam<Real>("C")),
46  _las(getParam<Real>("las"))
47 {
48  if (_ss <= _sn)
49  mooseError("In BW effective saturation Sn set to ",
50  _sn,
51  " and Ss set to ",
52  _ss,
53  " but these must obey Ss > Sn");
54 
55  // Set _log_ext to false as no capillary pressure curves are implmented in this class
56  _log_ext = false;
57 }
58 
60 {
61  mooseError("PorousFlowCapillaryPressureBW::capillaryPressure not implemented");
62  return 0.0;
63 }
64 
66 {
67  mooseError("PorousFlowCapillaryPressureBW::dCapillaryPressure not implemented");
68  return 0.0;
69 }
70 
72 {
73  mooseError("PorousFlowCapillaryPressureBW::d2CapillaryPressure not implemented");
74  return 0.0;
75 }
76 
77 Real
79 {
81 }
82 
83 Real
85 {
87 }
88 
89 Real
91 {
93 }
Real dEffectiveSaturation(Real pc, Real c, Real sn, Real ss, Real las)
Derivative of effective saturation wrt capillary pressure.
virtual Real effectiveSaturation(Real pc) const override
Effective saturation as a function of capillary pressure.
InputParameters validParams< PorousFlowCapillaryPressure >()
virtual Real dEffectiveSaturation(Real pc) const override
Derivative of effective saturation wrt capillary pressure.
PorousFlowCapillaryPressureBW(const InputParameters &parameters)
Real d2EffectiveSaturation(Real pc, Real c, Real sn, Real ss, Real las)
Second derivative of effective saturation wrt capillary pressure.
Real effectiveSaturation(Real pc, Real c, Real sn, Real ss, Real las)
Effective saturation as a function of capillary pressure If pc>=0 this will yield 1...
const Real _las
BWs lambda_s parameter multiplied by fluid density * gravity (>0)
virtual Real capillaryPressureCurve(Real saturation) const override
Raw capillary pressure curve (does not include logarithmic extension)
Base class for capillary pressure for multiphase flow in porous media.
const Real _ss
BW&#39;s Ss parameter.
InputParameters validParams< PorousFlowCapillaryPressureBW >()
const Real _sn
BW&#39;s Sn parameter (initial saturation)
const Real _c
BW&#39;s C parameter (>1)
virtual Real d2EffectiveSaturation(Real pc) const override
Second derivative of effective saturation wrt capillary pressure.
virtual Real d2CapillaryPressureCurve(Real saturation) const override
Second derivative of raw capillary pressure wrt true saturation.
bool _log_ext
Flag to use a logarithmic extension for low saturation.
virtual Real dCapillaryPressureCurve(Real saturation) const override
Derivative of raw capillary pressure wrt true saturation.