www.mooseframework.org
PorousFlowConstantBiotModulus.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 
9 
10 template <>
11 InputParameters
13 {
14  InputParameters params = validParams<PorousFlowMaterialVectorBase>();
15  params.addRangeCheckedParam<Real>(
16  "biot_coefficient", 1.0, "biot_coefficient>=0 & biot_coefficient<=1", "Biot coefficient");
17  params.addRangeCheckedParam<Real>(
18  "fluid_bulk_modulus", 2.0E9, "fluid_bulk_modulus>0", "Fluid bulk modulus");
19  params.addRangeCheckedParam<Real>("solid_bulk_compliance",
20  0.0,
21  "solid_bulk_compliance>=0.0",
22  "Reciprocal of the drained bulk modulus of the porous "
23  "skeleton. If strain = C * stress, then solid_bulk_compliance "
24  "= de_ij de_kl C_ijkl. If the grain bulk modulus is Kg then "
25  "1/Kg = (1 - biot_coefficient) * solid_bulk_compliance.");
26  params.addClassDescription("Computes the Biot Modulus, which is assumed to be constant for all "
27  "time. Sometimes 1 / BiotModulus is called storativity");
28  return params;
29 }
30 
32  : PorousFlowMaterialVectorBase(parameters),
33  _biot_coefficient(getParam<Real>("biot_coefficient")),
34  _fluid_bulk_modulus(getParam<Real>("fluid_bulk_modulus")),
35  _solid_bulk_compliance(getParam<Real>("solid_bulk_compliance")),
36  _porosity(_nodal_material ? getMaterialProperty<Real>("PorousFlow_porosity_nodal")
37  : getMaterialProperty<Real>("PorousFlow_porosity_qp")),
38  _biot_modulus(_nodal_material ? declareProperty<Real>("PorousFlow_constant_biot_modulus_nodal")
39  : declareProperty<Real>("PorousFlow_constant_biot_modulus_qp")),
40  _biot_modulus_old(_nodal_material
41  ? getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_nodal")
42  : getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_qp"))
43 {
44 }
45 
46 void
48 {
49  _biot_modulus[_qp] = 1.0 / ((1.0 - _biot_coefficient) * (_biot_coefficient - _porosity[_qp]) *
52 }
53 
54 void
56 {
57  _biot_modulus[_qp] = _biot_modulus_old[_qp];
58 }
PorousFlowConstantBiotModulus(const InputParameters &parameters)
InputParameters validParams< PorousFlowConstantBiotModulus >()
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.
InputParameters validParams< PorousFlowMaterialVectorBase >()
const Real _biot_coefficient
Biot coefficient.
Base class for all PorousFlow vector materials.
virtual void initQpStatefulProperties() override
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