rizer.models.nrp.engineering_model.expansion#

Classes#

ExpansionInputs

ExpansionModel

Compute temperature and pressure during the expansion phase.

Module Contents#

class rizer.models.nrp.engineering_model.expansion.ExpansionInputs#
T_k: float#

Kernel temperature after the spark pulse [K].

P_k: float#

Kernel pressure after the spark pulse [Pa].

X_k: dict[str, float]#

Kernel composition after the spark pulse (mole fractions).

T_amb: float#

Temperature of the surrounding gas outside the kernel [K].

P_amb: float#

Pressure of the surrounding gas outside the kernel [Pa].

X_amb: str#

Molar fraction of the gas outside the kernel.

M_out: float#

Molar mass of the gas outside the kernel [kg/mol].

r_0: float#

Initial discharge radius [m].

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.

gamma_k: float#

Specific heat ratio of the kernel gas after the spark pulse. Computed from the kernel composition and temperature.

M_k: float#

Molar mass of the kernel gas after the spark pulse [kg/mol]. Computed from the kernel composition and temperature.

τ_rarefaction_s: float#

Characteristic time scale for the rarefaction wave to propagate across the kernel [s].

The instant at which the pressure and temperature start to fall.

T_rarefaction_K: float#

Temperature of the rarefaction wave [K].

δ_rarefaction_s: float#

Duration of the abrupt fall [s].

P_rarefaction_Pa: float#

Pressure after the abrupt fall due to the rarefaction wave [Pa].

static beta_1(gamma: float) → float#
static beta_2(gamma: float) → float#
class rizer.models.nrp.engineering_model.expansion.ExpansionModel(inputs: ExpansionInputs)#

Compute temperature and pressure during the expansion phase.

Main assumptions of the expansion model are:

  • (a1) 1D cylindrical configuration.

  • (a2) Inviscid flow.

  • (a3) Calorically perfect gas.

  • (a4) Constant adiabatic index and molar mass inside and outside the kernel.

  • (a5) Ideal gas.

  • (a6) Gas initially at rest.

  • (a7) Negligible heat diffusion.

  • (a8) Stepwise initial profiles for T and P.

  • (a9) Reversible and adiabatic expansion in the enclosed domain.

Parameters:

inputs (ExpansionInputs) – Inputs for the expansion model.

Notes

The expansion model is based on the equations (Eq. 17 and 18) of [Roger2026].

inputs#
T1(t: float) → float#
P1(t: float) → float#
solve(t_eval: numpy.ndarray) → rizer.models.nrp.engineering_model.base.TimeSeriesState#

Compute the temperature and pressure at the given time points.

Parameters:

t_eval (numpy.ndarray) – Time points at which to evaluate the temperature and pressure.

Returns:

Temperature and pressure at the given time points.

Return type:

TimeSeriesState