www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
VolumeWeightedWeibull Class Reference

VolumeWeightedWeibull generates a spatially randomized field that follows a Weibull distribution weighted by the factor (V_ref/V_el)^1/m, where V_ref is a reference volume from which the experimental data is obtained, V_el is the finite element volume, and m is the Weibull modulus, to account for the fact that larger material samples are more likely to contain defects. More...

#include <VolumeWeightedWeibull.h>

Inheritance diagram for VolumeWeightedWeibull:
[legend]

Public Member Functions

 VolumeWeightedWeibull (const InputParameters &parameters)
 
virtual Real value (const Point &p) override
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

const Real _reference_volume
 The reference volume of the test specimen from which a median strength is obtained. More...
 
const Real _weibull_modulus
 The Weibull modulus. More...
 
const Real _median
 The median value of the strength for specimens having volume equal to the reference volume. More...
 

Detailed Description

VolumeWeightedWeibull generates a spatially randomized field that follows a Weibull distribution weighted by the factor (V_ref/V_el)^1/m, where V_ref is a reference volume from which the experimental data is obtained, V_el is the finite element volume, and m is the Weibull modulus, to account for the fact that larger material samples are more likely to contain defects.

This follows the approach of Strack, Leavy, and Brannon, IJNME (2015) https://doi.org/10.1002/nme

Definition at line 33 of file VolumeWeightedWeibull.h.

Constructor & Destructor Documentation

◆ VolumeWeightedWeibull()

VolumeWeightedWeibull::VolumeWeightedWeibull ( const InputParameters &  parameters)

Definition at line 30 of file VolumeWeightedWeibull.C.

31  : RandomICBase(parameters),
32  _reference_volume(getParam<Real>("reference_volume")),
33  _weibull_modulus(getParam<Real>("weibull_modulus")),
34  _median(getParam<Real>("median"))
35 {
36 }

Member Function Documentation

◆ validParams()

InputParameters VolumeWeightedWeibull::validParams ( )
static

Definition at line 17 of file VolumeWeightedWeibull.C.

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 }

◆ value()

Real VolumeWeightedWeibull::value ( const Point &  p)
overridevirtual

Definition at line 39 of file VolumeWeightedWeibull.C.

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 }

Member Data Documentation

◆ _median

const Real VolumeWeightedWeibull::_median
protected

The median value of the strength for specimens having volume equal to the reference volume.

Definition at line 48 of file VolumeWeightedWeibull.h.

Referenced by value().

◆ _reference_volume

const Real VolumeWeightedWeibull::_reference_volume
protected

The reference volume of the test specimen from which a median strength is obtained.

Definition at line 44 of file VolumeWeightedWeibull.h.

Referenced by value().

◆ _weibull_modulus

const Real VolumeWeightedWeibull::_weibull_modulus
protected

The Weibull modulus.

Definition at line 46 of file VolumeWeightedWeibull.h.

Referenced by value().


The documentation for this class was generated from the following files:
VolumeWeightedWeibull::_median
const Real _median
The median value of the strength for specimens having volume equal to the reference volume.
Definition: VolumeWeightedWeibull.h:48
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
VolumeWeightedWeibull::_weibull_modulus
const Real _weibull_modulus
The Weibull modulus.
Definition: VolumeWeightedWeibull.h:46
validParams
InputParameters validParams()
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