rizer.models.nrp.engineering_model.diffusion#
Classes#
Compute temperature and pressure during the diffusion phase. |
Module Contents#
- class rizer.models.nrp.engineering_model.diffusion.DiffusionInputs#
-
- T_TE_K: float#
Temperature after thermal equilibration between vibrational and trans-rotational modes [K].
- alpha: Callable[[float], float]#
Thermal diffusivity of the gas during the diffusion phase [m^2/s].
Returns the thermal diffusivity as a function of temperature.
- alpha_model: str = 'constant'#
Model to compute the thermal diffusivity of the gas during the diffusion phase.
Can be either:
constant: Use a constant thermal diffusivity. The value is specified by alpha_constant.
file: Use a thermal diffusivity that depends on temperature, read from a file. The file should be located in the ./data/transport/ directory of the package, and specified by alpha_file_gas_name, alpha_file_pressure_atm and alpha_file_source.
ThermoTransportDataReader: Use a thermal diffusivity that depends on temperature, provided directly as a ThermoTransportDataReader object in alpha_thermo_transport_data.
- alpha_constant: dataclasses.InitVar[float | None] = None#
Thermal diffusivity of the gas during the diffusion phase [m^2/s]. Assumed constant if provided.
- alpha_file_gas_name: dataclasses.InitVar[str | None] = None#
Gas name for a file containing thermo/transport data as a function of temperature. The file should be located in the ./data/transport/ directory of the package
- alpha_file_pressure_atm: dataclasses.InitVar[int | None] = None#
Pressure at which the thermal diffusivity data is valid [atm].
- alpha_file_source: dataclasses.InitVar[str | None] = None#
Source or reference for the thermal diffusivity data file.
- alpha_thermo_transport_data: dataclasses.InitVar[rizer.io.lte.thermo_transport_data_reader.ThermoTransportDataReader | None] = None#
ThermoTransportDataReader object containing the thermal diffusivity data as a function of temperature. If provided, it will be used directly instead of reading from a file.
- alpha_nb_zeros_to_use: int = 100#
Number of zeros of the Bessel function of the first kind of order 0 to use in the computation of the temperature during the diffusion phase.
- diffusion_model: str = 'simple_model'#
Model to compute the temperature during the diffusion phase.
simple_model: Use a constant thermal diffusivity.
intermediate_model: Use a thermal diffusivity that depends on temperature.
refined_model: Use a thermal diffusivity that depends on temperature with a time-evolving radius.
- class rizer.models.nrp.engineering_model.diffusion.DiffusionModel(inputs: DiffusionInputs)#
Compute temperature and pressure during the diffusion phase.
Main assumptions of the diffusion model are:
(a1) Plasma remained within an enclosed surface during the expansion.
(a2) Isentropic expansion.
(a3) Constant number of particles.
(a4) Ideal gas.
(a5) 1D cylindrical configuration.
(a6) Uniform pressure (equal to P_out), incompressible flow.
(a7) Calorically perfect gas and constant thermal diffusivity.
(a8) Gas initially at rest.
(a9) Splitting of the timescales associated with VT energy transfer and expansion. (loosely coupling only).
(a10) Rectangular initial profiles for T.
(a11) Dirichlet boundary condition, T(ξ_exp R_d, t) = T_out.
The refined model does not presuppose the assumptions (a7) and (a11).
- Parameters:
inputs (
DiffusionInputs) – Inputs for the diffusion model.
- inputs#
- diffusion_model#
- zeros_bessel_j0#
- last_T3#
- r_refined#
- solve(t_eval: numpy.ndarray, T2: Callable[[float], float], P2: Callable[[float], float]) 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: