-
Notifications
You must be signed in to change notification settings - Fork 61
Open
Description
Right now these are incompatible. Major steps to implementation:
- Propagate eosparm through all EOS calls (Added eosparm object for spray manifold model #604)
- Modify GasPhaseVals struct: For manifold model, need to map from transported "species" (actually the manifold parameters) to gas phase composition in terms of actual species. Progress:
- Ensure compatibility with the many-to-one multicomponent spray capability implemented in Spray: many liquid species to depositing to a single gas species #633
- Include basic validation for single drop evaporation in PeleLMeX:
- Apply source terms to correct quantities. For species, this is just a matter of using the existing mapping system to map from the liquid components to mixture fraction, etc. For enthalpy, still needs to be determined. An initial approach would be to ignore the enthalpy lost from phase change.
- Include effects of spray in variance source term equations
- Adapt SprayUnits to use PelePhysics unit conversions: Spray simplifications: Use PelePhysics unit conversions and EOS calls #593
Places where EOS calls are currently made within the EOS module as a strating point for modifications:
$cd PelePhysics/Source/Spray
$rgrep -i eos
./SpraySetup.cpp:260: pele::physics::eos::speciesNames<pele::physics::PhysicsType::eos_type>(
./SpraySetup.cpp:285: auto eos = pele::physics::PhysicsType::eos();
./SpraySetup.cpp:286: eos.T2Hi(m_sprayData->ref_T, fuelEnth.data());
./Drag.H:148: pele::physics::EosType,
./Drag.H:151: auto eos = pele::physics::PhysicsType::eos();
./Drag.H:220: eos.T2Cpi(T_skin, cp_n.data());
./Drag.H:221: eos.T2Hi(T_part, h_part.data());
./SprayParticles.cpp:51: pele::physics::EosType,
./SprayParticles.cpp:74: pele::physics::EosType,
./SprayParticles.cpp:157: pele::physics::EosType,
./SprayParticles.cpp:329: auto eos = pele::physics::PhysicsType::eos();
./SprayParticles.cpp:334: eos.molecular_weight(gpv.mw.data());
./SprayParticles.H:201: pele::physics::EosType,
./SprayParticles.H:218: pele::physics::EosType,
./SprayParticles.H:235: pele::physics::EosType,
./BreakupSplash/WallFilm.H:38: pele::physics::EosType,
./BreakupSplash/WallFilm.H:41: auto eos = pele::physics::PhysicsType::eos();
./BreakupSplash/WallFilm.H:90: eos.T2Cpi(T_skin, cp_n.data());
./BreakupSplash/WallFilm.H:91: eos.T2Hi(T_film, h_film.data());
./SprayInterpolation.H:112: auto eos = pele::physics::PhysicsType::eos();
./SprayInterpolation.H:149: eos.EY2T(intEng, mass_frac.data(), T_i);
Initial thoughts on each (some are minor, some are major):
./SpraySetup.cpp:260: pele::physics::eos::speciesNames<pele::physics::PhysicsType::eos_type>(
Mapping for species names between spray and gas phase. Should be straightforward.
A pointer to eosparm (probably both host and device) will have to be added to the spray particle container
POTENTIAL ISSUE: although spray source can dump into ZMIX, for equilibrium calcs we will need the actual
gas phase concentration of fuel. Probably need to modify GasPhaseVals struct
./SpraySetup.cpp:285: auto eos = pele::physics::PhysicsType::eos();
./SpraySetup.cpp:286: eos.T2Hi(m_sprayData->ref_T, fuelEnth.data());
Used for finding reference gas phase enthalpy, which gets rolled into the latent heat of vaporization
Can probably be bypassed initially for manifold spray ignoring latent heat
./Drag.H:148: pele::physics::EosType,
Just interfaces for passing transparm - nothing important here
./Drag.H:151: auto eos = pele::physics::PhysicsType::eos();
./Drag.H:220: eos.T2Cpi(T_skin, cp_n.data());
./Drag.H:221: eos.T2Hi(T_part, h_part.data());
?? Could be difficult - need to harmonize between gas species and manifold quantities
./SprayParticles.cpp:51: pele::physics::EosType,
./SprayParticles.cpp:74: pele::physics::EosType,
./SprayParticles.cpp:157: pele::physics::EosType,
Just interfaces for passing transparm - nothing important here
./SprayParticles.cpp:329: auto eos = pele::physics::PhysicsType::eos();
./SprayParticles.cpp:334: eos.molecular_weight(gpv.mw.data());
?? gas phase molecular weight in GPV - is this needed for all gas species and why?
./SprayParticles.H:201: pele::physics::EosType,
./SprayParticles.H:218: pele::physics::EosType,
./SprayParticles.H:235: pele::physics::EosType,
Just interfaces for passing transparm - nothing important here
./BreakupSplash/WallFilm.H:38: pele::physics::EosType,
Just interfaces for passing transparm - nothing important here
./BreakupSplash/WallFilm.H:41: auto eos = pele::physics::PhysicsType::eos();
./BreakupSplash/WallFilm.H:90: eos.T2Cpi(T_skin, cp_n.data());
./BreakupSplash/WallFilm.H:91: eos.T2Hi(T_film, h_film.data());
./SprayInterpolation.H:112: auto eos = pele::physics::PhysicsType::eos();
./SprayInterpolation.H:149: eos.EY2T(intEng, mass_frac.data(), T_i);
Only used for PeleC
But - interpolating gas phase vals will need to change - we need actual species
** This is really the main challenges**
Metadata
Metadata
Assignees
Labels
No labels