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

Material designed to provide a time-invariant Biot Modulus, M, where 1 / M = (1 - alpha) * (alpha - phi) * C + phi / Kf . More...

#include <PorousFlowConstantBiotModulus.h>

Inheritance diagram for PorousFlowConstantBiotModulus:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 PorousFlowConstantBiotModulus (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 

Protected Attributes

const Real _biot_coefficient
 Biot coefficient. More...
 
const Real _fluid_bulk_modulus
 Fluid bulk modulus. More...
 
const Real _solid_bulk_compliance
 Solid bulk compliance. More...
 
const MaterialProperty< Real > & _porosity
 porosity at the nodes or quadpoints. Only the initial value is ever used More...
 
MaterialProperty< Real > & _biot_modulus
 Computed Biot modulus. More...
 
const MaterialProperty< Real > & _biot_modulus_old
 Old value of Biot modulus. This variable is necessary in order to keep Biot modulus constant even if porosity is changing. More...
 
const unsigned int _num_phases
 Number of phases. More...
 
const unsigned int _num_components
 Number of fluid components. More...
 
const unsigned int _num_var
 Number of PorousFlow variables. More...
 

Detailed Description

Material designed to provide a time-invariant Biot Modulus, M, where 1 / M = (1 - alpha) * (alpha - phi) * C + phi / Kf .

Here alpha = Biot coefficient (assumed constant) phi = initial value of porosity C = drained porous-solid bulk compliance (1 / bulk modulus) Kf = fluid bulk modulus (assumed constant)

Definition at line 24 of file PorousFlowConstantBiotModulus.h.

Constructor & Destructor Documentation

◆ PorousFlowConstantBiotModulus()

PorousFlowConstantBiotModulus::PorousFlowConstantBiotModulus ( const InputParameters parameters)

Definition at line 35 of file PorousFlowConstantBiotModulus.C.

36  : PorousFlowMaterialVectorBase(parameters),
37  _biot_coefficient(getParam<Real>("biot_coefficient")),
38  _fluid_bulk_modulus(getParam<Real>("fluid_bulk_modulus")),
39  _solid_bulk_compliance(getParam<Real>("solid_bulk_compliance")),
40  _porosity(_nodal_material ? getMaterialProperty<Real>("PorousFlow_porosity_nodal")
41  : getMaterialProperty<Real>("PorousFlow_porosity_qp")),
42  _biot_modulus(_nodal_material ? declareProperty<Real>("PorousFlow_constant_biot_modulus_nodal")
43  : declareProperty<Real>("PorousFlow_constant_biot_modulus_qp")),
44  _biot_modulus_old(_nodal_material
45  ? getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_nodal")
46  : getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_qp"))
47 {
48 }
MaterialProperty< Real > & _biot_modulus
Computed Biot modulus.
const MaterialProperty< Real > & _biot_modulus_old
Old value of Biot modulus. This variable is necessary in order to keep Biot modulus constant even if ...
const Real _fluid_bulk_modulus
Fluid bulk modulus.
const Real _biot_coefficient
Biot coefficient.
const Real _solid_bulk_compliance
Solid bulk compliance.
const MaterialProperty< Real > & _porosity
porosity at the nodes or quadpoints. Only the initial value is ever used
PorousFlowMaterialVectorBase(const InputParameters &parameters)

Member Function Documentation

◆ computeQpProperties()

void PorousFlowConstantBiotModulus::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 59 of file PorousFlowConstantBiotModulus.C.

60 {
61  _biot_modulus[_qp] = _biot_modulus_old[_qp];
62 }
MaterialProperty< Real > & _biot_modulus
Computed Biot modulus.
const MaterialProperty< Real > & _biot_modulus_old
Old value of Biot modulus. This variable is necessary in order to keep Biot modulus constant even if ...

◆ initQpStatefulProperties()

void PorousFlowConstantBiotModulus::initQpStatefulProperties ( )
overrideprotectedvirtual

Definition at line 51 of file PorousFlowConstantBiotModulus.C.

52 {
53  _biot_modulus[_qp] = 1.0 / ((1.0 - _biot_coefficient) * (_biot_coefficient - _porosity[_qp]) *
56 }
MaterialProperty< Real > & _biot_modulus
Computed Biot modulus.
const Real _fluid_bulk_modulus
Fluid bulk modulus.
const Real _biot_coefficient
Biot coefficient.
const Real _solid_bulk_compliance
Solid bulk compliance.
const MaterialProperty< Real > & _porosity
porosity at the nodes or quadpoints. Only the initial value is ever used

◆ validParams()

InputParameters PorousFlowConstantBiotModulus::validParams ( )
static

Definition at line 15 of file PorousFlowConstantBiotModulus.C.

16 {
18  params.addRangeCheckedParam<Real>(
19  "biot_coefficient", 1.0, "biot_coefficient>=0 & biot_coefficient<=1", "Biot coefficient");
20  params.addRangeCheckedParam<Real>(
21  "fluid_bulk_modulus", 2.0E9, "fluid_bulk_modulus>0", "Fluid bulk modulus");
22  params.addRangeCheckedParam<Real>("solid_bulk_compliance",
23  0.0,
24  "solid_bulk_compliance>=0.0",
25  "Reciprocal of the drained bulk modulus of the porous "
26  "skeleton. If strain = C * stress, then solid_bulk_compliance "
27  "= de_ij de_kl C_ijkl. If the grain bulk modulus is Kg then "
28  "1/Kg = (1 - biot_coefficient) * solid_bulk_compliance.");
29  params.addPrivateParam<std::string>("pf_material_type", "biot_modulus");
30  params.addClassDescription("Computes the Biot Modulus, which is assumed to be constant for all "
31  "time. Sometimes 1 / BiotModulus is called storativity");
32  return params;
33 }
void addPrivateParam(const std::string &name, const T &value)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
void addRangeCheckedParam(const std::string &name, const T &value, const std::string &parsed_function, const std::string &doc_string)

Member Data Documentation

◆ _biot_coefficient

const Real PorousFlowConstantBiotModulus::_biot_coefficient
protected

Biot coefficient.

Definition at line 36 of file PorousFlowConstantBiotModulus.h.

Referenced by initQpStatefulProperties().

◆ _biot_modulus

MaterialProperty<Real>& PorousFlowConstantBiotModulus::_biot_modulus
protected

Computed Biot modulus.

Definition at line 48 of file PorousFlowConstantBiotModulus.h.

Referenced by computeQpProperties(), and initQpStatefulProperties().

◆ _biot_modulus_old

const MaterialProperty<Real>& PorousFlowConstantBiotModulus::_biot_modulus_old
protected

Old value of Biot modulus. This variable is necessary in order to keep Biot modulus constant even if porosity is changing.

Definition at line 51 of file PorousFlowConstantBiotModulus.h.

Referenced by computeQpProperties().

◆ _fluid_bulk_modulus

const Real PorousFlowConstantBiotModulus::_fluid_bulk_modulus
protected

Fluid bulk modulus.

Definition at line 39 of file PorousFlowConstantBiotModulus.h.

Referenced by initQpStatefulProperties().

◆ _num_components

const unsigned int PorousFlowMaterialVectorBase::_num_components
protectedinherited

◆ _num_phases

const unsigned int PorousFlowMaterialVectorBase::_num_phases
protectedinherited

◆ _num_var

const unsigned int PorousFlowMaterialVectorBase::_num_var
protectedinherited

◆ _porosity

const MaterialProperty<Real>& PorousFlowConstantBiotModulus::_porosity
protected

porosity at the nodes or quadpoints. Only the initial value is ever used

Definition at line 45 of file PorousFlowConstantBiotModulus.h.

Referenced by initQpStatefulProperties().

◆ _solid_bulk_compliance

const Real PorousFlowConstantBiotModulus::_solid_bulk_compliance
protected

Solid bulk compliance.

Definition at line 42 of file PorousFlowConstantBiotModulus.h.

Referenced by initQpStatefulProperties().


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