32 template<
class CloudType>
40 SMDCalcMethod_(this->coeffDict().
lookup(
"SMDCalculationMethod"))
43 const scalar xx0 = 12.0;
45 1.0/(1.0 -
exp(-xx0)*(1.0 + xx0 +
sqr(xx0)/2.0 +
pow3(xx0)/6.0));
49 scalar xx = 0.12*(
n + 1);
51 (1.0 -
exp(-xx)*(1.0 + xx +
sqr(xx)/2.0 +
pow3(xx)/6.0))*rrd100;
54 if (SMDCalcMethod_ ==
"method1")
58 else if (SMDCalcMethod_ ==
"method2")
66 <<
"Unknown SMDCalculationMethod. Valid options are " 67 <<
"(method1 | method2). Using method2" <<
endl;
72 template<
class CloudType>
76 SMDCalcMethod_(bum.SMDCalcMethod_)
82 template<
class CloudType>
89 template<
class CloudType>
121 scalar semiMass = nParticle*
pow3(d);
124 scalar rtd = 0.5*this->TABCmu_*
mu/(
rho*r2);
127 scalar omega2 = this->TABComega_*
sigma/(
rho*r3) - rtd*rtd;
131 scalar omega =
sqrt(omega2);
132 scalar We = rhoc*
sqr(Urmag)*r/
sigma;
133 scalar Wetmp = We/this->TABtwoWeCrit_;
135 scalar
y1 =
y - Wetmp;
136 scalar y2 = yDot/omega;
161 if ((Wetmp - a < -1) && (yDot < 0))
166 scalar theta =
acos((coste-Wetmp)/a);
176 tb = (theta-
phi)/omega;
182 yDot = -a*omega*
sin(omega*tb +
phi);
226 nParticle = semiMass/
pow3(d);
dimensionedScalar acos(const dimensionedScalar &ds)
DSMCCloud< dsmcParcel > CloudType
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sqrt(const dimensionedScalar &ds)
Ostream & endl(Ostream &os)
Add newline and flush stream.
Lookup type of boundary radiation properties.
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
#define forAll(list, i)
Loop across all elements in list.
dimensionedScalar exp(const dimensionedScalar &ds)
constexpr scalar twoPi(2 *M_PI)
virtual ~TAB()
Destructor.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
dimensionedScalar y1(const dimensionedScalar &ds)
const uniformDimensionedVectorField & g
dimensionedScalar sin(const dimensionedScalar &ds)
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
TAB(const dictionary &dict, CloudType &owner)
Construct from dictionary.
surfaceScalarField phic(mixture.cAlpha() *mag(alphaPhic/mesh.magSf()))
const dimensionedScalar mu
Atomic mass unit.
dimensionedScalar pow3(const dimensionedScalar &ds)
#define WarningInFunction
Report a warning using Foam::Warning.
Templated break-up model class.
Templated base class for dsmc cloud.
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.