LCOV - code coverage report
Current view: top level - src/ics - VolumeWeightedWeibull.C (source / functions) Hit Total Coverage
Test: idaholab/moose solid_mechanics: #31405 (292dce) with base fef103 Lines: 16 17 94.1 %
Date: 2025-09-04 07:57:23 Functions: 3 3 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 "VolumeWeightedWeibull.h"
      11             : 
      12             : registerMooseObject("SolidMechanicsApp", VolumeWeightedWeibull);
      13             : 
      14             : InputParameters
      15          42 : VolumeWeightedWeibull::validParams()
      16             : {
      17          42 :   InputParameters params = RandomICBase::validParams();
      18          84 :   params.addRequiredParam<Real>("reference_volume", "Reference volume (of a test specimen)");
      19          84 :   params.addRequiredParam<Real>("weibull_modulus", "Weibull modulus");
      20          84 :   params.addParam<Real>(
      21             :       "median",
      22             :       "Median value of property measured in a specimen of volume equal to reference_volume");
      23          42 :   params.addClassDescription("Initialize a variable with randomly generated numbers following "
      24             :                              "a volume-weighted Weibull distribution");
      25          42 :   return params;
      26           0 : }
      27             : 
      28          21 : VolumeWeightedWeibull::VolumeWeightedWeibull(const InputParameters & parameters)
      29             :   : RandomICBase(parameters),
      30          21 :     _reference_volume(getParam<Real>("reference_volume")),
      31          42 :     _weibull_modulus(getParam<Real>("weibull_modulus")),
      32          63 :     _median(getParam<Real>("median"))
      33             : {
      34          21 : }
      35             : 
      36             : Real
      37      300000 : VolumeWeightedWeibull::value(const Point & /*p*/)
      38             : {
      39      600000 :   return _median * std::pow(_reference_volume * std::log(generateRandom()) /
      40      300000 :                                 (_current_elem_volume * std::log(0.5)),
      41      300000 :                             1.0 / _weibull_modulus);
      42             : }

Generated by: LCOV version 1.14