|
rizer.cantera_ext
C++ Cantera 1-D plasma extension (custom Domain1D models and solvers)
|
Equation-of-state and caloric accessor injected into hydroStep(). More...
#include <ThermoAccessor.h>
Public Member Functions | |
| virtual | ~ThermoAccessor ()=default |
| virtual void | pressures (double r, double t, double rho, double Tg, double Te, const double *Y, double &p_heavy, double &p_electron) const =0 |
| Per-pool partial pressures, PHYSICS.md equation (G6). | |
| virtual double | soundSpeed (double r, double t, double rho, double Tg, double Te, const double *Y) const =0 |
| Sound speed, PHYSICS.md appendix A.4: the frozen two-pool speed \(c=\sqrt{(\gamma_\mathrm{H}p_\mathrm{H}
+\gamma_\mathrm{e}p_\mathrm{e})/\rho}\), each pool following its own adiabat so that their isentropic bulk moduli add. | |
| virtual double | heavyEnergy (double Tg, const double *Y) const =0 |
| Heavy-pool internal energy per kg of MIXTURE, \(e_\mathrm{H}=\sum_{s\neq\mathrm{e}}Y_se_s(T_\mathrm{H})\) – the basis that makes \(\rho e_\mathrm{H}\) the conserved variable of equation (4b). | |
| virtual double | electronCv () const =0 |
| Electron specific heat at constant volume, per kg of ELECTRONS, \(c_{v,\mathrm{e}}=\tfrac32 k_\mathrm{B}/m_\mathrm{e}\). | |
| virtual double | densityFromPressure (double pressure, double Tg, double Te, const double *Y) const =0 |
| Density reproducing a target total pressure at a given temperature pair and composition – the inverse of pressures(), needed by both outer boundary treatments of NUMERICS.md section 7, which impose a pressure and close \(\rho\) from the equation of state. | |
| virtual double | heavyTemperature (double rho, const double *Y, double heavy_internal_energy_target, double Tg_seed) const =0 |
| Invert \(e_\mathrm{H}\) for \(T_\mathrm{H}\) at fixed density and composition (NUMERICS.md section 8). | |
| virtual StateProperties | stateProperties (double r, double t, double rho, double Tg, double Te, const double *Y) const |
| pressures(), soundSpeed() and heavyEnergy() at one state, in one call. | |
Equation-of-state and caloric accessor injected into hydroStep().
Every method that evaluates a FIELD takes the node radius and the current time, because a validation case may PRESCRIBE that field rather than recover it from the state (NUMERICS.md section "Momentum alone", cases 1-2); densityFromPressure() is the exception, since the pressure it inverts is handed in. A production accessor backed by Cantera's PlasmaPhase ignores both arguments; a prescribed- field stub is the reason they exist, exactly as the ghost-state callback takes (r_face, t) for the same reason.
Definition at line 45 of file ThermoAccessor.h.
|
virtualdefault |
|
pure virtual |
Density reproducing a target total pressure at a given temperature pair and composition – the inverse of pressures(), needed by both outer boundary treatments of NUMERICS.md section 7, which impose a pressure and close \(\rho\) from the equation of state.
Alone among the field methods it takes no \((r, t)\): the pressure to invert is an argument, so there is no field left to look up, and a prescribed-field accessor has nothing to prescribe here.
| [in] | pressure | Target total pressure \(p_\mathrm{H}+p_\mathrm{e}\) [Pa] |
| [in] | Tg | Heavy-pool temperature [K] |
| [in] | Te | Electron temperature [K] |
| [in] | Y | Species mass fractions [-], length K |
Implemented in rizer::CanteraThermo, rizer::GammaLawThermo, and rizer::PrescribedPressureThermo.
|
pure virtual |
Electron specific heat at constant volume, per kg of ELECTRONS, \(c_{v,\mathrm{e}}=\tfrac32 k_\mathrm{B}/m_\mathrm{e}\).
Fixed at the analytic monatomic value, so the electron energy recovery of NUMERICS.md section 8 is a division rather than an iteration.
Implemented in rizer::CanteraThermo, rizer::GammaLawThermo, and rizer::PrescribedPressureThermo.
|
pure virtual |
Heavy-pool internal energy per kg of MIXTURE, \(e_\mathrm{H}=\sum_{s\neq\mathrm{e}}Y_se_s(T_\mathrm{H})\) – the basis that makes \(\rho e_\mathrm{H}\) the conserved variable of equation (4b).
Not per kg of heavy species.
| [in] | Tg | Heavy-pool temperature [K] |
| [in] | Y | Species mass fractions [-], length K |
Implemented in rizer::CanteraThermo, rizer::GammaLawThermo, and rizer::PrescribedPressureThermo.
|
pure virtual |
Invert \(e_\mathrm{H}\) for \(T_\mathrm{H}\) at fixed density and composition (NUMERICS.md section 8).
| [in] | rho | Mixture mass density [kg/m^3] |
| [in] | Y | Species mass fractions [-], length K |
| [in] | heavy_internal_energy_target | Target \(e_\mathrm{H}\) [J/kg of mixture] |
| [in] | Tg_seed | Previous \(T_\mathrm{H}\) [K], used to seed an iterative implementation; a closed-form one ignores it |
Implemented in rizer::CanteraThermo, rizer::GammaLawThermo, and rizer::PrescribedPressureThermo.
|
pure virtual |
Per-pool partial pressures, PHYSICS.md equation (G6).
| [in] | r | Node radius [m] |
| [in] | t | Current time [s] |
| [in] | rho | Mixture mass density [kg/m^3] |
| [in] | Tg | Heavy-pool temperature [K] |
| [in] | Te | Electron temperature [K] |
| [in] | Y | Species mass fractions [-], length K |
| [out] | p_heavy | Heavy-pool partial pressure [Pa] |
| [out] | p_electron | Electron partial pressure [Pa] |
Implemented in rizer::CanteraThermo, rizer::GammaLawThermo, and rizer::PrescribedPressureThermo.
|
pure virtual |
Sound speed, PHYSICS.md appendix A.4: the frozen two-pool speed \(c=\sqrt{(\gamma_\mathrm{H}p_\mathrm{H} +\gamma_\mathrm{e}p_\mathrm{e})/\rho}\), each pool following its own adiabat so that their isentropic bulk moduli add.
Sets the Rusanov dissipation coefficient and the CFL bound, both of which want an upper bound on the signal speed.
| [in] | r | Node radius [m] |
| [in] | t | Current time [s] |
| [in] | rho | Mixture mass density [kg/m^3] |
| [in] | Tg | Heavy-pool temperature [K] |
| [in] | Te | Electron temperature [K] |
| [in] | Y | Species mass fractions [-], length K |
Implemented in rizer::CanteraThermo, rizer::GammaLawThermo, and rizer::PrescribedPressureThermo.
|
inlinevirtual |
pressures(), soundSpeed() and heavyEnergy() at one state, in one call.
hydroStep() needs all three for every cell of every sub-cycle. This default composes the three methods; an accessor whose state is costly to set, such as CanteraThermo, overrides it to set the state once.
| [in] | r | Node radius [m] |
| [in] | t | Current time [s] |
| [in] | rho | Mixture mass density [kg/m^3] |
| [in] | Tg | Heavy-pool temperature [K] |
| [in] | Te | Electron temperature [K] |
| [in] | Y | Species mass fractions [-], length K |
Reimplemented in rizer::CanteraThermo.
Definition at line 136 of file ThermoAccessor.h.