Particle-size distribution model wherein random samples are drawn from the doubly-truncated two-parameter Rosin-Rammler (Weibull) probability density function: More...
Public Member Functions | |
TypeName ("RosinRammler") | |
Runtime type information. More... | |
RosinRammler (const dictionary &dict, Random &rndGen) | |
Construct from components. More... | |
RosinRammler (const RosinRammler &p) | |
Copy construct. More... | |
virtual autoPtr< distributionModel > | clone () const |
Construct and return a clone. More... | |
void | operator= (const RosinRammler &)=delete |
No copy assignment. More... | |
virtual | ~RosinRammler ()=default |
Destructor. More... | |
virtual scalar | sample () const |
Sample the distribution. More... | |
virtual scalar | meanValue () const |
Return the theoretical mean of the distribution. More... | |
Public Member Functions inherited from distributionModel | |
TypeName ("distributionModel") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, distributionModel, dictionary,(const dictionary &dict, Random &rndGen),(dict, rndGen)) | |
Declare runtime constructor selection table. More... | |
distributionModel (const word &name, const dictionary &dict, Random &rndGen) | |
Construct from dictionary. More... | |
distributionModel (const distributionModel &p) | |
Copy construct. More... | |
virtual autoPtr< distributionModel > | clone () const =0 |
Construct and return a clone. More... | |
virtual | ~distributionModel ()=default |
Destructor. More... | |
virtual scalar | sample () const =0 |
Sample the distribution. More... | |
virtual scalar | minValue () const |
Return the minimum of the distribution. More... | |
virtual scalar | maxValue () const |
Return the maximum of the distribution. More... | |
virtual scalar | meanValue () const =0 |
Additional Inherited Members | |
Static Public Member Functions inherited from distributionModel | |
static autoPtr< distributionModel > | New (const dictionary &dict, Random &rndGen) |
Selector. More... | |
Protected Member Functions inherited from distributionModel | |
virtual void | check () const |
Check that the distribution model is valid. More... | |
Protected Attributes inherited from distributionModel | |
const dictionary | distributionModelDict_ |
Coefficients dictionary. More... | |
Random & | rndGen_ |
Reference to the random number generator. More... | |
scalar | minValue_ |
Minimum of the distribution. More... | |
scalar | maxValue_ |
Maximum of the distribution. More... | |
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 \} } \]
where
\( f(x; \lambda, n, A, B) \) | = | Rosin-Rammler probability density function |
\( \lambda \) | = | Scale parameter |
\( n \) | = | Shape parameter |
\( x \) | = | Sample |
\( A \) | = | Minimum of the distribution |
\( B \) | = | Maximum of the distribution |
Constraints:
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} \]
with
\[ r = 1 - \exp(-q_{max} + q_{min}) \]
\[ q_{min} = \left(\frac{A}{\lambda}\right)^n \]
\[ q_{max} = \left(\frac{B}{\lambda}\right)^n \]
where \( u \) is sample drawn from the uniform probability density function on the unit interval \( (0, 1) \).
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 219 of file RosinRammler.H.
RosinRammler | ( | const dictionary & | dict, |
Random & | rndGen | ||
) |
Construct from components.
Definition at line 46 of file RosinRammler.C.
RosinRammler | ( | const RosinRammler & | p | ) |
Copy construct.
Definition at line 80 of file RosinRammler.C.
|
virtualdefault |
Destructor.
TypeName | ( | "RosinRammler" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Implements distributionModel.
Definition at line 247 of file RosinRammler.H.
|
delete |
No copy assignment.
|
virtual |
Sample the distribution.
Implements distributionModel.
Definition at line 90 of file RosinRammler.C.
References Foam::exp(), Foam::log(), and Foam::pow().
|
virtual |
Return the theoretical mean of the distribution.
Implements distributionModel.
Definition at line 100 of file RosinRammler.C.
References Foam::exp(), Foam::gMax(), Foam::gMin(), Foam::Math::incGamma_P(), and Foam::pow().