rizer.hybrid.engineering_model.dataclass.pulse#

Classes#

Module Contents#

class rizer.hybrid.engineering_model.dataclass.pulse.BasePulseInputs#
ΔE_pulse: float#

Energy deposited during the spark pulse [J].

r_0: float#

Initial discharge radius [m].

L_gap: float#

Discharge length [m]. Assumed constant.

T_0: float#

Initial temperature of the discharge [K].

P_0: float#

Initial pressure of the discharge [Pa].

X_0: str | dict[str, float]#

Initial gas mixture composition. Either as a Cantera string (e.g., ‘CH4:1’ or ‘O2:0.21, N2:0.79’), or a dictionary of species mole fractions (e.g., {‘O2’: 0.21, ‘N2’: 0.79}).

mechanism_path: str = 'NASA9_thermo.yaml'#

Name of the Cantera mechanism file (to compute thermodynamic properties). Should be located in the data/thermo directory of the package.

gas: cantera.Solution#

Cantera gas object representing the initial gas mixture.

rho_ini: float#

Initial density of the discharge [kg/m^3].

Computed from the initial temperature, pressure and composition using Cantera, under the ideal gas assumption.

M_ini: float#

Molar mass of the gas [kg/mol].

Computed from initial composition using Cantera.

ΔE_pulse_per_vol_J_m3: float#

Energy deposited per unit volume during the spark pulse [J/m^3].

\[\Delta E_{pulse, per\_vol} = \frac{\Delta E_{pulse}}{V}\]

where:

  • \(\Delta E_{pulse}\) is the energy deposited during the spark pulse,

  • \(V=\pi R_d^2 L_{gap}\) is the volume of the discharge, approximated as a cylinder.

class rizer.hybrid.engineering_model.dataclass.pulse.ThermalSparkInputs#

Bases: BasePulseInputs

scenario_thermal_spark: str = 'LTE'#

Scenario for the thermal spark model. Supported scenarios are ‘LTE’ and ‘frozen’.

class rizer.hybrid.engineering_model.dataclass.pulse.NonThermalSparkInputs#

Bases: BasePulseInputs

theta_uh: float#

Fraction of the deposited energy that goes to trans-rotational ultrafast heating.

theta_sh: float#

Fraction of the deposited energy that goes to vibrational heating.

Theta_vib: float#

Characteristic vibrational temperature [K].

cv_vib_max: float#

Maximum vibrational heat capacity [J/(kg.K)].

cv_tr_rot: float#

Specific trans-rotational heat capacity [J/(kg.K)].

cv_tr_rot_init: dataclasses.InitVar[float | None] = None#

Specific trans-rotational heat capacity [J/(kg.K)].

If not provided, it will be computed from n_freedom and M.

n_freedom: dataclasses.InitVar[float | None] = None#

Number of degrees of freedom for the trans-rotational modes.

If not provided, cv_tr_rot_init must be provided. If provided, cv_tr_rot_init must not be provided, as it will be computed via:

\[c_{v, tr\_rot} = \frac{1}{2} n_{freedom} \frac{R}{M}\]
class rizer.hybrid.engineering_model.dataclass.pulse.PulseOutputs#
T_k: float#

Kernel temperature after the spark pulse [K].

P_k: float#

Kernel pressure after the spark pulse [Pa].

T_v: float#

Vibrational temperature after the spark pulse [K].

X_k: dict[str, float]#

Kernel composition after the spark pulse (mole fractions).