75 return 1.0 / 6.0 * PI *
material().density(temperature) *
POW3(diameter);
198 const MFloat particleDensityRatio,
const MFloat particleVelocity,
const MFloat sprayConeAngle,
201 const MBool hull,
const MInt parcelSize,
const MInt noInjectionHoles);
204 const MFloat particleDensityRatio,
const MFloat particleVelocity,
const MFloat sprayConeAngle,
206 const MInt noInjectionHoles) {
207 std::function<
MFloat(
MInt)> dummyDefault = [&](
MInt) {
return -1.0; };
208 std::function<
MFloat(
MInt)> holeNozzleAngle = [&](
MInt) {
return nozzleAngle; };
209 ASSERT(noInjectionHoles == 1,
"Incorrect function call!");
211 injectParticles(spawnParticlesCount, spawnCoord, particleDiameter, particleDensityRatio, particleVelocity,
212 sprayConeAngle, coneDiameter, dummyDefault, dummyDefault, holeNozzleAngle, hull, parcelSize,
std::mt19937_64 & randomSecBreakUp()
MBool m_useNeedleLiftTime
MFloat timeSinceSOI() const
MFloat * m_needleLiftTime
MFloat m_injectionCrankAngle
MFloat injectionDuration() const
MBool soonInjection(const MFloat time)
MFloat m_currentInjectionRate
MFloat sphericalMass(const MFloat diameter, const MFloat temperature)
MFloat m_RosinRammlerSpread
MaterialState< nDim > & material() const
MBool m_multiHoleInjector
void injectParticles(const MInt spawnParticlesCount, const MFloat *spawnCoord, const MFloat particleDiameter, const MFloat particleDensityRatio, const MFloat particleVelocity, const MFloat sprayConeAngle, const MFloat coneDiameter, const MBool hull, const MFloat nozzleAngle, const MInt parcelSize, const MInt noInjectionHoles)
std::mt19937_64 & randomPrimBreakUp(const MInt calls)
MInt m_primBrkUpParcelSize
MFloat * m_orificePositionAngle
void injectParticles(const MInt spawnParticlesCount, const MFloat *spawnCoord, const MFloat particleDiameter, const MFloat particleDensityRatio, const MFloat particleVelocity, const MFloat sprayConeAngle, const MFloat coneDiameter, std::function< MFloat(MInt)> holePositionAngle, std::function< MFloat(MInt)> injectorDiameter, std::function< MFloat(MInt)> holeNozzleAngle, const MBool hull, const MInt parcelSize, const MInt noInjectionHoles)
Create new random particles using the provided options.
static constexpr MInt m_injDataSize
MFloat * m_injectorOrificeAngle
MBool m_secBUDisplayMessage
MBool m_RTsecBreakUpLength
MFloat m_injectorDir[nDim]
MFloatTensor m_injectionTimings
MFloatTensor m_injectionRateList
void logDistributionFunction()
create log of distribution functions for plots and debugging
void injection(const MFloat dt)
Perform a spray injection.
static MFloat s_lengthFactor
MFloat m_injectionDistSigmaCoeff
MFloat injectionSpeed() const
MFloat m_primMinDropletSize
MFloat m_RosinRammlerMean
MFloat m_injectorNozzleDiameter
MBool m_singleHoleInjector
MFloat m_injectorOrficeSize
void primaryBreakUp(const MFloat dt)
Inject new particles from the injector exit.
void updateInjectionRate()
Update injection rate.
std::mt19937_64 m_PRNGPrimBreakUp
void init(LPT< nDim > *_particle)
Spray model initialisation.
void readSprayProperties()
MBool m_broadcastInjected
std::mt19937_64 m_PRNGSecBU
static LPT< nDim > * s_backPtr
MBool m_hollowConeInjector
void initPRNG(const MInt seed, const MInt discard)
MBool m_activeSecondaryBUp
MInt m_PRNGPrimBreakUpCount
void secondaryBreakUp(const MFloat dt)
Atomization of particles.
MFloat * m_injectorDiameter
constexpr Real POW3(const Real x)
MFloat crankAngle(const MFloat time, const MFloat Strouhal, const MFloat offset, const MInt mode)
help-function for engine calculations which returns the crank-angle for a given time,...