www.mooseframework.org
PorousFlowConstantThermalExpansionCoefficient.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 
16 {
18  params.addRangeCheckedParam<Real>(
19  "biot_coefficient", 1.0, "biot_coefficient>=0 & biot_coefficient<=1", "Biot coefficient");
20  params.addRangeCheckedParam<Real>("fluid_coefficient",
21  2.1E-4,
22  "fluid_coefficient>=0",
23  "Volumetric coefficient of thermal expansion for the fluid");
25  "drained_coefficient",
26  "drained_coefficient>=0.0",
27  "Volumetric coefficient of thermal expansion of the drained porous skeleton (ie the porous "
28  "rock without fluid, or with a fluid that is free to move in and out of the rock)");
29  params.addPrivateParam<std::string>("pf_material_type", "thermal_expansion");
30  params.addClassDescription("Computes the effective thermal expansion coefficient, (biot_coeff - "
31  "porosity) * drained_coefficient + porosity * fluid_coefficient.");
32  return params;
33 }
34 
36  const InputParameters & parameters)
37  : PorousFlowMaterialVectorBase(parameters),
38  _biot_coefficient(getParam<Real>("biot_coefficient")),
39  _fluid_coefficient(getParam<Real>("fluid_coefficient")),
40  _drained_coefficient(getParam<Real>("drained_coefficient")),
41  _porosity(_nodal_material ? getMaterialProperty<Real>("PorousFlow_porosity_nodal")
42  : getMaterialProperty<Real>("PorousFlow_porosity_qp")),
43  _coeff(_nodal_material
44  ? declareProperty<Real>("PorousFlow_constant_thermal_expansion_coefficient_nodal")
45  : declareProperty<Real>("PorousFlow_constant_thermal_expansion_coefficient_qp")),
46  _coeff_old(_nodal_material ? getMaterialPropertyOld<Real>(
47  "PorousFlow_constant_thermal_expansion_coefficient_nodal")
48  : getMaterialPropertyOld<Real>(
49  "PorousFlow_constant_thermal_expansion_coefficient_qp"))
50 {
51 }
52 
53 void
55 {
58 }
59 
60 void
62 {
63  _coeff[_qp] = _coeff_old[_qp];
64 }
MaterialProperty< Real > & _coeff
Computed volumetric thermal expansion coefficient.
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
void addPrivateParam(const std::string &name, const T &value)
Material designed to provide a time-invariant volumetric thermal expansion coefficient A = * (alpha -...
registerMooseObject("PorousFlowApp", PorousFlowConstantThermalExpansionCoefficient)
Base class for all PorousFlow vector materials.
const Real _drained_coefficient
Drained porous-skeleton volumetric thermal expansion coefficient.
const Real _fluid_coefficient
Fluid volumetric thermal expansion coefficient.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< Real > & _coeff_old
Old value of the volumetric thermal expansion coefficient. This variable is necessary in order to kee...
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)
const MaterialProperty< Real > & _porosity
porosity at the nodes or quadpoints. Only the initial value is ever used