@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()
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