www.mooseframework.org
PorousFlowCapillaryPressureRSC.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.addParam<Real>("oil_viscosity",
17  "Viscosity of oil (gas) phase. It is assumed this is "
18  "double the water-phase viscosity. (Note that this "
19  "effective saturation is mostly useful for 2-phase, not "
20  "single-phase.)");
21  params.addParam<Real>("scale_ratio",
22  "This is porosity / permeability / beta^2, where beta may "
23  "be chosen by the user. It has dimensions [time]");
24  params.addParam<Real>("shift", "effective saturation is a function of (Pc - shift)");
25  params.addClassDescription("Rogers-Stallybrass-Clements version of effective saturation for the "
26  "water phase, valid for residual saturations = 0, and viscosityOil = "
27  "2 * viscosityWater. seff_water = 1 / sqrt(1 + exp((Pc - shift) / "
28  "scale)), where scale = 0.25 * scale_ratio * oil_viscosity.");
29  return params;
30 }
31 
33  : PorousFlowCapillaryPressure(parameters),
34  _oil_viscosity(getParam<Real>("oil_viscosity")),
35  _scale_ratio(getParam<Real>("scale_ratio")),
36  _shift(getParam<Real>("shift")),
37  _scale(0.25 * _scale_ratio * _oil_viscosity)
38 {
39  // Set _log_ext to false as no capillary pressure curves are implmented in this class
40  _log_ext = false;
41 }
42 
44 {
45  mooseError("PorousFlowCapillaryPressureRSC::capillaryPressure not implemented");
46  return 0.0;
47 }
48 
50 {
51  mooseError("PorousFlowCapillaryPressureRSC::dCapillaryPressure not implemented");
52  return 0.0;
53 }
54 
56 {
57  mooseError("PorousFlowCapillaryPressureRSC::d2CapillaryPressure not implemented");
58  return 0.0;
59 }
60 
61 Real
63 {
65 }
66 
67 Real
69 {
71 }
72 
73 Real
75 {
77 }
Real dEffectiveSaturation(Real pc, Real shift, Real scale)
Derivative of effective saturation wrt capillary pressure.
InputParameters validParams< PorousFlowCapillaryPressure >()
virtual Real d2EffectiveSaturation(Real pc) const override
Second derivative of effective saturation wrt capillary pressure.
const Real _shift
Shift. seff_water = 1/Sqrt(1 + Exp((Pc - shift)/scale)), where scale = 0.25 * scale_ratio * oil_visco...
Base class for capillary pressure for multiphase flow in porous media.
virtual Real dEffectiveSaturation(Real pc) const override
Derivative of effective saturation wrt capillary pressure.
InputParameters validParams< PorousFlowCapillaryPressureRSC >()
virtual Real effectiveSaturation(Real pc) const override
Effective saturation as a function of capillary pressure.
PorousFlowCapillaryPressureRSC(const InputParameters &parameters)
virtual Real capillaryPressureCurve(Real saturation) const override
Raw capillary pressure curve (does not include logarithmic extension)
Real d2EffectiveSaturation(Real pc, Real shift, Real scale)
Second derivative of effective saturation wrt capillary pressure.
bool _log_ext
Flag to use a logarithmic extension for low saturation.
Real effectiveSaturation(Real pc, Real shift, Real scale)
Effective saturation as a function of capillary pressure.
virtual Real d2CapillaryPressureCurve(Real saturation) const override
Second derivative of raw capillary pressure wrt true saturation.
virtual Real dCapillaryPressureCurve(Real saturation) const override
Derivative of raw capillary pressure wrt true saturation.
const Real _scale
Scale = 0.25 * scale_ratio * oil_viscosity.