57 blobsSwirlInjectorDict_(dict.
subDict(typeName +
"Coeffs")),
59 coneAngle_(blobsSwirlInjectorDict_.lookup(
"ConeAngle")),
60 coneInterval_(blobsSwirlInjectorDict_.lookup(
"ConeInterval")),
62 cD_(blobsSwirlInjectorDict_.lookup(
"cD")),
63 cTau_(blobsSwirlInjectorDict_.lookup(
"cTau")),
64 A_(blobsSwirlInjectorDict_.lookup(
"A")),
74 FatalError <<
"blobsSwirlInjector::blobsSwirlInjector"
75 <<
"(const dictionary& dict, spray& sm)\n"
76 <<
"Wrong number of entries in innerAngle"
85 sm.
injectors()[i].properties()->correctProfiles(sm.
fuels(), referencePressure);
107 scalar c = rndGen_.scalar01();
109 angle_ = coneAngle_[n]/2.0 + c * coneInterval_[n];
115 scalar cosAngle =
cos(angle_);
117 scalar rhoFuel = sm_.fuels().rho(sm_.ambientPressure(), it.
T(t), it.
X());
119 scalar deltaPressure = deltaPressureInj(t,n);
121 calculateHX(n, injectedMassFlow, deltaPressure, t);
125 scalar v = kV *
sqrt(2.0*deltaPressure/rhoFuel);
142 scalar alpha =
sin(angle_);
143 scalar dcorr =
cos(angle_);
156 beta += reduce*sm_.angleOfWedge();
159 sm_.axisOfWedge()*
cos(beta) +
160 sm_.axisOfWedgeNormal()*
sin(beta)
167 injectors_[n].properties()->tan1(hole)*
cos(beta) +
168 injectors_[n].properties()->tan2(hole)*
sin(beta)
173 vector dir = dcorr*injectors_[n].properties()->direction(hole, time) + normal;
195 const injectorType& it = sm_.injectors()[i].properties();
203 scalar rhoFuel = sm_.fuels().rho(sm_.ambientPressure(), Tav, it.
X());
207 return kV*
sqrt(2.0*(injectionPressure-sm_.ambientPressure())/rhoFuel);
212 scalar blobsSwirlInjector::kv
217 return cD_[inj]/
cos(angle_) *
sqrt((1.0 - x_)/(1.0 + x_));
220 void blobsSwirlInjector::calculateHX
223 const scalar massFlow,
224 const scalar dPressure,
229 const injectorType& it =
injectors_[inj].properties();
231 scalar Tfuel = it.T(time);
234 scalar injectorDiameter = it.d();
258 scalar hOLD = -100.0;
259 scalar xOLD = -100.0;
287 x_ =
sqr(1.0 - 2.0 * h_/injectorDiameter);
294 x_ =
sqr(1.0 - 2.0 * h_/injectorDiameter);
300 scalar blobsSwirlInjector::deltaPressureInj(
const scalar time,
const label inj)
const
305 scalar blobsSwirlInjector::averagePressure(
const label inj)
const
308 const injectorType& it =
sm_.
injectors()[inj].properties();
310 scalar dt = it.teoi() - it.tsoi();
311 return it.integrateTable(it.injectionPressureProfile())/dt;