30 template <
class CloudType>
43 template <
class CloudType>
50 template <
class CloudType>
60 label wppIndex = wpp.
index();
62 label wppLocalFace = wpp.
whichFace(faceId);
70 scalar magUn = U & nw;
75 CloudType& cloud(this->owner());
77 Random& rndGen(cloud.rndGen());
79 while (
mag(Ut) < SMALL)
87 U.
x()*(0.8 + 0.2*rndGen.scalar01()),
88 U.
y()*(0.8 + 0.2*rndGen.scalar01()),
89 U.
z()*(0.8 + 0.2*rndGen.scalar01())
103 scalar
T = cloud.boundaryT().boundaryField()[wppIndex][wppLocalFace];
105 scalar mass = cloud.constProps(typeId).mass();
107 scalar iDof = cloud.constProps(typeId).internalDegreesOfFreedom();
110 sqrt(CloudType::kb*T/mass)
112 rndGen.GaussNormal()*tw1
113 + rndGen.GaussNormal()*tw2
114 -
sqrt(-2.0*
log(
max(1 - rndGen.scalar01(), VSMALL)))*nw
117 U += cloud.boundaryU().boundaryField()[wppIndex][wppLocalFace];
119 Ei = cloud.equipartitionInternalEnergy(T, iDof);