Particle-size distribution model wherein random samples are drawn from the two-parameter Rosin-Rammler (Weibull) probability density function corrected to take into account varying number of particles per parcels for fixed-mass parcels. More...
Public Member Functions | |
TypeName ("massRosinRammler") | |
Runtime type information. More... | |
massRosinRammler (const dictionary &dict, Random &rndGen) | |
Construct from components. More... | |
massRosinRammler (const massRosinRammler &p) | |
Copy construct. More... | |
virtual autoPtr< distributionModel > | clone () const |
Construct and return a clone. More... | |
void | operator= (const massRosinRammler &)=delete |
No copy assignment. More... | |
virtual | ~massRosinRammler ()=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 two-parameter Rosin-Rammler (Weibull) probability density function corrected to take into account varying number of particles per parcels for fixed-mass parcels.
"There is a factor of \_form#466 difference between the size distribution probability density function of individual particles and modeled parcels of particles, \_form#467, because the submodel parameter, \_form#468 (number of particles per parcel) is based on a fixed mass per parcel which weights the droplet distribution by a factor proportional to \_form#469 (i.e. \_form#470@_fakenl)." (YHD:p. 1374-1375).
massRosinRammler
should be preferred over RosinRammler
when parcelBasisType
is based on mass:
parcelBasisType mass;
The doubly-truncated mass-corrected Rosin-Rammler probability density function:
\[ f(x; \lambda, n, A, B) = x^3 \frac{n}{\lambda} \left( \frac{x}{\lambda} \right)^{n-1} \frac{ \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 mass-corrected Rosin-Rammler (Weibull) probability density function:
\[ d = \lambda \, Q(a, u)^{1/n} \]
with
\[ a = \frac{3}{n} + 1 \]
where \( Q(z_1, z_2) \) is the inverse of regularised lower incomplete gamma function, and \( u \) is a sample drawn from the uniform probability density function on the interval \( (x, y) \):
\[ x = \gamma \left( a, \frac{A}{\lambda}^n \right) \]
\[ y = \gamma \left( a, \frac{B}{\lambda}^n \right) \]
where \( \gamma(z_1, z_2) \) is the lower incomplete gamma function.
Reference:
Standard model (tag:YHD): Yoon, S. S., Hewson, J. C., DesJardin, P. E., Glaze, D. J., Black, A. R., & Skaggs, R. R. (2004). Numerical modeling and experimental measurements of a high speed solid-cone water spray for use in fire suppression applications. International Journal of Multiphase Flow, 30(11), 1369-1388. DOI:10.1016/j.ijmultiphaseflow.2004.07.006
constant/<CloudProperties>
: subModels { injectionModels { <name> { ... parcelBasisType mass; ... sizeDistribution { type massRosinRammler; massRosinRammlerDistribution { lambda <scaleParameterValue>; n <shapeParameterValue>; minValue <minValue>; maxValue <maxValue>; } } } } }
where the entries mean:
Property | Description | Type | Reqd | Deflt |
---|---|---|---|---|
type | Type name: massRosinRammler | word | yes | - |
massRosinRammlerDistribution | 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 | - |
lambda
(or d
) is called "characteristic
droplet size", and n
"empirical dimensionless constant to specify
the distribution width, sometimes referred to as the dispersion
coefficient." (YHD:p. 1374).Definition at line 249 of file massRosinRammler.H.
massRosinRammler | ( | const dictionary & | dict, |
Random & | rndGen | ||
) |
Construct from components.
Definition at line 46 of file massRosinRammler.C.
massRosinRammler | ( | const massRosinRammler & | p | ) |
Copy construct.
Definition at line 69 of file massRosinRammler.C.
|
virtualdefault |
Destructor.
TypeName | ( | "massRosinRammler" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Implements distributionModel.
Definition at line 277 of file massRosinRammler.H.
|
delete |
No copy assignment.
|
virtual |
Sample the distribution.
Implements distributionModel.
Definition at line 82 of file massRosinRammler.C.
References Foam::Math::incGamma_P(), Foam::Math::invIncGamma(), Foam::pow(), and x.
|
virtual |
Return the theoretical mean of the distribution.
Implements distributionModel.
Definition at line 102 of file massRosinRammler.C.