https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PorousFlowConstantBiotModulus.C
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
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}
34
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}
49
50void
57
58void
registerMooseObject("PorousFlowApp", PorousFlowConstantBiotModulus)
void addPrivateParam(const std::string &name, const T &value)
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)
Material designed to provide a time-invariant Biot Modulus, M, where 1 / M = (1 - alpha) * (alpha - p...
const MaterialProperty< Real > & _porosity
porosity at the nodes or quadpoints. Only the initial value is ever used
const MaterialProperty< Real > & _biot_modulus_old
Old value of Biot modulus. This variable is necessary in order to keep Biot modulus constant even if ...
MaterialProperty< Real > & _biot_modulus
Computed Biot modulus.
const Real _solid_bulk_compliance
Solid bulk compliance.
const Real _fluid_bulk_modulus
Fluid bulk modulus.
PorousFlowConstantBiotModulus(const InputParameters &parameters)
const Real _biot_coefficient
Biot coefficient.
Base class for all PorousFlow vector materials.