Volume Weighted Weibull

Initialize a variable with randomly generated numbers following a volume-weighted Weibull distribution

The VolumeWeightedWeibull class generates a spatially randomized distribution of a variable following a Weibull distribution, but weighted by the element volume to account for the fact that larger volumes are more likely to contain defects, and would thus have a reduced strength. This class follows the approach documented in Strack et al. (2015), and using it to describe local strength for fracture models minimizes mesh size dependence.

The randomized value of a given variable used to characterize a strength can be expressed as: (1) where is the median value of the strength variable, is the reference volume, which is the volume of a test specimen that has a median strength equal to , is a uniform random number on the interval from 0 to 1, and is the Weibull modulus.

This has two important differences from using the standard Weibull distribution, which can also be used to define a randomized strength in MOOSE using a combination of the WeibullDistribution object in the stochastic_tools module and the MOOSE RandomIC object:

1. This Weibull distribution is defined by two parameters: the Weibull modulus, , and the median value of the randomized variable, . This in contrast to the standard version, which has three parameters: the Weibull modulus, , the shape parameter, , and the location parameter, . The distribution generated by this Weibull distribution implicitly assumes that . The value for for the standard set of parameters in a Weibull distribution can be computed from and as:

2. The value of the samples from the standard Weibull distribution is scaled by the factor: As a result of this scaling, elements larger than the reference volume typically have decreased strength, and elements smaller than the reference volume have increased strength (because is typically greater than 1).

Input Parameters

  • reference_volumeReference volume (of a test specimen)

    C++ Type:double

    Controllable:No

    Description:Reference volume (of a test specimen)

  • variableThe variable this initial condition is supposed to provide values for.

    C++ Type:VariableName

    Controllable:No

    Description:The variable this initial condition is supposed to provide values for.

  • weibull_modulusWeibull modulus

    C++ Type:double

    Controllable:No

    Description:Weibull modulus

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • legacy_generatorFalseDetermines whether or not the legacy generator (deprecated) should be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Determines whether or not the legacy generator (deprecated) should be used.

  • medianMedian value of property measured in a specimen of volume equal to reference_volume

    C++ Type:double

    Controllable:No

    Description:Median value of property measured in a specimen of volume equal to reference_volume

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • seed0Seed value for the random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:Seed value for the random number generator

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • ignore_uo_dependencyFalseWhen set to true, a UserObject retrieved by this IC will not be executed before the this IC

    Default:False

    C++ Type:bool

    Controllable:No

    Description:When set to true, a UserObject retrieved by this IC will not be executed before the this IC

Advanced Parameters

References

  1. O.E. Strack, R.B. Leavy, and R.M. Brannon. Aleatory uncertainty and scale effects in computational damage models for failure and fragmentation. International Journal for Numerical Methods in Engineering, 102(3-4):468–495, April 2015. doi:10.1002/nme.4699.[BibTeX]