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 keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
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.
Ostream & endl(Ostream &os)
Add newline and flush stream.
void pow4(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
void mag(LagrangianPatchField< scalar > &f, const LagrangianPatchField< Type > &f1)
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
void pow(LagrangianPatchField< typename powProduct< Type, r >::type > &f, const LagrangianPatchField< Type > &f1)
scalar diff(const triad &A, const triad &B)
Return a quantity of the difference between two triads.
void pow3(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
void cbrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
void sqr(LagrangianPatchField< typename outerProduct< Type, Type >::type > &f, const LagrangianPatchField< Type > &f1)
void sqrt(LagrangianPatchField< scalar > &f, const LagrangianPatchField< scalar > &f1)
randomGenerator rndGen(653213)