Go to the documentation of this file.
30 template<
class CloudType>
38 SMDCalcMethod_(this->coeffDict().
lookup(
"SMDCalculationMethod"))
41 const scalar xx0 = 12.0;
43 1.0/(1.0 -
exp(-xx0)*(1.0 + xx0 +
sqr(xx0)/2.0 +
pow3(xx0)/6.0));
47 scalar xx = 0.12*(
n + 1);
49 (1.0 -
exp(-xx)*(1.0 + xx +
sqr(xx)/2.0 +
pow3(xx)/6.0))*rrd100;
52 if (SMDCalcMethod_ ==
"method1")
56 else if (SMDCalcMethod_ ==
"method2")
64 <<
"Unknown SMDCalculationMethod. Valid options are "
65 <<
"(method1 | method2). Using method2" <<
endl;
70 template<
class CloudType>
74 SMDCalcMethod_(bum.SMDCalcMethod_)
80 template<
class CloudType>
87 template<
class CloudType>
119 scalar semiMass = nParticle*
pow3(d);
122 scalar rtd = 0.5*this->TABCmu_*
mu/(
rho*r2);
125 scalar omega2 = this->TABComega_*
sigma/(
rho*r3) - rtd*rtd;
129 scalar omega =
sqrt(omega2);
130 scalar We = rhoc*
sqr(Urmag)*r/
sigma;
131 scalar Wetmp = We/this->TABtwoWeCrit_;
133 scalar
y1 =
y - Wetmp;
134 scalar y2 = yDot/omega;
159 if ((Wetmp - a < -1) && (yDot < 0))
164 scalar theta =
acos((coste-Wetmp)/a);
174 tb = (theta-
phi)/omega;
180 yDot = -a*omega*
sin(omega*tb +
phi);
224 nParticle = semiMass/
pow3(d);
dimensionedScalar y1(const dimensionedScalar &ds)
const dimensionedScalar mu
Atomic mass unit.
#define forAll(list, i)
Loop across all elements in list.
dimensionedScalar sin(const dimensionedScalar &ds)
virtual bool update(const scalar dt, const vector &g, scalar &d, scalar &tc, scalar &ms, scalar &nParticle, scalar &KHindex, scalar &y, scalar &yDot, const scalar d0, const scalar rho, const scalar mu, const scalar sigma, const vector &U, const scalar rhoc, const scalar muc, const vector &Urel, const scalar Urmag, const scalar tMom, scalar &dChild, scalar &massChild)
Update the parcel diameter.
const dimensionedVector & g
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar exp(const dimensionedScalar &ds)
const scalar twoPi(2 *pi)
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual ~TAB()
Destructor.
Random & rndGen()
Return refernce to the random object.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedScalar pow3(const dimensionedScalar &ds)
Templated base class for dsmc cloud.
A list of keyword definitions, which are a keyword followed by any number of values (e....
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar acos(const dimensionedScalar &ds)
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m2/K4].
The TAB Method for Numerical Calculation of Spray Droplet Breakup.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
#define WarningInFunction
Report a warning using Foam::Warning.
cachedRandom rndGen(label(0), -1)
TAB(const dictionary &dict, CloudType &owner)
Construct from dictionary.
stressControl lookup("compactNormalStress") >> compactNormalStress