Skip to content

rgfrosh.shock.FrozenShock

Bases: Shock

A class for calculating properties in various regions of a reflected shock given the ThermoInterface for a mixture. The incident and reflected solver equations are from Davidson and Hanson1. The equations for the initial conditions solver were derived in the appendix of the cited dissertation2.


  1. Davidson, D. F. and R. K. Hanson (1996). "Real Gas Corrections in Shock Tube Studies at High Pressures." Israel Journal of Chemistry 36(3): 321-326. 

  2. Kinney, Cory, "Extreme-Pressure Ignition Studies of Methane and Natural Gas with CO2 with Applications in Rockets and Gas Turbines" (2022). Electronic Theses and Dissertations, 2020-. 1033. https://stars.library.ucf.edu/etd2020/1033 

max_iter: int = 1000 class-attribute instance-attribute

Maximum number of iterations for the solver.

rtol: float = 1e-06 class-attribute instance-attribute

Relative tolerance for the solver convergence criteria.

Z property

Compressibility factor (\(Z\)) at the reflected shock conditions.

__init__(thermo: ThermoInterface, *, u1: float = None, T1: float = 300, P1: float = None, T5: float = None, P5: float = None)

Solves the frozen shock equations for the following combination of parameters:

  1. Incident shock velocity (\(u_1\)) and initial conditions (\(T_1\), \(P_1\))
  2. Reflected shock conditions (\(T_5\), \(P_5\)) and initial temperature (\(T_1\))

Parameters:

Other Parameters:

  • u1 (float) –

    Incident shock velocity [m/s].

  • T1 (float) –

    Initial temperature [K].

  • P1 (float) –

    Initial pressure [Pa].

  • T5 (float) –

    Temperature behind the reflected shock [K].

  • P5 (float) –

    Pressure behind the reflected shock [Pa].

Raises:

  • ValueError

    If the system is underconstrained/overconstrained.

solve_incident(thermo: ThermoInterface, u1: float, T1: float, P1: float) -> Tuple[float, float, float, float] staticmethod

Solves for the conditions behind the incident shock.

Parameters:

  • thermo (ThermoInterface) –

    Thermodynamic interface.

  • u1 (float) –

    Incident shock velocity [m/s].

  • T1 (float) –

    Initial temperature [K].

  • P1 (float) –

    Initial pressure [Pa].

Returns:

  • u2 ( float ) –

    Velocity behind the incident shock (shock-fixed) [m/s].

  • T2 ( float ) –

    Temperature behind the incident shock [K].

  • P2 ( float ) –

    Pressure behind the incident shock [Pa].

  • rho2 ( float ) –

    Density behind the incident shock [kg/m3].

Raises:

solve_reflected(thermo: ThermoInterface, u1: float, P1: float, u2: float, T2: float, P2: float) -> Tuple[float, float, float, float] staticmethod

Solves for the conditions behind the reflected shock.

Parameters:

  • thermo (ThermoInterface) –

    Thermodynamic interface.

  • u1 (float) –

    Incident shock velocity [m/s].

  • P1 (float) –

    Initial pressure [Pa].

  • u2 (float) –

    Velocity behind the incident shock (shock-fixed) [m/s].

  • T2 (float) –

    Temperature behind the incident shock [K].

  • P2 (float) –

    Pressure behind the incident shock [Pa].

Returns:

  • u5 ( float ) –

    Reflected shock velocity [m/s].

  • T5 ( float ) –

    Temperature behind the reflected shock [K].

  • P5 ( float ) –

    Pressure behind the reflected shock [Pa].

  • rho5 ( float ) –

    Density behind the reflected shock [kg/m3].

Raises:

solve_initial(thermo: ThermoInterface, T5: float, P5: float, T1: float = 300) staticmethod

Solves for the initial pressure and incident shock velocity given the target post-reflected-shock conditions.

Parameters:

  • thermo (ThermoInterface) –

    Thermodynamic interface.

  • T5 (float) –

    Temperature behind the reflected shock [K].

  • P5 (float) –

    Pressure behind the reflected shock [Pa].

  • T1 (float, default: 300 ) –

    Initial temperature [K].

Raises: