Isentropic

This submodule holds the class IdealFlow and PrandtlMeyerExpansion, since both of them are considered under the study of ideal flow dynamics.

Isentropic properties.

class skaero.gasdynamics.isentropic.IsentropicFlow(gamma=1.4)

Class representing an isentropic gas flow.

Isentropic flow is characterized by:

  • Viscous and heat conductivity effects are negligible.

  • No chemical or radioactive heat production.

A_Astar(M)

Area ratio from Mach number.

Duct area divided by critial area given Mach number.

Parameters

M (array_like) – Mach number.

Returns

A_Astar – Area ratio.

Return type

array_like

T_T0(M)

Temperature ratio from Mach number.

\[\left ( \frac{T}{T_{0}} \right ) = \left (1 + \frac{\gamma - 1}{2}M^{2} \right )^{-1}\]
Parameters

M (array_like) – Mach number.

Returns

T_T0 – Temperature ratio.

Return type

array_like

a_a0(M)

Speed of sound ratio from Mach number.

Parameters

M (array_like) – Mach number.

Returns

a_a0 – Speed of sound ratio.

Return type

array_like

p_p0(M)

Pressure ratio from Mach number.

\[\left ( \frac{P}{P_{0}} \right ) = \left ( \frac{T}{T_{0}} \right )^{\frac{\gamma}{(\gamma - 1)}}\]
Parameters

M (array_like) – Mach number.

Returns

p_p0 – Pressure ratio.

Return type

array_like

rho_rho0(M)

Density ratio from Mach number.

\[\left ( \frac{\rho}{\rho_{0}} \right ) = \left ( \frac{T}{T_{0}} \right )^{\frac{1}{(\gamma - 1)}}\]
Parameters

M (array_like) – Mach number.

Returns

rho_rho0 – Density ratio.

Return type

array_like

class skaero.gasdynamics.isentropic.PrandtlMeyerExpansion(M_1, theta, fl=None, gamma=1.4)

Class representing a Prandtl-Meyer expansion fan.

property M_2

Downstream Mach number.

property T2_T1

Temperature ratio across the expansion fan.

property mu_1

Angle of forward Mach line.

property mu_2

Angle of rearward Mach line.

static nu(M, gamma=1.4)

Prandtl-Meyer angle for a given Mach number.

The result is given by evaluating the Prandtl-Meyer function.

\[\nu = \sqrt{\frac{\gamma + 1}{\gamma - 1}} \tan^{-1}\left [ \sqrt{\frac{\gamma - 1}{\gamma + 1}(M^{2} - 1)} \right ] - \tan^{-1}(\sqrt{M^{2} - 1})\]
Parameters
  • M (float) – Mach number.

  • gamma (float, optional) – Specific heat ratio, default 7 / 5.

Returns

nu – Prandtl-Meyer angle, in radians.

Return type

float

Raises

ValueError – If Mach number is subsonic.

property nu_1

Upstream Prandtl-Meyer angle.

property nu_2

Downstream Prandtl-Meyer angle.

property p2_p1

Pressure ratio across the expansion fan.

property rho2_rho1

Density ratio across the expansion fan.

skaero.gasdynamics.isentropic.mach_angle(M)

Returns Mach angle given supersonic Mach number.

\[\mu = \arcsin{\left ( \frac{1}{M} \right )}\]
Parameters

M (float) – Mach number.

Returns

mu – Mach angle.

Return type

float

Raises

ValueError – If given Mach number is subsonic.

skaero.gasdynamics.isentropic.mach_from_area_ratio(A_Astar, fl=None)

Computes the Mach number given an area ratio asuming isentropic flow.

Uses the relation between Mach number and area ratio for isentropic flow, and returns both the subsonic and the supersonic solution.

Parameters
  • A_Astar (float) – Cross sectional area.

  • fl (IsentropicFlow, optional) – Isentropic flow object, default flow with gamma = 7 / 5.

Returns

out – Subsonic and supersonic Mach number solution of the equation.

Return type

tuple of floats

Raises

ValueError – If the area ratio is less than 1.0 (the critical area is always the minimum).

skaero.gasdynamics.isentropic.mach_from_nu(nu, in_radians=True, gamma=1.4)

Computes the Mach number given a Prandtl-Meyer angle, \(\nu\).

Uses the relation between Mach number and Prandtl-Meyer angle for isentropic flow, to iteratively compute and return the Mach number.

Parameters
  • nu (float) – Prandtl-Meyer angle, by default in radians.

  • in_radians (bool, optional) – When set as False, converts nu from degrees to radians.

  • gamma (float, optional) – Specific heat ratio.

Returns

M – Mach number corresponding to \(\nu\).

Return type

float

Raises

ValueError – If \(\nu\) is 0 or negative or above the theoretical maxima based on \(\gamma\).