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

A class used to generate a three-parameter Weibull distribution. More...

#include <WeibullDistribution.h>

Inheritance diagram for WeibullDistribution:
[legend]

Public Member Functions

 WeibullDistribution (const InputParameters &parameters)
 
virtual Real pdf (const Real &x) const override
 
virtual Real cdf (const Real &x) const override
 
virtual Real quantile (const Real &p) const override
 

Static Public Member Functions

static InputParameters validParams ()
 
static Real pdf (const Real &x, const Real &location, const Real &scale, const Real &shape)
 
static Real cdf (const Real &x, const Real &location, const Real &scale, const Real &shape)
 
static Real quantile (const Real &p, const Real &location, const Real &scale, const Real &shape)
 

Protected Attributes

const Real & _a
 The location parameter (a or low) More...
 
const Real & _b
 The scale parameter (b or lambda) More...
 
const Real & _c
 The shape parameter (c or k) More...
 

Detailed Description

A class used to generate a three-parameter Weibull distribution.

Definition at line 22 of file WeibullDistribution.h.

Constructor & Destructor Documentation

◆ WeibullDistribution()

WeibullDistribution::WeibullDistribution ( const InputParameters &  parameters)

Definition at line 29 of file WeibullDistribution.C.

30  : Distribution(parameters),
31  _a(getParam<Real>("location")),
32  _b(getParam<Real>("scale")),
33  _c(getParam<Real>("shape"))
34 {
35 }

Member Function Documentation

◆ cdf() [1/2]

Real WeibullDistribution::cdf ( const Real &  x) const
overridevirtual

Definition at line 84 of file WeibullDistribution.C.

85 {
86  TIME_SECTION(_perf_cdf);
87  return cdf(x, _a, _b, _c);
88 }

◆ cdf() [2/2]

Real WeibullDistribution::cdf ( const Real &  x,
const Real &  location,
const Real &  scale,
const Real &  shape 
)
static

Definition at line 53 of file WeibullDistribution.C.

57 {
58  if (x <= location)
59  return 0.0;
60  else
61  {
62  const Real y = (x - location) / scale;
63  return 1.0 - std::exp(-std::pow(y, shape));
64  }
65 }

◆ pdf() [1/2]

Real WeibullDistribution::pdf ( const Real &  x) const
overridevirtual

Definition at line 77 of file WeibullDistribution.C.

78 {
79  TIME_SECTION(_perf_pdf);
80  return pdf(x, _a, _b, _c);
81 }

◆ pdf() [2/2]

Real WeibullDistribution::pdf ( const Real &  x,
const Real &  location,
const Real &  scale,
const Real &  shape 
)
static

Definition at line 38 of file WeibullDistribution.C.

42 {
43  if (x <= location)
44  return 0.0;
45  else
46  {
47  const Real y = (x - location) / scale;
48  return shape / scale * std::pow(y, shape - 1.0) * std::exp(-std::pow(y, shape));
49  }
50 }

◆ quantile() [1/2]

Real WeibullDistribution::quantile ( const Real &  p) const
overridevirtual

Definition at line 91 of file WeibullDistribution.C.

92 {
93  TIME_SECTION(_perf_quantile);
94  return quantile(p, _a, _b, _c);
95 }

◆ quantile() [2/2]

Real WeibullDistribution::quantile ( const Real &  p,
const Real &  location,
const Real &  scale,
const Real &  shape 
)
static

Definition at line 68 of file WeibullDistribution.C.

72 {
73  return location + scale * std::pow(-std::log(1 - p), 1.0 / shape);
74 }

◆ validParams()

InputParameters WeibullDistribution::validParams ( )
static

Definition at line 19 of file WeibullDistribution.C.

20 {
21  InputParameters params = Distribution::validParams();
22  params.addClassDescription("Three-parameter Weibull distribution.");
23  params.addRequiredParam<Real>("location", "Location parameter (a or low)");
24  params.addRequiredRangeCheckedParam<Real>("scale", "scale > 0", "Scale parameter (b or lambda)");
25  params.addRequiredRangeCheckedParam<Real>("shape", "shape > 0", "Shape parameter (c or k)");
26  return params;
27 }

Member Data Documentation

◆ _a

const Real& WeibullDistribution::_a
protected

The location parameter (a or low)

Definition at line 40 of file WeibullDistribution.h.

Referenced by cdf(), pdf(), and quantile().

◆ _b

const Real& WeibullDistribution::_b
protected

The scale parameter (b or lambda)

Definition at line 43 of file WeibullDistribution.h.

Referenced by cdf(), pdf(), and quantile().

◆ _c

const Real& WeibullDistribution::_c
protected

The shape parameter (c or k)

Definition at line 46 of file WeibullDistribution.h.

Referenced by cdf(), pdf(), and quantile().


The documentation for this class was generated from the following files:
WeibullDistribution::_b
const Real & _b
The scale parameter (b or lambda)
Definition: WeibullDistribution.h:43
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
validParams
InputParameters validParams()
WeibullDistribution::quantile
virtual Real quantile(const Real &p) const override
Definition: WeibullDistribution.C:91
WeibullDistribution::_c
const Real & _c
The shape parameter (c or k)
Definition: WeibullDistribution.h:46
WeibullDistribution::cdf
virtual Real cdf(const Real &x) const override
Definition: WeibullDistribution.C:84
WeibullDistribution::_a
const Real & _a
The location parameter (a or low)
Definition: WeibullDistribution.h:40
WeibullDistribution::pdf
virtual Real pdf(const Real &x) const override
Definition: WeibullDistribution.C:77