Rayleigh Flow Relations¶
High-level API¶
minuteman.cpg.rayleigh.lookup_table_by_density ¶
lookup_table_by_density(
density_ratio: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat = 1.4
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the static density ratio, \(\rho / \rho^*\)
Parameters:
-
density_ratio(ArraylikeFloat) –static density ratio, \(\rho / \rho^*\). Bounds: \(\left(\frac{\gamma}{1+\gamma}, \infty \right)\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
minuteman.cpg.rayleigh.lookup_table_by_entropy ¶
lookup_table_by_entropy(
entropy_ratio: ArraylikeFloat,
specific_heat_ratio: ArraylikeFloat = 1.4,
flow_regime: ArraylikeFlowSpeedRegime = FlowSpeedRegime.supersonic,
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the specific entropy ratio, \((s^* - s) / R\)
Parameters:
-
entropy_ratio(ArraylikeFloat) –specific entropy ratio, \((s^* - s) / R\). Bounds: \([0, \infty)\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
-
flow_regime(ArraylikeFlowSpeedRegime, default:supersonic) –flow speed regime (either supersonic or subsonic).
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
minuteman.cpg.rayleigh.lookup_table_by_mach ¶
lookup_table_by_mach(
mach: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat = 1.4
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the Mach number, \(M\)
Parameters:
-
mach(ArraylikeFloat) –Mach number, \(M\). Bounds: \((0, \infty)\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
minuteman.cpg.rayleigh.lookup_table_by_pressure ¶
lookup_table_by_pressure(
pressure_ratio: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat = 1.4
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the static pressure_ratio, \(p / p^*\)
Parameters:
-
pressure_ratio(ArraylikeFloat) –static pressure ratio, \(p / p^*\). Bounds: \((0, \gamma+1)\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
minuteman.cpg.rayleigh.lookup_table_by_temperature ¶
lookup_table_by_temperature(
temperature_ratio: ArraylikeFloat,
specific_heat_ratio: ArraylikeFloat = 1.4,
flow_regime: ArraylikeRayleighTemperatureRegime = RayleighTemperatureRegime.highspeed,
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the static temperature ratio, \(T / T^*\)
Parameters:
-
temperature_ratio(ArraylikeFloat) –static temperature ratio, \(T / T^*\). Bounds: \(\left(0, \frac{1}{4} \left(\gamma + \frac{1}{\gamma}\right) + \frac{1}{2} \right]\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
-
flow_regime(ArraylikeRayleighTemperatureRegime, default:highspeed) –Rayleigh flow speed regime based upon \(T_{max}\).
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
minuteman.cpg.rayleigh.lookup_table_by_total_pressure ¶
lookup_table_by_total_pressure(
total_pressure_ratio: ArraylikeFloat,
specific_heat_ratio: ArraylikeFloat = 1.4,
flow_regime: ArraylikeFlowSpeedRegime = FlowSpeedRegime.supersonic,
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the total pressure ratio, \(p_0 / p_0^*\)
Parameters:
-
total_pressure_ratio(ArraylikeFloat) –total pressure ratio, \(p_0 / p_0^*\). Subsonic Bounds: \(\left[1, \left(1+\gamma\right) \left(\frac{2}{\gamma+1}\right)^\frac{\gamma}{\gamma-1}\right)\) , Supersonic Bounds: \([1, \infty)\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
-
flow_regime(ArraylikeFlowSpeedRegime, default:supersonic) –flow speed regime (either supersonic or subsonic).
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
minuteman.cpg.rayleigh.lookup_table_by_total_temperature ¶
lookup_table_by_total_temperature(
total_temperature_ratio: ArraylikeFloat,
specific_heat_ratio: ArraylikeFloat = 1.4,
flow_regime: ArraylikeFlowSpeedRegime = FlowSpeedRegime.supersonic,
) -> RayleighFlowTable
Look up a Rayleigh flow table result from the total temperature ratio, \(T_0 / T_0^*\)
Parameters:
-
total_temperature_ratio(ArraylikeFloat) –total temperature ratio, \(T_0 / T_0^*\). Subsonic Bounds: \((0, 1]\), Supersonic Bounds: \(\left[\frac{(\gamma+1)(\gamma-1)}{\gamma^2}, 1\right]\)
-
specific_heat_ratio(ArraylikeFloat, default:1.4) –ratio of specific heats, \(\gamma\). Bounds \((1, 1.67]\)
-
flow_regime(ArraylikeFlowSpeedRegime, default:supersonic) –flow speed regime (either supersonic or subsonic).
Returns:
-
RayleighFlowTable–Rayleigh flow output table
Raises:
-
OutOfBoundsError–invalid inputs
Low-level API¶
minuteman.cpg.rayleigh.density_ratio_by_mach ¶
density_ratio_by_mach(
mach_initial: ArraylikeFloat, mach_final: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat
) -> NDArrayFloat
Compute the density ratio \(\rho_2 / \rho_1\) from the Mach number for Rayleigh flow.
Parameters:
-
mach_initial(ArraylikeFloat) –Initial Mach number, \(M_1\). This is the reference Mach number, \(M^*\), when equal to unity.
-
mach_final(ArraylikeFloat) –Final Mach number, \(M_2\). This is simply the Mach number, \(M\), when
mach_initial==1.0 -
specific_heat_ratio(ArraylikeFloat) –ratio of specific heats, \(\gamma\)
Returns:
-
NDArrayFloat–Density ratio, \(\rho_2 / \rho_1\) (\(\rho / \rho^*\) if \(M_1=1.0\))
minuteman.cpg.rayleigh.entropy_ratio_by_mach ¶
entropy_ratio_by_mach(
mach_initial: ArraylikeFloat, mach_final: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat
) -> NDArrayFloat
Compute the specific entropy ratio \((s_2-s_1) / R\) from the Mach number \(M\) for Rayleigh flow.
Parameters:
-
mach_initial(ArraylikeFloat) –Initial Mach number, \(M_1\). This is the reference Mach number, \(M^*\), when equal to unity.
-
mach_final(ArraylikeFloat) –Final Mach number, \(M_2\). This is simply the Mach number, \(M\), when
mach_initial==1.0 -
specific_heat_ratio(ArraylikeFloat) –ratio of specific heats, \(\gamma\)
Returns:
-
NDArrayFloat–Entropy ratio, \((s_2-s_1) / R\) (\((s - s^*) / R\) if \(M_1=1.0\))
minuteman.cpg.rayleigh.pressure_ratio_by_mach ¶
pressure_ratio_by_mach(
mach_initial: ArraylikeFloat, mach_final: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat
) -> NDArrayFloat
Compute the static pressure ratio \(p_2 / p_1\) from the Mach number \(M\) for Rayleigh flow.
Parameters:
-
mach_initial(ArraylikeFloat) –Initial Mach number, \(M_1\). This is the reference Mach number, \(M^*\), when equal to unity.
-
mach_final(ArraylikeFloat) –Final Mach number, \(M_2\). This is simply the Mach number, \(M\), when
mach_initial==1.0 -
specific_heat_ratio(ArraylikeFloat) –ratio of specific heats, \(\gamma\)
Returns:
-
NDArrayFloat–Static pressure ratio, \(p_2 / p_1\) (\(p / p^*\) if \(M_1=1.0\))
minuteman.cpg.rayleigh.temperature_ratio_by_mach ¶
temperature_ratio_by_mach(
mach_initial: ArraylikeFloat, mach_final: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat
) -> NDArrayFloat
Compute the static temperature ratio \(T_2 / T_1\) from the Mach number for Rayleigh flow.
Parameters:
-
mach_initial(ArraylikeFloat) –Initial Mach number, \(M_1\). This is the reference Mach number, \(M^*\), when equal to unity.
-
mach_final(ArraylikeFloat) –Final Mach number, \(M_2\). This is simply the Mach number, \(M\), when
mach_initial==1.0 -
specific_heat_ratio(ArraylikeFloat) –ratio of specific heats, \(\gamma\)
Returns:
-
NDArrayFloat–Static temperature ratio, \(T_2 / T_1\) (\(T / T^*\) if \(M_1=1.0\))
minuteman.cpg.rayleigh.total_pressure_ratio_by_mach ¶
total_pressure_ratio_by_mach(
mach_initial: ArraylikeFloat, mach_final: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat
) -> NDArrayFloat
Compute the total pressure ratio \(p_{02} / p_{01}\) from the Mach number for Rayleigh flow.
Parameters:
-
mach_initial(ArraylikeFloat) –Initial Mach number, \(M_1\). This is the reference Mach number, \(M^*\), when equal to unity.
-
mach_final(ArraylikeFloat) –Final Mach number, \(M_2\). This is simply the Mach number, \(M\), when
mach_initial==1.0 -
specific_heat_ratio(ArraylikeFloat) –ratio of specific heats, \(\gamma\)
Returns:
-
NDArrayFloat–Total pressure ratio, \(p_{02} / p_{01}\) (\(p_0 / p_0^*\) if \(M_1=1.0\))
minuteman.cpg.rayleigh.total_temperature_ratio_by_mach ¶
total_temperature_ratio_by_mach(
mach_initial: ArraylikeFloat, mach_final: ArraylikeFloat, specific_heat_ratio: ArraylikeFloat
) -> NDArrayFloat
Compute the total temperature ratio \(T_{02} / T_{01}\) from the Mach number \(M\) for Rayleigh flow.
Parameters:
-
mach_initial(ArraylikeFloat) –Initial Mach number, \(M_1\). This is the reference Mach number, \(M^*\), when equal to unity.
-
mach_final(ArraylikeFloat) –Final Mach number, \(M_2\). This is simply the Mach number, \(M\), when
mach_initial==1.0 -
specific_heat_ratio(ArraylikeFloat) –ratio of specific heats, \(\gamma\)
Returns:
-
NDArrayFloat–Total temperature ratio, \(T_{02} / T_{01}\) (\(T_0 / T_0^*\) if \(M_1=1.0\))
Data Structures¶
minuteman.cpg.rayleigh.ArraylikeRayleighTemperatureRegime: TypeAlias = npt.NDArray[np.object_] | list[RayleighTemperatureRegime] | RayleighTemperatureRegime
module-attribute
¶
Arraylike of RayleighTemperatureRegime objects
minuteman.cpg.rayleigh.RayleighFlowTable
dataclass
¶
Rayleigh flow table where the initial Mach number \(M_1=M^*=1.0\)
mach: NDArrayFloat
instance-attribute
¶
Mach number, \(M\).
temperature_ratio: NDArrayFloat
instance-attribute
¶
Static temperature ratio, \(T / T^*\)
pressure_ratio: NDArrayFloat
instance-attribute
¶
Static pressure ratio, \(p / p^*\)
density_ratio: NDArrayFloat
instance-attribute
¶
Density ratio, \(\rho / \rho^*\)
velocity_ratio: NDArrayFloat
property
¶
Velocity ratio, \(u / u^*\)
total_pressure_ratio: NDArrayFloat
instance-attribute
¶
Total pressure ratio, \(p_0 / p_0^*\)
total_temperature_ratio: NDArrayFloat
instance-attribute
¶
Total temperature ratio, \(T_0 / T_0^*\)
entropy_ratio: NDArrayFloat
instance-attribute
¶
Specific entropy ratio, \((s^* - s) / R\)
specific_heat_ratio: NDArrayFloat
instance-attribute
¶
Ratio of specific heats, \(\gamma\)
minuteman.cpg.rayleigh.RayleighTemperatureRegime
¶
Bases: Enum
Is the condition above or below \(M=1/\gamma\) where max temperature occurs
References¶
- Niemeyer, K. Flows with heat transfer (Rayleigh flows). Gas Dynamics Notes. Retrieved August 1, 2026, from https://kyleniemeyer.github.io/gas-dynamics-notes/compressible-flows/heat-transfer/