www.mooseframework.org
PorousFlowCapillaryPressureVG.h
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 
8 #ifndef POROUSFLOWCAPILLARYPRESSUREVG_H
9 #define POROUSFLOWCAPILLARYPRESSUREVG_H
10 
12 
14 
15 template <>
17 
25 {
26 public:
27  PorousFlowCapillaryPressureVG(const InputParameters & parameters);
28 
29  virtual Real capillaryPressureCurve(Real saturation) const override;
30  virtual Real dCapillaryPressureCurve(Real saturation) const override;
31  virtual Real d2CapillaryPressureCurve(Real saturation) const override;
32 
33  virtual Real effectiveSaturation(Real pc) const override;
34  virtual Real dEffectiveSaturation(Real pc) const override;
35  virtual Real d2EffectiveSaturation(Real pc) const override;
36 
37 protected:
39  const Real _m;
41  const Real _alpha;
43  const Real _s_scale;
45  const Real _pc_sscale;
46 };
47 
48 #endif // POROUSFLOWCAPILLARYPRESSUREVG_H
virtual Real dCapillaryPressureCurve(Real saturation) const override
Derivative of raw capillary pressure wrt true saturation.
const Real _m
van Genuchten exponent m
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.
virtual Real d2EffectiveSaturation(Real pc) const override
Second derivative of effective saturation wrt capillary pressure.
virtual Real dEffectiveSaturation(Real pc) const override
Derivative of effective saturation wrt capillary pressure.
virtual Real d2CapillaryPressureCurve(Real saturation) const override
Second derivative of raw capillary pressure wrt true saturation.
const Real _alpha
van Genuchten capillary coefficient alpha
const Real _s_scale
capillary pressure = f(Seff * s_scale) - pc_sscale, where f is the van Genuchten function. For almost all simulations s_scale=1 will be appropriate
virtual Real effectiveSaturation(Real pc) const override
Effective saturation as a function of capillary pressure.
InputParameters validParams< PorousFlowCapillaryPressureVG >()
const Real _pc_sscale
pc_sscale = f(s_scale), where f is the van Genuchten function
void FORTRAN_CALL() saturation(double &P, double &T, int &N, int &nerr)
PorousFlowCapillaryPressureVG(const InputParameters &parameters)
van Genuchten form of capillary pressure.