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>
109 const label injectori,
120 scalar semiMass = nParticle*
pow3(d);
123 scalar rtd = 0.5*this->TABCmu_*
mu/(
rho*r2);
126 scalar omega2 = this->TABComega_*
sigma/(
rho*r3) - rtd*rtd;
131 scalar We = rhoc*
sqr(Urmag)*r/
sigma;
132 scalar Wetmp = We/this->TABtwoWeCrit_;
134 scalar
y1 =
y - Wetmp;
135 scalar y2 = yDot/
omega;
145 phic =
max(
min(phic, 1), -1);
147 scalar phit =
acos(phic);
160 if ((Wetmp - a < -1) && (yDot < 0))
165 scalar theta =
acos((coste-Wetmp)/a);
175 tb = (theta-phi)/
omega;
225 nParticle = semiMass/
pow3(d);
#define forAll(list, i)
Loop across all elements in list.
Templated break-up model class.
Templated base class for dsmc cloud.
The TAB Method for Numerical Calculation of Spray Droplet Breakup.
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, const label injectori, scalar &dChild, scalar &massChild)
Update the parcel diameter.
virtual ~TAB()
Destructor.
TAB(const dictionary &dict, CloudType &owner)
Construct from dictionary.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Convenience class to handle the input of constant rotational speed. Reads an omega entry with default...
#define WarningInFunction
Report a warning using Foam::Warning.
const scalar twoPi(2 *pi)
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m^2/K^4].
const dimensionedScalar mu
Atomic mass unit.
dimensionedScalar exp(const dimensionedScalar &ds)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar pow3(const dimensionedScalar &ds)
dimensionedScalar sin(const dimensionedScalar &ds)
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar y1(const dimensionedScalar &ds)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< scalar > mag(const dimensioned< Type > &)
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar acos(const dimensionedScalar &ds)
randomGenerator rndGen(653213)