www.mooseframework.org
PorousFlowConstantBiotModulus.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 
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<PorousFlowMaterialVectorBase>();
19  params.addRangeCheckedParam<Real>(
20  "biot_coefficient", 1.0, "biot_coefficient>=0 & biot_coefficient<=1", "Biot coefficient");
21  params.addRangeCheckedParam<Real>(
22  "fluid_bulk_modulus", 2.0E9, "fluid_bulk_modulus>0", "Fluid bulk modulus");
23  params.addRangeCheckedParam<Real>("solid_bulk_compliance",
24  0.0,
25  "solid_bulk_compliance>=0.0",
26  "Reciprocal of the drained bulk modulus of the porous "
27  "skeleton. If strain = C * stress, then solid_bulk_compliance "
28  "= de_ij de_kl C_ijkl. If the grain bulk modulus is Kg then "
29  "1/Kg = (1 - biot_coefficient) * solid_bulk_compliance.");
30  params.addPrivateParam<std::string>("pf_material_type", "biot_modulus");
31  params.addClassDescription("Computes the Biot Modulus, which is assumed to be constant for all "
32  "time. Sometimes 1 / BiotModulus is called storativity");
33  return params;
34 }
35 
37  : PorousFlowMaterialVectorBase(parameters),
38  _biot_coefficient(getParam<Real>("biot_coefficient")),
39  _fluid_bulk_modulus(getParam<Real>("fluid_bulk_modulus")),
40  _solid_bulk_compliance(getParam<Real>("solid_bulk_compliance")),
41  _porosity(_nodal_material ? getMaterialProperty<Real>("PorousFlow_porosity_nodal")
42  : getMaterialProperty<Real>("PorousFlow_porosity_qp")),
43  _biot_modulus(_nodal_material ? declareProperty<Real>("PorousFlow_constant_biot_modulus_nodal")
44  : declareProperty<Real>("PorousFlow_constant_biot_modulus_qp")),
45  _biot_modulus_old(_nodal_material
46  ? getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_nodal")
47  : getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_qp"))
48 {
49 }
50 
51 void
53 {
54  _biot_modulus[_qp] = 1.0 / ((1.0 - _biot_coefficient) * (_biot_coefficient - _porosity[_qp]) *
57 }
58 
59 void
61 {
62  _biot_modulus[_qp] = _biot_modulus_old[_qp];
63 }
PorousFlowConstantBiotModulus::PorousFlowConstantBiotModulus
PorousFlowConstantBiotModulus(const InputParameters &parameters)
Definition: PorousFlowConstantBiotModulus.C:36
PorousFlowMaterialVectorBase
Base class for all PorousFlow vector materials.
Definition: PorousFlowMaterialVectorBase.h:23
PorousFlowConstantBiotModulus::_biot_modulus
MaterialProperty< Real > & _biot_modulus
Computed Biot modulus.
Definition: PorousFlowConstantBiotModulus.h:51
validParams< PorousFlowMaterialVectorBase >
InputParameters validParams< PorousFlowMaterialVectorBase >()
Definition: PorousFlowMaterialVectorBase.C:14
validParams< PorousFlowConstantBiotModulus >
InputParameters validParams< PorousFlowConstantBiotModulus >()
Definition: PorousFlowConstantBiotModulus.C:16
registerMooseObject
registerMooseObject("PorousFlowApp", PorousFlowConstantBiotModulus)
PorousFlowConstantBiotModulus::_biot_modulus_old
const MaterialProperty< Real > & _biot_modulus_old
Old value of Biot modulus. This variable is necessary in order to keep Biot modulus constant even if ...
Definition: PorousFlowConstantBiotModulus.h:54
PorousFlowConstantBiotModulus::_fluid_bulk_modulus
const Real _fluid_bulk_modulus
Fluid bulk modulus.
Definition: PorousFlowConstantBiotModulus.h:42
PorousFlowConstantBiotModulus::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: PorousFlowConstantBiotModulus.C:52
PorousFlowConstantBiotModulus::_solid_bulk_compliance
const Real _solid_bulk_compliance
Solid bulk compliance.
Definition: PorousFlowConstantBiotModulus.h:45
PorousFlowConstantBiotModulus.h
PorousFlowConstantBiotModulus::_biot_coefficient
const Real _biot_coefficient
Biot coefficient.
Definition: PorousFlowConstantBiotModulus.h:39
PorousFlowConstantBiotModulus::_porosity
const MaterialProperty< Real > & _porosity
porosity at the nodes or quadpoints. Only the initial value is ever used
Definition: PorousFlowConstantBiotModulus.h:48
PorousFlowConstantBiotModulus
Material designed to provide a time-invariant Biot Modulus, M, where 1 / M = (1 - alpha) * (alpha - p...
Definition: PorousFlowConstantBiotModulus.h:29
PorousFlowConstantBiotModulus::computeQpProperties
virtual void computeQpProperties() override
Definition: PorousFlowConstantBiotModulus.C:60