60 coeffsDict_(dict.
subDict(typeName+
"Coeffs")),
90 label cellI = p.
cell();
91 scalar pressure = spray_.p()[cellI];
92 scalar temperature = spray_.T()[cellI];
93 scalar Taverage = p.
T() + (temperature - p.
T())/3.0;
96 for(label i=0; i<Ns; i++)
98 Winv += Y[i][cellI]/spray_.gasProperties()[i].W();
104 scalar rhoAverage = pressure/R/Taverage;
106 scalar sigma = fuels.
sigma(pressure, p.
T(), p.
X());
112 scalar WeberNumber = p.
We(vel, rhoAverage, sigma);
117 scalar muFuel = fuels.
mu(pressure, p.
T(), p.
X());
118 scalar rhoFuel = fuels.
rho(1.0
e+5, p.
T(), p.
X());
119 scalar nuFuel = muFuel/rhoFuel;
123 scalar uGas =
mag(vel & uDir);
133 scalar
U =
mag(p.
U());
137 scalar Q = rhoAverage/rhoFuel;
140 spray_.injectors()[label(p.
injector())].properties();
144 Info <<
"Warning: This atomization model is not suitable for multihole injector." <<
endl
145 <<
"Only the first hole will be used." <<
endl;
155 scalar
h = (p.
position() - itPosition) & direction;
159 scalar time = pWalk/
mag(p.
U());
161 scalar elapsedTime = spray_.runTime().
value();
167 p.
d() =
min(hSheet,p.
d());
169 if(WeberNumber > 27.0/16.0)
173 scalar kNeg = Q*
pow(U, 2.0)*rhoFuel/sigma;
175 scalar derivativePos =
sqrt
180 scalar derivativeNeg =
182 8.0*
pow(nuFuel, 2.0)*
pow(kNeg, 3.0)
184 - 3.0*sigma/2.0/rhoFuel*
pow(kNeg, 2.0)
189 4.0*
pow(nuFuel, 2.0)*
pow(kNeg, 4.0)
190 + Q*
pow(U, 2.0)*
pow(kNeg, 2.0)
191 - sigma*
pow(kNeg, 3.0)/rhoFuel
199 for(label i=0; i<40; i++)
202 k = kPos - (derivativePos/((derivativeNeg-derivativePos)/(kNeg-kPos)));
206 8.0*
pow(nuFuel, 2.0)*
pow(k, 3.0)
208 - 3.0*sigma/2.0/rhoFuel*
pow(k, 2.0)
213 4.0*
pow(nuFuel, 2.0)*
pow(k, 4.0)
214 + Q*
pow(U, 2.0)*
pow(k, 2.0)
215 - sigma*
pow(k, 3.0)/rhoFuel
222 derivativePos = derivativek;
227 derivativeNeg = derivativek;
231 if(
mag(k-kOld)/k < 1
e-4)
241 - 2.0 * nuFuel *
pow(k, 2.0)
244 4.0*
pow(nuFuel, 2.0)*
pow(k, 4.0)
245 + Q*
pow(U, 2.0)*
pow(k, 2.0)
246 - sigma*
pow(k, 3.0)/rhoFuel
258 rhoAverage*
pow(U, 2.0)
262 scalar J = pWalk*p.
d()/2.0;
264 tau =
pow(3.0*cTau_,2.0/3.0)*
cbrt(J*sigma/(
sqr(Q)*
pow(U,4.0)*rhoFuel));
276 pow(0.5 + 1.5 * muFuel/
pow((rhoFuel*sigma*dL), 0.5), 0.5)
281 scalar lisaExp = 0.27;
282 scalar ambientPressure = 1.0e+5;
284 scalar pRatio = spray_.ambientPressure()/ambientPressure;
286 dD = dD*
pow(pRatio,lisaExp);
298 for(label i = 0; i < Nf ; i++)
301 if(fuels.
properties()[i].pv(spray_.ambientPressure(), Td) >= 0.999*spray_.ambientPressure())
307 scalar tBoilingSurface = Td;
311 for(label k=0; k< Niter ; k++)
313 scalar pBoil = fuels.
properties()[i].pv(pressure, tBoilingSurface);
317 tBoilingSurface = tBoilingSurface - (Td-temperature)/Niter;
325 scalar hl = fuels.
properties()[i].hl(spray_.ambientPressure(), tBoilingSurface);
326 scalar iTp = fuels.
properties()[i].h(spray_.ambientPressure(), Td) - spray_.ambientPressure()/fuels.
properties()[i].rho(spray_.ambientPressure(), Td);
327 scalar iTb = fuels.
properties()[i].h(spray_.ambientPressure(), tBoilingSurface) - spray_.ambientPressure()/fuels.
properties()[i].rho(spray_.ambientPressure(), tBoilingSurface);
329 chi += p.
X()[i]*(iTp-iTb)/hl;
341 dD = dD*(1.0 - chi*
pow(pRatio, -pExp));
343 scalar lBU = Cl_ *
mag(p.
U())*tau;
352 scalar minValue =
min(p.
d(),dD/10.0);
354 scalar maxValue = dD;
356 if(maxValue - minValue < SMALL)
358 minValue = p.
d()/10.0;
361 scalar range = maxValue - minValue;
366 bool success =
false;
371 x = minValue + range*rndGen_.scalar01();
372 y = rndGen_.scalar01();
378 scalar
xx =
pow(x/dD, nExp);