32template<
class CloudType>
41 cTau_(this->
coeffDict().getScalar(
"cTau")),
43 lisaExp_(this->
coeffDict().getScalar(
"lisaExp")),
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>
73 const LISAAtomization<CloudType>& am
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)
144 scalar Q = rhoAv/
rho;
148 scalar traveledTime = pWalk/
Urel;
150 scalar
h =
diff & injectorDirection_;
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;
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;
AtomizationModel(CloudType &owner)
Construct null from owner.
const CloudType & owner() const
Return const access to the owner cloud.
virtual ~LISAAtomization()
Destructor.
virtual bool calcChi() const
Flag to indicate if chi needs to be calculated.
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, Random &rndGen) const
virtual scalar initLiquidCore() const
Initial value of liquidCore.
LISAAtomization(const dictionary &, CloudType &)
Construct from dictionary.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const dictionary & coeffDict() const
Return const access to the coefficients dictionary.
const dictionary & dict() const
Return const access to the cloud dictionary.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
constexpr scalar pi(M_PI)
dimensionedScalar pos(const dimensionedScalar &ds)
DSMCCloud< dsmcParcel > CloudType
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)
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
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)
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)