30 template<
class CloudType>
44 template<
class CloudType>
53 template<
class CloudType>
60 template<
class CloudType>
67 gradkPtr_ =
fvc::grad(*this->kPtr_).ptr();
80 template<
class CloudType>
91 const scalar
cps = 0.16432;
97 const scalar UrelMag =
mag(U - Uc - UTurb);
99 const scalar tTurbLoc =
min
101 k[celli]/epsilon[celli],
102 cps*
pow(k[celli], 1.5)/epsilon[celli]/(UrelMag + SMALL)
110 if (tTurb > tTurbLoc)
114 scalar sigma =
sqrt(2.0*k[celli]/3.0);
115 vector dir = -gradk[celli]/(
mag(gradk[celli]) + SMALL);
121 while ((rsq > 1.0) || (rsq == 0.0))
123 x1 = 2.0*this->owner().rndGen().scalar01() - 1.0;
124 x2 = 2.0*this->owner().rndGen().scalar01() - 1.0;
128 scalar fac =
sqrt(-2.0*
log(rsq)/rsq);
134 if (this->owner().
mesh().nSolutionD() == 2)
143 UTurb = sigma*fac*dir;
149 UTurb = vector::zero;