16#ifndef RIZER_CANTERA_THERMO_H
17#define RIZER_CANTERA_THERMO_H
46 CanteraThermo(
const std::string &mech,
const std::string &phase);
64 void pressures(
double r,
double t,
double rho,
double Tg,
65 double Te,
const double *Y,
double &p_heavy,
66 double &p_electron)
const override;
85 double soundSpeed(
double r,
double t,
double rho,
double Tg,
86 double Te,
const double *Y)
const override;
99 double heavyEnergy(
double Tg,
const double *Y)
const override;
121 const double *Y)
const override;
144 double heavy_internal_energy_target,
145 double Tg_seed)
const override;
158 const double *Y)
const override;
179 void setState(
double rho,
double Tg,
double Te,
const double *Y)
const;
198 void heavyEnergyAndCv(
double Tg,
const double *Y,
double &internal_energy,
207 void heavyCpAndCv(
double &cp,
double &cv)
const;
214 double soundSpeedAtSetState(
double p_heavy,
double p_electron,
221 double heavyEnergyAtSetState()
const;
223 std::shared_ptr<Cantera::ThermoPhase> m_phase;
228 std::size_t m_nsp = 0;
229 std::size_t m_ie = 0;
230 double m_W_electron = 0.0;
231 mutable std::vector<double> m_Yc;
232 mutable std::vector<double> m_work;
The equation-of-state seam of the hydrodynamic sub-step: the abstract accessor hydroStep() closes its...
CanteraThermo(const std::string &mech, const std::string &phase)
Loads the phase alone, never its reactions: the accessor evaluates thermo only, and a mechanism's rea...
std::size_t electronIndex() const
Index of the electron species, the one heavyEnergy() leaves out.
double electronCv() const override
exactly: no thermo lookup and no state, so it is the same number at every node and every step.
double heavyEnergy(double Tg, const double *Y) const override
Cantera's mixture internal energy less the electron's contribution, on the per kg of MIXTURE basis th...
double soundSpeed(double r, double t, double rho, double Tg, double Te, const double *Y) const override
summed over the heavy species alone, from the fixed ElectronGamma, over the same partial-pressure sp...
StateProperties stateProperties(double r, double t, double rho, double Tg, double Te, const double *Y) const override
The four state functions from one state-setting, rather than the three the default composition perfor...
double densityFromPressure(double pressure, double Tg, double Te, const double *Y) const override
PlasmaPhase::setPressure() read back through density().
double heavyTemperature(double rho, const double *Y, double heavy_internal_energy_target, double Tg_seed) const override
Damped Newton on = target, seeded with Tg_seed and confined to [200 K, 1e5 K].
std::size_t nSpecies() const
Number of species in the loaded phase.
void pressures(double r, double t, double rho, double Tg, double Te, const double *Y, double &p_heavy, double &p_electron) const override
PlasmaPhase::electronPressure(), and the total less that.
Equation-of-state and caloric accessor injected into hydroStep().
Every state function hydroStep() reads off one primitive state when it builds the conservative variab...