LCOV - code coverage report
Current view: top level - src/materials - PorousFlowConstantBiotModulus.C (source / functions) Hit Total Coverage
Test: idaholab/moose porous_flow: #32971 (54bef8) with base c6cf66 Lines: 31 32 96.9 %
Date: 2026-05-29 20:38:56 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : 
      10             : #include "PorousFlowConstantBiotModulus.h"
      11             : 
      12             : registerMooseObject("PorousFlowApp", PorousFlowConstantBiotModulus);
      13             : 
      14             : InputParameters
      15        1163 : PorousFlowConstantBiotModulus::validParams()
      16             : {
      17        1163 :   InputParameters params = PorousFlowMaterialVectorBase::validParams();
      18        3489 :   params.addRangeCheckedParam<Real>(
      19        2326 :       "biot_coefficient", 1.0, "biot_coefficient>=0 & biot_coefficient<=1", "Biot coefficient");
      20        3489 :   params.addRangeCheckedParam<Real>(
      21        2326 :       "fluid_bulk_modulus", 2.0E9, "fluid_bulk_modulus>0", "Fluid bulk modulus");
      22        3489 :   params.addRangeCheckedParam<Real>("solid_bulk_compliance",
      23        2326 :                                     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        2326 :   params.addPrivateParam<std::string>("pf_material_type", "biot_modulus");
      30        1163 :   params.addClassDescription("Computes the Biot Modulus, which is assumed to be constant for all "
      31             :                              "time.  Sometimes 1 / BiotModulus is called storativity");
      32        1163 :   return params;
      33           0 : }
      34             : 
      35         900 : PorousFlowConstantBiotModulus::PorousFlowConstantBiotModulus(const InputParameters & parameters)
      36             :   : PorousFlowMaterialVectorBase(parameters),
      37         900 :     _biot_coefficient(getParam<Real>("biot_coefficient")),
      38        1800 :     _fluid_bulk_modulus(getParam<Real>("fluid_bulk_modulus")),
      39        1800 :     _solid_bulk_compliance(getParam<Real>("solid_bulk_compliance")),
      40         900 :     _porosity(_nodal_material ? getMaterialProperty<Real>("PorousFlow_porosity_nodal")
      41        2700 :                               : getMaterialProperty<Real>("PorousFlow_porosity_qp")),
      42         900 :     _biot_modulus(_nodal_material ? declareProperty<Real>("PorousFlow_constant_biot_modulus_nodal")
      43        1800 :                                   : declareProperty<Real>("PorousFlow_constant_biot_modulus_qp")),
      44        1800 :     _biot_modulus_old(_nodal_material
      45         900 :                           ? getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_nodal")
      46        3600 :                           : getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_qp"))
      47             : {
      48         900 : }
      49             : 
      50             : void
      51      254456 : PorousFlowConstantBiotModulus::initQpStatefulProperties()
      52             : {
      53      254456 :   _biot_modulus[_qp] = 1.0 / ((1.0 - _biot_coefficient) * (_biot_coefficient - _porosity[_qp]) *
      54      254456 :                                   _solid_bulk_compliance +
      55      254456 :                               _porosity[_qp] / _fluid_bulk_modulus);
      56      254456 : }
      57             : 
      58             : void
      59     3871739 : PorousFlowConstantBiotModulus::computeQpProperties()
      60             : {
      61     3871739 :   _biot_modulus[_qp] = _biot_modulus_old[_qp];
      62     3871739 : }

Generated by: LCOV version 1.14