Пример #1
0
@author: j.gressier
"""

import numpy                 as np
import matplotlib.pyplot     as plt
import aero.Rayleigh         as ray

npoints = 100
gam     = 1.4

fig=plt.figure(1, figsize=(10,8))
fig.suptitle('Mach number evolution when heating, $\gamma = %.1f$'%gam, fontsize=12, y=0.93)

for M0 in [.1, .2, .3, .4, .5, .6, .7, .8, .9, 1.2, 1.5, 2., 3., 4., 6., 10., 20.]:
#for M0 in [.1, .5]:
    Timax = ray.maxTiratio_Mach(M0, gam)
    Ti    = np.log10(np.logspace(1., Timax, npoints+1))
    Mach  = ray.SubMach_TiTicri(Ti/Timax, gam) if M0 < 1 else ray.SupMach_TiTicri(Ti/Timax, gam)
    plt.plot(Ti, Mach, '-', color='#ff0000')

plt.axis([1., 10, .1, 10.])
plt.ylabel('Mach number', fontsize=10)
plt.xlabel('$T_i/T_{i0}$', fontsize=10)
plt.loglog()
#plt.ticklabel_format(axis='both', style='plain')
#plt.minorticks_on()
plt.grid(which='major', linestyle=':', alpha=0.5)
plt.grid(which='minor', linestyle=':', alpha=0.5)
fig.savefig('Rayleigh-heating.pdf', bbox_inches='tight')
plt.show()
Пример #2
0
plt.grid(which='major', linestyle=':', alpha=0.5)

plt.subplot(313)
plt.ylabel('$T_{i4}/T_{i3}$', fontsize=10)
plt.ylabel('$M_{3}$', fontsize=10)
plt.grid(which='major', linestyle=':', alpha=0.5)

# --- (FS) fully supersonic flow (not expected on design)

M3sup    = mf.Mach_Sigma(A3A2*mf.Sigma_Mach(M2, gam), gam)
M4max    = mf.Mach_Sigma(A3A2/A8A2, 2., gam)  # look for supersonic value
alphamax = ray.Ti_Ticri(M4max, gam)/ray.Ti_Ticri(M3sup, gam)
print "unchoking of fully supersonic flow for Ti4/Ti0 = %6.3f"%(alphamax)

FSalpha = np.log10(np.logspace(1., alphamax, npts+1))
FSm4    = ray.SupMach_TiTicri(FSalpha/alphamax*ray.Ti_Ticri(M4max, gam), gam)
FSpi4   = ray.Pi_Picri(FSm4, gam)/ray.Pi_Picri(M3sup, gam)
FSpi3   = np.ones(npts+1)
FSm3    = M3sup*np.ones(npts+1)

plt.subplot(311)
plt.plot(FSalpha, FSpi3, '-', color='#ff0000')
plt.subplot(312)
plt.plot(FSalpha, FSpi4, '-', color='#ff0000')
plt.subplot(313)
plt.plot(FSalpha, FSm3, '-', color='#ff0000')

# --- (CW) conventional working state

# M8 is sonic so M4 is known
CWm4 = mf.Mach_Sigma(A3A2/A8A2, .1, gam)  # look for subsonic value