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

Generated by: LCOV version 1.14