LCOV - code coverage report
Current view: top level - src/materials - PorousFlowConstantBiotModulus.C (source / functions) Hit Total Coverage
Test: idaholab/moose porous_flow: #31405 (292dce) with base fef103 Lines: 31 32 96.9 %
Date: 2025-09-04 07:55: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        2359 : PorousFlowConstantBiotModulus::validParams()
      16             : {
      17        2359 :   InputParameters params = PorousFlowMaterialVectorBase::validParams();
      18        7077 :   params.addRangeCheckedParam<Real>(
      19        4718 :       "biot_coefficient", 1.0, "biot_coefficient>=0 & biot_coefficient<=1", "Biot coefficient");
      20        7077 :   params.addRangeCheckedParam<Real>(
      21        4718 :       "fluid_bulk_modulus", 2.0E9, "fluid_bulk_modulus>0", "Fluid bulk modulus");
      22        7077 :   params.addRangeCheckedParam<Real>("solid_bulk_compliance",
      23        4718 :                                     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        4718 :   params.addPrivateParam<std::string>("pf_material_type", "biot_modulus");
      30        2359 :   params.addClassDescription("Computes the Biot Modulus, which is assumed to be constant for all "
      31             :                              "time.  Sometimes 1 / BiotModulus is called storativity");
      32        2359 :   return params;
      33           0 : }
      34             : 
      35        1836 : PorousFlowConstantBiotModulus::PorousFlowConstantBiotModulus(const InputParameters & parameters)
      36             :   : PorousFlowMaterialVectorBase(parameters),
      37        1836 :     _biot_coefficient(getParam<Real>("biot_coefficient")),
      38        3672 :     _fluid_bulk_modulus(getParam<Real>("fluid_bulk_modulus")),
      39        3672 :     _solid_bulk_compliance(getParam<Real>("solid_bulk_compliance")),
      40        1836 :     _porosity(_nodal_material ? getMaterialProperty<Real>("PorousFlow_porosity_nodal")
      41        5508 :                               : getMaterialProperty<Real>("PorousFlow_porosity_qp")),
      42        1836 :     _biot_modulus(_nodal_material ? declareProperty<Real>("PorousFlow_constant_biot_modulus_nodal")
      43        3672 :                                   : declareProperty<Real>("PorousFlow_constant_biot_modulus_qp")),
      44        3672 :     _biot_modulus_old(_nodal_material
      45        1836 :                           ? getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_nodal")
      46        7344 :                           : getMaterialPropertyOld<Real>("PorousFlow_constant_biot_modulus_qp"))
      47             : {
      48        1836 : }
      49             : 
      50             : void
      51      407690 : PorousFlowConstantBiotModulus::initQpStatefulProperties()
      52             : {
      53      407690 :   _biot_modulus[_qp] = 1.0 / ((1.0 - _biot_coefficient) * (_biot_coefficient - _porosity[_qp]) *
      54      407690 :                                   _solid_bulk_compliance +
      55      407690 :                               _porosity[_qp] / _fluid_bulk_modulus);
      56      407690 : }
      57             : 
      58             : void
      59     5664658 : PorousFlowConstantBiotModulus::computeQpProperties()
      60             : {
      61     5664658 :   _biot_modulus[_qp] = _biot_modulus_old[_qp];
      62     5664658 : }

Generated by: LCOV version 1.14