www.mooseframework.org
VolumeWeightedWeibull.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 
10 #include "VolumeWeightedWeibull.h"
11 
12 registerMooseObject("TensorMechanicsApp", VolumeWeightedWeibull);
13 
15 
16 InputParameters
18 {
19  InputParameters params = RandomICBase::validParams();
20  params.addRequiredParam<Real>("reference_volume", "Reference volume (of a test specimen)");
21  params.addRequiredParam<Real>("weibull_modulus", "Weibull modulus");
22  params.addParam<Real>(
23  "median",
24  "Median value of property measured in a specimen of volume equal to reference_volume");
25  params.addClassDescription("Initialize a variable with randomly generated numbers following "
26  "a volume-weighted Weibull distribution");
27  return params;
28 }
29 
30 VolumeWeightedWeibull::VolumeWeightedWeibull(const InputParameters & parameters)
31  : RandomICBase(parameters),
32  _reference_volume(getParam<Real>("reference_volume")),
33  _weibull_modulus(getParam<Real>("weibull_modulus")),
34  _median(getParam<Real>("median"))
35 {
36 }
37 
38 Real
39 VolumeWeightedWeibull::value(const Point & /*p*/)
40 {
41  const Real & element_volume = _current_elem->volume();
42 
43  return _median *
44  std::pow(_reference_volume * std::log(generateRandom()) / (element_volume * std::log(0.5)),
45  1.0 / _weibull_modulus);
46 }
VolumeWeightedWeibull::_median
const Real _median
The median value of the strength for specimens having volume equal to the reference volume.
Definition: VolumeWeightedWeibull.h:48
VolumeWeightedWeibull::VolumeWeightedWeibull
VolumeWeightedWeibull(const InputParameters &parameters)
Definition: VolumeWeightedWeibull.C:30
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
VolumeWeightedWeibull.h
VolumeWeightedWeibull::validParams
static InputParameters validParams()
Definition: VolumeWeightedWeibull.C:17
VolumeWeightedWeibull::_weibull_modulus
const Real _weibull_modulus
The Weibull modulus.
Definition: VolumeWeightedWeibull.h:46
VolumeWeightedWeibull
VolumeWeightedWeibull generates a spatially randomized field that follows a Weibull distribution weig...
Definition: VolumeWeightedWeibull.h:33
validParams
InputParameters validParams()
defineLegacyParams
defineLegacyParams(VolumeWeightedWeibull)
VolumeWeightedWeibull::value
virtual Real value(const Point &p) override
Definition: VolumeWeightedWeibull.C:39
registerMooseObject
registerMooseObject("TensorMechanicsApp", VolumeWeightedWeibull)
VolumeWeightedWeibull::_reference_volume
const Real _reference_volume
The reference volume of the test specimen from which a median strength is obtained.
Definition: VolumeWeightedWeibull.h:44