Permalink
Please sign in to comment.
Browse files
Merge pull request #12746 from aeslaughter/distributions-12720
Improve DistributionInterface
- Loading branch information...
Showing
with
981 additions
and 122 deletions.
- +4 −4 framework/include/distributions/Distribution.h
- +54 −2 framework/include/distributions/DistributionInterface.h
- +1 −1 framework/include/ics/RandomIC.h
- +0 −6 framework/include/outputs/Output.h
- +1 −1 framework/include/samplers/Sampler.h
- +1 −1 framework/src/distributions/Distribution.C
- +6 −5 framework/src/distributions/DistributionInterface.C
- +0 −12 framework/src/outputs/Output.C
- +10 −0 modules/stochastic_tools/doc/content/bib/stochastic_tools.bib
- +31 −0 modules/stochastic_tools/doc/content/source/distributions/JohnsonSBDistribution.md
- +30 −0 modules/stochastic_tools/doc/content/source/distributions/LogisticDistribution.md
- +8 −8 modules/stochastic_tools/include/distributions/BoostDistribution.h
- +62 −0 modules/stochastic_tools/include/distributions/JohnsonSBDistribution.h
- +44 −0 modules/stochastic_tools/include/distributions/LogisticDistribution.h
- +17 −13 modules/stochastic_tools/include/distributions/NormalDistribution.h
- +19 −3 modules/stochastic_tools/include/distributions/TruncatedNormalDistribution.h
- +7 −3 modules/stochastic_tools/include/distributions/UniformDistribution.h
- +8 −3 modules/stochastic_tools/include/distributions/WeibullDistribution.h
- +107 −0 modules/stochastic_tools/src/distributions/JohnsonSBDistribution.C
- +68 −0 modules/stochastic_tools/src/distributions/LogisticDistribution.C
- +25 −18 modules/stochastic_tools/src/distributions/NormalDistribution.C
- +48 −12 modules/stochastic_tools/src/distributions/TruncatedNormalDistribution.C
- +29 −9 modules/stochastic_tools/src/distributions/UniformDistribution.C
- +37 −10 modules/stochastic_tools/src/distributions/WeibullDistribution.C
- +51 −0 modules/stochastic_tools/test/include/utils/TestDistributionDirectPostprocessor.h
- +1 −1 modules/stochastic_tools/test/include/utils/TestDistributionPostprocessor.h
- +52 −0 modules/stochastic_tools/test/src/utils/TestDistributionDirectPostprocessor.C
- +3 −0 modules/stochastic_tools/test/tests/distributions/gold/johnsonsb_out.csv
- +3 −0 modules/stochastic_tools/test/tests/distributions/gold/logistic_out.csv
- +1 −0 modules/stochastic_tools/test/tests/distributions/gold/normal_direct_out.csv
- +59 −0 modules/stochastic_tools/test/tests/distributions/johnsonsb.i
- +57 −0 modules/stochastic_tools/test/tests/distributions/logistic.i
- +57 −0 modules/stochastic_tools/test/tests/distributions/normal_direct.i
- +43 −0 modules/stochastic_tools/test/tests/distributions/normal_direct_type_error.i
- +37 −10 modules/stochastic_tools/test/tests/distributions/tests
@@ -0,0 +1,31 @@ | |||
# JohnsonSBDistribution | |||
|
|||
## Description | |||
|
|||
The Johnson Special Bounded (SB) distribution [cite:johnson1994continuous] | |||
is related to the normal distribution. Four parameters | |||
are needed: $\gamma$, $\delta$, $\lambda$, and $\epsilon$. It is a continuous distribution defined on | |||
bounded range $\epsilon \leq x \leq \epsilon + \lambda$, and the distribution can be symmetric or | |||
asymmetric. | |||
|
|||
Probability Density Function: | |||
|
|||
\begin{equation} | |||
f(x) = \tfrac{\delta}{\lambda\sqrt{2\pi} z(1-z)} exp(-\tfrac{1}{2}(\gamma + \delta ln(\tfrac{z}{1-z}))^2),\,\textrm{where}\, z \equiv \tfrac{x-\zeta}{\lambda} | |||
\end{equation} | |||
|
|||
Cumulative Density Function: | |||
|
|||
\begin{equation} | |||
F(x) = \Phi(\gamma + \delta ln \tfrac{z}{1-z}),\,\textrm{where}\, z = \tfrac{x-\epsilon}{\lambda} | |||
\end{equation} | |||
|
|||
!syntax description /Distributions/JohnsonSBDistribution | |||
|
|||
!syntax parameters /Distributions/JohnsonSBDistribution | |||
|
|||
!syntax inputs /Distributions/JohnsonSBDistribution | |||
|
|||
!syntax children /Distributions/JohnsonSBDistribution | |||
|
|||
!bibtex bibliography |
@@ -0,0 +1,30 @@ | |||
# LogisticDistribution | |||
|
|||
## Description | |||
|
|||
The logistic distribution is a continuous distribution defined with a location ($\alpha$) and | |||
shape ($\beta$) parameters. | |||
|
|||
Probability Density Function: | |||
|
|||
\begin{equation} | |||
z(x) = \exp{-\frac{(x - \alpha)}{\beta}} | |||
f(x) = \frac{z(x)}{(\alpha * (1.0 + z)^2)} | |||
\end{equation} | |||
|
|||
Cumulative Density Function: | |||
|
|||
\begin{equation} | |||
F(x) = \frac{1}{1+z(x)} | |||
\end{equation} | |||
|
|||
|
|||
!syntax description /Distributions/LogisticDistribution | |||
|
|||
!syntax parameters /Distributions/LogisticDistribution | |||
|
|||
!syntax inputs /Distributions/LogisticDistribution | |||
|
|||
!syntax children /Distributions/LogisticDistribution | |||
|
|||
!bibtex bibliography |
@@ -0,0 +1,62 @@ | |||
//* This file is part of the MOOSE framework | |||
//* https://www.mooseframework.org | |||
//* | |||
//* All rights reserved, see COPYRIGHT for full restrictions | |||
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT | |||
//* | |||
//* Licensed under LGPL 2.1, please see LICENSE for details | |||
//* https://www.gnu.org/licenses/lgpl-2.1.html | |||
|
|||
#ifndef JOHNSONSBDISTRIBUTION_H | |||
#define JOHNSONSBDISTRIBUTION_H | |||
|
|||
#include "NormalDistribution.h" | |||
|
|||
class JohnsonSBDistribution; | |||
|
|||
template <> | |||
InputParameters validParams<JohnsonSBDistribution>(); | |||
|
|||
/** | |||
* A class used to generate a Johnson SB distribution | |||
*/ | |||
class JohnsonSBDistribution : public NormalDistribution | |||
{ | |||
public: | |||
JohnsonSBDistribution(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; | |||
|
|||
Real pdf(const Real & x, | |||
const Real & a, | |||
const Real & b, | |||
const Real & alpha_1, | |||
const Real & alpha_2) const; | |||
Real cdf(const Real & x, | |||
const Real & a, | |||
const Real & b, | |||
const Real & alpha_1, | |||
const Real & alpha_2) const; | |||
Real quantile(const Real & p, | |||
const Real & a, | |||
const Real & b, | |||
const Real & alpha_1, | |||
const Real & alpha_2) const; | |||
|
|||
protected: | |||
/// The lower location parameter, a | |||
const Real & _lower; | |||
|
|||
/// The upper location parameter, b | |||
const Real & _upper; | |||
|
|||
/// The first shape parameter, alpha_1 | |||
const Real & _alpha_1; | |||
|
|||
/// The second shape parameter, alpha_2 | |||
const Real & _alpha_2; | |||
}; | |||
|
|||
#endif |

Oops, something went wrong.
0 comments on commit
29442b0