Source code for pymead.analysis.compressible_flow



[docs] def calculate_normal_shock_total_pressure_ratio(M_up: float, gam: float) -> float: """ Normal-shock relation that calculates the total pressure ratio across a shock (:math:`p_{t,y} / p_{t,x}` , where :math:`x` is the state immediately upstream of the shock, and :math:`y` is the state immediately downstream of the shock). Parameters ========== M_up: float Mach number immediately upstream of the shock and normal to the shock (:math:`M_x`) gam: float Specific heat ratio Returns ======= float Total pressure ratio across the shock wave, :math:`p_{t,y} / p_{t,x}` """ A = (gam + 1) / 2 * M_up**2 B = 1 + (gam - 1) / 2 * M_up**2 C = 2 * gam * M_up**2 / (gam + 1) D = (gam - 1) / (gam + 1) return (A / B) ** (gam / (gam - 1)) * (C - D) ** (1 / (1 - gam))