Particle-size distribution model wherein random samples are drawn from the doubly-truncated two-parameter Rosin-Rammler (Weibull) probability density function: More...
#include <RosinRammler.H>


Public Member Functions | |
| TypeName ("RosinRammler") | |
| Runtime type information. | |
| RosinRammler (const dictionary &dict, Random &rndGen) | |
| Construct from components. | |
| RosinRammler (const RosinRammler &p) | |
| Copy construct. | |
| virtual autoPtr< distributionModel > | clone () const |
| Construct and return a clone. | |
| void | operator= (const RosinRammler &)=delete |
| No copy assignment. | |
| virtual | ~RosinRammler ()=default |
| Destructor. | |
| virtual scalar | sample () const |
| Sample the distribution. | |
| virtual scalar | meanValue () const |
| Return the theoretical mean of the distribution. | |
| Public Member Functions inherited from distributionModel | |
| TypeName ("distributionModel") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, distributionModel, dictionary,(const dictionary &dict, Random &rndGen),(dict, rndGen)) | |
| Declare runtime constructor selection table. | |
| distributionModel (const word &name, const dictionary &dict, Random &rndGen) | |
| Construct from dictionary. | |
| distributionModel (const distributionModel &p) | |
| Copy construct. | |
| virtual | ~distributionModel ()=default |
| Destructor. | |
| virtual scalar | minValue () const |
| Return the minimum of the distribution. | |
| virtual scalar | maxValue () const |
| Return the maximum of the distribution. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from distributionModel | |
| static autoPtr< distributionModel > | New (const dictionary &dict, Random &rndGen) |
| Selector. | |
| Protected Member Functions inherited from distributionModel | |
| virtual void | check () const |
| Check that the distribution model is valid. | |
| Protected Attributes inherited from distributionModel | |
| const dictionary | distributionModelDict_ |
| Coefficients dictionary. | |
| Random & | rndGen_ |
| Reference to the random number generator. | |
| scalar | minValue_ |
| Minimum of the distribution. | |
| scalar | maxValue_ |
| Maximum of the distribution. | |
Particle-size distribution model wherein random samples are drawn from the doubly-truncated two-parameter Rosin-Rammler (Weibull) probability density function:
![\[ f(x; \lambda, n, A, B) =
\frac{
\frac{n}{\lambda}
\left( \frac{x}{\lambda} \right)^{n-1}
\exp\{ -(\frac{x}{\lambda})^n \}
}{
\exp\{- (\frac{A}{\lambda})^n \}
- \exp\{- (\frac{B}{\lambda})^n \}
}
\]](form_553.png)
where
![]() | = | Rosin-Rammler probability density function |
![]() | = | Scale parameter |
![]() | = | Shape parameter |
![]() | = | Sample |
![]() | = | Minimum of the distribution |
![]() | = | Maximum of the distribution |
Constraints:

![$ x \in [B,A] $](form_512.png)


Random samples are generated by the inverse transform sampling technique by using the quantile function of the doubly-truncated two-parameter Rosin-Rammler (Weibull) probability density function:
![\[ x = \lambda \left( q_{min} - \ln (1 - u r) \right)^{1/n}
\]](form_555.png)
with
![\[ r = 1 - \exp(-q_{max} + q_{min})
\]](form_556.png)
![\[ q_{min} = \left(\frac{A}{\lambda}\right)^n
\]](form_557.png)
![\[ q_{max} = \left(\frac{B}{\lambda}\right)^n
\]](form_558.png)
where 

Reference:
Doubly-truncated two-parameter Weibull distribution and its moments (tag:C):
Crénin, F. (2015).
Truncated Weibull Distribution Functions and Moments.
SSRN 2690255.
DOI:10.2139/ssrn.2690255
constant/<CloudProperties>: subModels
{
injectionModels
{
<name>
{
...
sizeDistribution
{
type RosinRammler;
RosinRammlerDistribution
{
lambda <scaleParameterValue>;
n <shapeParameterValue>;
minValue <minValue>;
maxValue <maxValue>;
}
}
}
}
}
where the entries mean:
| Property | Description | Type | Reqd | Deflt |
|---|---|---|---|---|
type | Type name: RosinRammler | word | yes | - |
RosinRammlerDistribution | Distribution settings | dict | yes | - |
lambda | Scale parameter | scalar | yes | - |
n | Shape parameter | scalar | yes | - |
minValue | Minimum of the distribution | scalar | yes | - |
maxValue | Maximum of the distribution | scalar | yes | - |
Definition at line 215 of file RosinRammler.H.
| RosinRammler | ( | const dictionary & | dict, |
| Random & | rndGen ) |
Construct from components.
Definition at line 39 of file RosinRammler.C.
References dict, distributionModel::distributionModel(), distributionModel::distributionModelDict_, Foam::GlobalIOList< Tuple2< scalar, vector > >::typeName, and rndGen.
Referenced by clone(), operator=(), RosinRammler(), and TypeName().


| RosinRammler | ( | const RosinRammler & | p | ) |
Copy construct.
Definition at line 73 of file RosinRammler.C.
References distributionModel::distributionModel(), p, and RosinRammler().

|
virtualdefault |
Destructor.
| TypeName | ( | "RosinRammler" | ) |
Runtime type information.
References dict, p, rndGen, and RosinRammler().

|
inlinevirtual |
Construct and return a clone.
Implements distributionModel.
Definition at line 255 of file RosinRammler.H.
References RosinRammler().

|
delete |
|
virtual |
Sample the distribution.
Implements distributionModel.
Definition at line 83 of file RosinRammler.C.
References Foam::exp(), Foam::log(), distributionModel::maxValue_, distributionModel::minValue_, Foam::pow(), and distributionModel::rndGen_.

|
virtual |
Return the theoretical mean of the distribution.
Implements distributionModel.
Definition at line 93 of file RosinRammler.C.
References Foam::exp(), Foam::gMax(), Foam::gMin(), Foam::Math::incGamma_P(), distributionModel::maxValue_, distributionModel::minValue_, and Foam::pow().
