30 template<
class CloudType>
38 Cl_(this->coeffDict().template lookup<scalar>(
"Cl")),
39 cTau_(this->coeffDict().template lookup<scalar>(
"cTau")),
40 lisaExp_(this->coeffDict().template lookup<scalar>(
"lisaExp")),
41 injectorDirection_(this->coeffDict().lookup(
"injectorDirection")),
42 SMDCalcMethod_(this->coeffDict().lookup(
"SMDCalculationMethod"))
45 injectorDirection_ /=
mag(injectorDirection_);
47 if (SMDCalcMethod_ ==
"method1")
51 else if (SMDCalcMethod_ ==
"method2")
58 Info<<
"Warning: SMDCalculationMethod " << SMDCalcMethod_
59 <<
" unknown. Options are (method1 | method2). Using method2"
64 template<
class CloudType>
73 lisaExp_(am.lisaExp_),
74 injectorDirection_(am.injectorDirection_),
75 SMDCalcMethod_(am.SMDCalcMethod_)
81 template<
class CloudType>
88 template<
class CloudType>
95 template<
class CloudType>
102 template<
class CloudType>
112 const scalar volFlowRate,
116 const vector& injectionPos,
117 const scalar pAmbient,
122 if (volFlowRate < small)
134 scalar We = 0.5*rhoAv*
sqr(Urel)*d/
sigma;
137 scalar Q = rhoAv/
rho;
141 scalar traveledTime = pWalk/Urel;
143 scalar
h =
diff & injectorDirection_;
156 scalar derivPos =
sqrt(Q*
sqr(Urel));
174 for (
label i=0; i<40; i++)
176 k = kPos - (derivPos/((derivNeg - derivPos)/(kNeg - kPos)));
203 if (
mag(
k - kOld)/
k < 1
e-4)
228 scalar J = 0.5*traveledTime*hSheet;
239 scalar atmPressure = 1.0e+5;
241 scalar pRatio = pAmbient/atmPressure;
243 dD = dD*
pow(pRatio, lisaExp_);
248 dD = dD*(1.0 - chi*
pow(pRatio, -pExp));
249 scalar lBU = Cl_ *
mag(Urel)*tau;
Templated atomisation model class.
Templated base class for dsmc cloud.
Primary Breakup Model for pressure swirl atomisers.
virtual bool calcChi() const
Flag to indicate if chi needs to be calculated.
virtual scalar initLiquidCore() const
Initial value of liquidCore.
virtual ~LISAAtomisation()
Destructor.
virtual void update(const scalar dt, scalar &d, scalar &liquidCore, scalar &tc, const scalar rho, const scalar mu, const scalar sigma, const scalar volFlowRate, const scalar rhoAv, const scalar Urel, const vector &pos, const vector &injectionPos, const scalar pAmbient, const scalar chi, randomGenerator &rndGen) const
LISAAtomisation(const dictionary &, CloudType &)
Construct from dictionary.
A list of keyword definitions, which are a keyword followed by any number of values (e....
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m^2/K^4].
const dimensionedScalar mu
Atomic mass unit.
const dimensionedScalar h
Planck constant.
dimensionedScalar pos(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)
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar sqrt(const dimensionedScalar &ds)
scalar diff(const triad &A, const triad &B)
Return a quantity of the difference between two triads.
dimensioned< scalar > mag(const dimensioned< Type > &)
dimensionedScalar pow4(const dimensionedScalar &ds)
dimensionedScalar cbrt(const dimensionedScalar &ds)
randomGenerator rndGen(653213)