32 template<
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" 70 template<
class CloudType>
73 const LISAAtomization<CloudType>& am
80 lisaExp_(am.lisaExp_),
81 injectorDirection_(am.injectorDirection_),
82 SMDCalcMethod_(am.SMDCalcMethod_)
88 template<
class CloudType>
95 template<
class CloudType>
102 template<
class CloudType>
109 template<
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;
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
scalar diff(const triad &A, const triad &B)
Return a quantity of the difference between two triads.
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...
virtual ~LISAAtomization()
Destructor.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar sqrt(const dimensionedScalar &ds)
Templated atomization model class.
Ostream & endl(Ostream &os)
Add newline and flush stream.
label k
Boltzmann constant.
virtual bool calcChi() const
Flag to indicate if chi needs to be calculated.
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
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
dimensionedScalar pos(const dimensionedScalar &ds)
const dimensionedScalar e
Elementary charge.
LISAAtomization(const dictionary &, CloudType &)
Construct from dictionary.
dimensionedScalar cbrt(const dimensionedScalar &ds)
constexpr scalar pi(M_PI)
virtual scalar initLiquidCore() const
Initial value of liquidCore.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const dimensionedScalar h
Planck constant.
const dimensionedScalar mu
Atomic mass unit.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar pow3(const dimensionedScalar &ds)
dimensionedScalar pow4(const dimensionedScalar &ds)
messageStream Info
Information stream (stdout output on master, null elsewhere)
Templated base class for dsmc cloud.