www.mooseframework.org
PorousFlowCapillaryPressureBC.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "PorousFlowBrooksCorey.h"
12 
14 
17 {
19  params.addRequiredParam<Real>("lambda", "Brooks-Corey exponent lambda");
21  "pe", "pe > 0", "Brooks-Corey entry pressure. Must be positive");
22  params.addClassDescription("Brooks-Corey capillary pressure");
23  return params;
24 }
25 
27  : PorousFlowCapillaryPressure(parameters),
28  _lambda(getParam<Real>("lambda")),
29  _pe(getParam<Real>("pe"))
30 {
31 }
32 
33 Real
34 PorousFlowCapillaryPressureBC::capillaryPressureCurve(Real saturation, unsigned /*qp*/) const
35 {
38 }
39 
40 Real
41 PorousFlowCapillaryPressureBC::dCapillaryPressureCurve(Real saturation, unsigned /*qp*/) const
42 {
45 }
46 
47 Real
48 PorousFlowCapillaryPressureBC::d2CapillaryPressureCurve(Real saturation, unsigned /*qp*/) const
49 {
52  _dseff_ds;
53 }
54 
55 Real
57 {
59 }
60 
61 Real
63 {
65 }
66 
67 Real
69 {
71 }
virtual Real d2EffectiveSaturation(Real pc, unsigned qp=0) const override
Second derivative of effective saturation wrt capillary pressure.
Real capillaryPressure(Real seff, Real pe, Real lambda, Real pc_max)
Capillary pressure as a function of effective saturation.
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
Real effectiveSaturation(Real pc, Real pe, Real lambda)
Effective saturation as a function of capillary pressure Note: seff = 1 for p >= 0.
virtual Real dCapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Derivative of raw capillary pressure wrt true saturation.
Real dCapillaryPressure(Real seff, Real pe, Real lambda, Real pc_max)
Derivative of capillary pressure wrt effective saturation.
static InputParameters validParams()
Real effectiveSaturationFromSaturation(Real saturation) const
Effective saturation of liquid phase given liquid saturation and residual liquid saturation.
Real saturation(Real pc, unsigned qp=0) const
Saturation as a function of capillary pressure.
virtual Real effectiveSaturation(Real pc, unsigned qp=0) const override
Effective saturation as a function of capillary pressure.
const Real _lambda
Brooks-Corey exponent lambda.
void addRequiredParam(const std::string &name, const std::string &doc_string)
Base class for capillary pressure for multiphase flow in porous media.
const Real _pc_max
Maximum capillary pressure (Pa). Note: must be <= 0.
Real d2CapillaryPressure(Real seff, Real pe, Real lambda, Real pc_max)
Second derivative of capillary pressure wrt effective saturation.
virtual Real d2CapillaryPressureCurve(Real saturation, unsigned qp=0) const override
Second derivative of raw capillary pressure wrt true saturation.
Real dEffectiveSaturation(Real pc, Real pe, Real lambda)
Derivative of effective saturation wrt porepressure.
Brooks-Corey effective saturation, capillary pressure and relative permeability functions.
Real d2EffectiveSaturation(Real pc, Real pe, Real lambda)
Second derivative of effective saturation wrt porepressure.
registerMooseObject("PorousFlowApp", PorousFlowCapillaryPressureBC)
virtual Real dEffectiveSaturation(Real pc, unsigned qp=0) const override
Derivative of effective saturation wrt capillary pressure.
const Real _pe
Threshold entry pressure.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
const Real _dseff_ds
Derivative of effective saturation with respect to saturation.
PorousFlowCapillaryPressureBC(const InputParameters &parameters)
virtual Real capillaryPressureCurve(Real saturation, unsigned qp=0) const override
Raw capillary pressure curve (does not include logarithmic extension)