3 scalar
pc = spray_.p()[p1().cell()];
8 vector p = p2().position() - p1().position();
11 scalar
vAlign = vRel & (p/(dist+SMALL));
15 scalar
sumD = p1().d() + p2().d();
19 scalar v1Mag =
mag(
v1);
20 scalar v2Mag =
mag(v2);
24 scalar v1v2 = nv1 & nv2;
28 scalar
det = 1.0 - v1v2*v1v2;
30 scalar alpha = 1.0e+20;
31 scalar
beta = 1.0e+20;
33 if (
mag(det) > 1.0
e-4)
35 beta = -(v2p - v1v2*v1p)/det;
36 alpha = v1p + v1v2*
beta;
43 if ((alpha>0) && (alpha<1.0) && (beta>0) && (beta<1.0))
45 vector p1c = p1().position() + alpha*
v1*dt;
46 vector p2c = p2().position() + beta*v2*dt;
48 scalar closestDist =
mag(p1c-p2c);
51 pow(0.5*sumD/
max(0.5*sumD, closestDist), cSpace_)
52 *
exp(-cTime_*
mag(alpha-beta));
54 scalar
xx = rndGen_.scalar01();
56 spray::iterator
pMin = p1;
57 spray::iterator
pMax = p2;
80 if ((xx < collProb) && (mMin > VSMALL) && (mMax > VSMALL))
84 scalar gamma = dMax/
max(dMin, 1.0
e-12);
85 scalar
f = gamma*gamma*gamma + 2.7*gamma - 2.4*gamma*gamma;
91 scalar averageTemp = (
pMax().T()*mMax +
pMin().T()*
mMin)/mTot;
97 scalar sigma = spray_.fuels().sigma(pc, averageTemp, Xav);
98 sigma =
max(1.0
e-6, sigma);
99 scalar
rho = spray_.fuels().rho(pc, averageTemp, Xav);
101 scalar dMean =
sqrt(dMin*dMax);
103 max(1.0
e-12, 0.5*rho*magVRel*magVRel*dMean/sigma);
107 scalar coalesceProb =
min(1.0, 2.4*f/WeColl);
109 scalar prob = rndGen_.scalar01();
112 if ( prob < coalesceProb && coalescence_)
115 scalar nProb = prob*nMin/
nMax;
121 scalar newMinMass =
pMin().m();
122 scalar newMaxMass = mMax + (mMin - newMinMass);
123 pMax().m() = newMaxMass;
126 (averageTemp*mTot - newMinMass*
pMin().T())/newMaxMass;
127 rhoMax = spray_.fuels().rho(pc,
pMax().
T(),
pMax().X());
137 (momMax + (1.0-newMinMass/
mMin)*momMin)/newMaxMass;
142 scalarField Ynew = mMax*Ymax + (mMin - newMinMass)*Ymin;
146 Wlinv += Ynew[i]/spray_.fuels().properties()[i].W();
151 Ynew[i]/(spray_.fuels().properties()[i].W()*Wlinv);
159 scalar gf =
sqrt(prob) -
sqrt(coalesceProb);
160 scalar denom = 1.0 -
sqrt(coalesceProb);
161 if (denom < 1.0
e-5) {
170 scalar
rho1 = spray_.fuels().rho(pc, p1().
T(), p1().X());
171 scalar
rho2 = spray_.fuels().rho(0.0, p2().
T(), p2().X());
172 scalar m1 = p1().m();
173 scalar m2 = p2().m();
174 scalar n1 = p1().N(rho1);
175 scalar n2 = p2().N(rho2);
187 p2().U() = (n1*v2p + (n2-n1)*v2)/n2;
191 p1().U() = (n2*v1p + (n1-n2)*
v1)/n1;