www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PorousFlowRelativePermeabilityBW Class Reference

Material that calculates the Broadbridge-White relative permeability P Broadbridge, I White ``Constant rate rainfall infiltration: A versatile nonlinear model, 1 Analytical solution''. More...

#include <PorousFlowRelativePermeabilityBW.h>

Inheritance diagram for PorousFlowRelativePermeabilityBW:
[legend]

Public Member Functions

 PorousFlowRelativePermeabilityBW (const InputParameters &parameters)
 

Protected Member Functions

virtual Real relativePermeability (Real seff) const override
 Relative permeability equation (must be overriden in derived class) More...
 
virtual Real dRelativePermeability (Real seff) const override
 Derivative of relative permeability with respect to effective saturation. More...
 
virtual void computeQpProperties () override
 
virtual Real effectiveSaturation (Real saturation) const
 Effective saturation of fluid phase. More...
 

Protected Attributes

const Real _sn
 BW's low saturation. More...
 
const Real _ss
 BW's high saturation. More...
 
const Real _kn
 BW's low relative permeability. More...
 
const Real _ks
 BW's high relative permeability. More...
 
const Real _c
 BW's C parameter. More...
 
const Real _scaling
 Relative permeability is multiplied by this quantity. More...
 
VariableName _saturation_variable_name
 Name of (dummy) saturation primary variable. More...
 
const MaterialProperty< std::vector< Real > > & _saturation
 Saturation material property. More...
 
MaterialProperty< Real > & _relative_permeability
 Relative permeability material property. More...
 
MaterialProperty< Real > & _drelative_permeability_ds
 Derivative of relative permeability wrt phase saturation. More...
 
const Real _s_res
 Residual saturation of specified phase. More...
 
const Real _sum_s_res
 Sum of residual saturations over all phases. More...
 
const Real _dseff_ds
 Derivative of effective saturation with respect to saturation. More...
 
const unsigned int _phase_num
 Phase number of fluid. More...
 
const std::string _phase
 Stringified fluid phase number. More...
 

Detailed Description

Material that calculates the Broadbridge-White relative permeability P Broadbridge, I White ``Constant rate rainfall infiltration: A versatile nonlinear model, 1 Analytical solution''.

Water Resources Research 24 (1988) 145–154.

Definition at line 25 of file PorousFlowRelativePermeabilityBW.h.

Constructor & Destructor Documentation

PorousFlowRelativePermeabilityBW::PorousFlowRelativePermeabilityBW ( const InputParameters &  parameters)

Definition at line 39 of file PorousFlowRelativePermeabilityBW.C.

42  _sn(getParam<Real>("Sn")),
43  _ss(getParam<Real>("Ss")),
44  _kn(getParam<Real>("Kn")),
45  _ks(getParam<Real>("Ks")),
46  _c(getParam<Real>("C"))
47 {
48  if (_ss <= _sn)
49  mooseError("In BW relative permeability Sn set to ",
50  _sn,
51  " and Ss set to ",
52  _ss,
53  " but these must obey Ss > Sn");
54  if (_ks <= _kn)
55  mooseError("In BW relative permeability Kn set to ",
56  _kn,
57  " and Ks set to ",
58  _ks,
59  " but these must obey Ks > Kn");
60 }
PorousFlowRelativePermeabilityBase(const InputParameters &parameters)
const Real _ks
BW&#39;s high relative permeability.
const Real _kn
BW&#39;s low relative permeability.
const Real _ss
BW&#39;s high saturation.
const Real _sn
BW&#39;s low saturation.

Member Function Documentation

void PorousFlowRelativePermeabilityBase::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 57 of file PorousFlowRelativePermeabilityBase.C.

58 {
59  // Effective saturation
60  Real seff = effectiveSaturation(_saturation[_qp][_phase_num]);
61  Real relperm, drelperm;
62 
63  if (seff < 0.0)
64  {
65  // Relative permeability is 0 for saturation less than residual
66  relperm = 0.0;
67  drelperm = 0.0;
68  }
69  else if (seff >= 0.0 && seff <= 1)
70  {
71  relperm = relativePermeability(seff);
72  drelperm = dRelativePermeability(seff);
73  }
74  else // seff > 1
75  {
76  // Relative permeability is 1 when fully saturated
77  relperm = 1.0;
78  drelperm = 0.0;
79  }
80 
81  _relative_permeability[_qp] = relperm * _scaling;
82  _drelative_permeability_ds[_qp] = drelperm * _dseff_ds * _scaling;
83 }
const Real _scaling
Relative permeability is multiplied by this quantity.
MaterialProperty< Real > & _relative_permeability
Relative permeability material property.
virtual Real dRelativePermeability(Real seff) const =0
Derivative of relative permeability with respect to effective saturation.
const Real _dseff_ds
Derivative of effective saturation with respect to saturation.
const MaterialProperty< std::vector< Real > > & _saturation
Saturation material property.
const unsigned int _phase_num
Phase number of fluid.
virtual Real effectiveSaturation(Real saturation) const
Effective saturation of fluid phase.
MaterialProperty< Real > & _drelative_permeability_ds
Derivative of relative permeability wrt phase saturation.
virtual Real relativePermeability(Real seff) const =0
Relative permeability equation (must be overriden in derived class)
Real PorousFlowRelativePermeabilityBW::dRelativePermeability ( Real  seff) const
overrideprotectedvirtual

Derivative of relative permeability with respect to effective saturation.

Parameters
seffeffective saturation
Returns
derivative of relative permeability wrt effective saturation

Implements PorousFlowRelativePermeabilityBase.

Definition at line 69 of file PorousFlowRelativePermeabilityBW.C.

70 {
72 }
const Real _ks
BW&#39;s high relative permeability.
const Real _kn
BW&#39;s low relative permeability.
Real dRelativePermeability(Real s, Real c, Real sn, Real ss, Real kn, Real ks)
Derivative of relative permeability with respect to saturation.
const Real _ss
BW&#39;s high saturation.
const Real _sn
BW&#39;s low saturation.
Real PorousFlowRelativePermeabilityBase::effectiveSaturation ( Real  saturation) const
protectedvirtualinherited

Effective saturation of fluid phase.

Parameters
saturationtrue saturation
Returns
effective saturation

Definition at line 86 of file PorousFlowRelativePermeabilityBase.C.

Referenced by PorousFlowRelativePermeabilityBase::computeQpProperties().

87 {
88  return (saturation - _s_res) / (1.0 - _sum_s_res);
89 }
const Real _sum_s_res
Sum of residual saturations over all phases.
const Real _s_res
Residual saturation of specified phase.
void FORTRAN_CALL() saturation(double &P, double &T, int &N, int &nerr)
Real PorousFlowRelativePermeabilityBW::relativePermeability ( Real  seff) const
overrideprotectedvirtual

Relative permeability equation (must be overriden in derived class)

Parameters
seffeffective saturation
Returns
relative permeability

Implements PorousFlowRelativePermeabilityBase.

Definition at line 63 of file PorousFlowRelativePermeabilityBW.C.

64 {
66 }
const Real _ks
BW&#39;s high relative permeability.
const Real _kn
BW&#39;s low relative permeability.
Real relativePermeability(Real s, Real c, Real sn, Real ss, Real kn, Real ks)
Relative permeability as a function of saturation.
const Real _ss
BW&#39;s high saturation.
const Real _sn
BW&#39;s low saturation.

Member Data Documentation

const Real PorousFlowRelativePermeabilityBW::_c
protected

BW's C parameter.

Definition at line 47 of file PorousFlowRelativePermeabilityBW.h.

Referenced by dRelativePermeability(), and relativePermeability().

MaterialProperty<Real>& PorousFlowRelativePermeabilityBase::_drelative_permeability_ds
protectedinherited

Derivative of relative permeability wrt phase saturation.

Definition at line 65 of file PorousFlowRelativePermeabilityBase.h.

Referenced by PorousFlowRelativePermeabilityBase::computeQpProperties().

const Real PorousFlowRelativePermeabilityBase::_dseff_ds
protectedinherited

Derivative of effective saturation with respect to saturation.

Definition at line 74 of file PorousFlowRelativePermeabilityBase.h.

Referenced by PorousFlowRelativePermeabilityBase::computeQpProperties().

const Real PorousFlowRelativePermeabilityBW::_kn
protected

BW's low relative permeability.

Definition at line 41 of file PorousFlowRelativePermeabilityBW.h.

Referenced by dRelativePermeability(), PorousFlowRelativePermeabilityBW(), and relativePermeability().

const Real PorousFlowRelativePermeabilityBW::_ks
protected

BW's high relative permeability.

Definition at line 44 of file PorousFlowRelativePermeabilityBW.h.

Referenced by dRelativePermeability(), PorousFlowRelativePermeabilityBW(), and relativePermeability().

const std::string PorousFlowMaterialBase::_phase
protectedinherited

Stringified fluid phase number.

Definition at line 36 of file PorousFlowMaterialBase.h.

const unsigned int PorousFlowMaterialBase::_phase_num
protectedinherited
MaterialProperty<Real>& PorousFlowRelativePermeabilityBase::_relative_permeability
protectedinherited

Relative permeability material property.

Definition at line 62 of file PorousFlowRelativePermeabilityBase.h.

Referenced by PorousFlowRelativePermeabilityBase::computeQpProperties().

const Real PorousFlowRelativePermeabilityBase::_s_res
protectedinherited
const MaterialProperty<std::vector<Real> >& PorousFlowRelativePermeabilityBase::_saturation
protectedinherited

Saturation material property.

Definition at line 59 of file PorousFlowRelativePermeabilityBase.h.

Referenced by PorousFlowRelativePermeabilityBase::computeQpProperties().

VariableName PorousFlowRelativePermeabilityBase::_saturation_variable_name
protectedinherited

Name of (dummy) saturation primary variable.

Definition at line 56 of file PorousFlowRelativePermeabilityBase.h.

const Real PorousFlowRelativePermeabilityBase::_scaling
protectedinherited

Relative permeability is multiplied by this quantity.

Definition at line 53 of file PorousFlowRelativePermeabilityBase.h.

Referenced by PorousFlowRelativePermeabilityBase::computeQpProperties().

const Real PorousFlowRelativePermeabilityBW::_sn
protected
const Real PorousFlowRelativePermeabilityBW::_ss
protected

BW's high saturation.

Definition at line 38 of file PorousFlowRelativePermeabilityBW.h.

Referenced by dRelativePermeability(), PorousFlowRelativePermeabilityBW(), and relativePermeability().

const Real PorousFlowRelativePermeabilityBase::_sum_s_res
protectedinherited

The documentation for this class was generated from the following files: