32template<
class CloudType>
40 Cl_(this->coeffDict().getScalar(
"Cl")),
41 cTau_(this->coeffDict().getScalar(
"cTau")),
42 Q_(this->coeffDict().getScalar(
"Q")),
43 lisaExp_(this->coeffDict().getScalar(
"lisaExp")),
46 this->coeffDict().template get<
vector>(
"injectorDirection")
48 SMDCalcMethod_(this->coeffDict().getWord(
"SMDCalculationMethod"))
51 injectorDirection_.normalise();
53 if (SMDCalcMethod_ ==
"method1")
57 else if (SMDCalcMethod_ ==
"method2")
64 Info<<
"Warning: SMDCalculationMethod " << SMDCalcMethod_
65 <<
" unknown. Options are (method1 | method2). Using method2"
70template<
class CloudType>
80 lisaExp_(am.lisaExp_),
81 injectorDirection_(am.injectorDirection_),
82 SMDCalcMethod_(am.SMDCalcMethod_)
88template<
class CloudType>
95template<
class CloudType>
102template<
class CloudType>
109template<
class CloudType>
119 const scalar volFlowRate,
123 const vector& injectionPos,
124 const scalar pAmbient,
129 if (volFlowRate < SMALL)
141 scalar We = 0.5*rhoAv*
sqr(
Urel)*d/sigma;
144 scalar Q = rhoAv/
rho;
148 scalar traveledTime = pWalk/
Urel;
150 scalar
h =
diff & injectorDirection_;
169 - 3.0*sigma/2.0/
rho*
sqr(kNeg)
181 for (label i=0; i<40; i++)
183 k = kPos - (derivPos/((derivNeg - derivPos)/(kNeg - kPos)));
210 if (
mag(
k - kOld)/
k < 1
e-4)
235 scalar J = 0.5*traveledTime*hSheet;
242 scalar kL = 1.0/(dL*
sqrt(0.5 + 1.5 *
mu/
sqrt(
rho*sigma*dL)));
246 scalar atmPressure = 1.0e+5;
248 scalar pRatio = pAmbient/atmPressure;
250 dD = dD*
pow(pRatio, lisaExp_);
255 dD = dD*(1.0 - chi*
pow(pRatio, -pExp));
256 scalar lBU = Cl_ *
mag(
Urel)*tau;
Templated atomization model class.
Templated base class for dsmc cloud.
Primary Breakup Model for pressure swirl atomizers.
virtual ~LISAAtomization()
Destructor.
virtual bool calcChi() const
Flag to indicate if chi needs to be calculated.
virtual scalar initLiquidCore() const
Initial value of liquidCore.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual bool update()
Update the mesh for both mesh motion and topology change.
const volScalarField & mu
constexpr scalar pi(M_PI)
dimensionedScalar pos(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar pow3(const dimensionedScalar &ds)
messageStream Info
Information stream (stdout output on master, null elsewhere)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
scalar diff(const triad &A, const triad &B)
Return a quantity of the difference between two triads.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
dimensionedScalar pow4(const dimensionedScalar &ds)
dimensionedScalar cbrt(const dimensionedScalar &ds)