LISASMDCalcMethod2.H
Go to the documentation of this file.
1{
2 // calculate the new diameter with the standard 1D Rosin Rammler
3 // distribution. Calculation of the mean radius based on SMR rs.
4 // Coefficient factorGamma depends on nExp. Note that Reitz either used
5 // (Schmidt et al., 1999-01-0496) or skipped (Senecal et al.) this factor!
6 // scalar factorGamma = 0.75*sqrt(mathematicalConstant::pi); //nExp=2
7 scalar factorGamma = 1.;
8 scalar delta = dD/factorGamma;
9
10 // dD is the SMD, and the delta is calculated using gamma
11 // function. Here we assume nExp = 2
12 scalar minValue = dD/10.0;
13 scalar maxValue = dD;
14
15 // The pdf value for 4.0*delta is already very small.
16 // scalar maxValue = delta*4.0;
17
18 if (maxValue - minValue < SMALL)
19 {
20 minValue = maxValue/20.0;
21 }
22
24
25 scalar nExp = 3;
26 FixedList<scalar, 500> rrd;
27 scalar probFactorMin = exp(-pow(minValue/delta, nExp));
28 scalar probFactorMax = exp(-pow(maxValue/delta, nExp));
30
32 {
33 scalar xx = minValue + range*n/500;
34 rrd[n] = (probFactorMin - exp(-pow(xx/delta, nExp)))*probFactor;
35 }
36
37
38 bool success = false;
39
40 scalar y = rndGen.sample01<scalar>();
41 label k = 0;
42
43 while(!success && (k<500))
44 {
45 if (rrd[k] > y)
46 {
47 success = true;
48 }
49 k++;
50 }
51
52 x = minValue + range*(k - 0.5)/500.0;
53}
scalar minValue
scalar probFactor
scalar range
label k
scalar probFactorMax
scalar maxValue
bool success
FixedList< scalar, 500 > rrd
scalar delta
scalar nExp
scalar probFactorMin
scalar y
label n
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:333
Random rndGen
Definition: createFields.H:23