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.
-
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. ↩
-
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:
- Incident shock velocity (\(u_1\)) and initial conditions (\(T_1\), \(P_1\))
- Reflected shock conditions (\(T_5\), \(P_5\)) and initial temperature (\(T_1\))
Parameters:
-
thermo
(ThermoInterface
) –Thermodynamic interface.
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: