Kernel: Python 3 (ipykernel)
In [1]:
import numpy as np import h5py as h5 import matplotlib.pyplot as plt from matplotlib import rcParams from matplotlib.colors import LinearSegmentedColormap as LinSegCMap from matplotlib.ticker import LinearLocator import warnings warnings.filterwarnings('ignore') rcParams['font.family'] = 'serif' rcParams['font.serif'] = ['Computer Modern Roman'] rcParams['text.usetex'] = True rcParams['xtick.major.size']=7 rcParams['ytick.major.size']=7 rcParams['xtick.minor.size']=3.5 rcParams['ytick.minor.size']=3.5 rcParams['xtick.labelsize']=10 rcParams['ytick.labelsize']=10 rcParams['contour.negative_linestyle'] = 'solid'
In [2]:
all_positive_colormap = LinSegCMap.from_list(name='all_positive_colormap', colors =['1.0','red','darkred','salmon','cyan','chartreuse','yellow','magenta','purple','plum','blue','darkblue','green'], N=257)
In [3]:
F = h5.File('../data/P0550.h5','r') Re_tau = F['Re_tau'][()] u_tau = F['u_tau'][()] dUdy_wall = F['dUdy'][()] LMFx = F['LMFx'][()] LMFz = F['LMFz'][()] kx_org = F['kx'][()] kz_org = F['kz'][()] kx, kz = np.meshgrid(kx_org,kz_org) k_ref = Re_tau / 50000 k_ref_inv = 50000/Re_tau k = np.sqrt(kx*kx + kz*kz) kx_sharp = kx / k * np.log10(k*k_ref_inv) kz_sharp = kz / k * np.log10(k*k_ref_inv) kx_sharp[0,0] = 0.0 kz_sharp[0,0] = 0.0 E_E_uu_wall = F['Spectra_E_uu_wall'][()] print('E_uu_plus at wall: ', np.sum(E_E_uu_wall)/dUdy_wall/u_tau/u_tau/LMFx/LMFz) # Multiply Jacobian and normalization factor E_E_uu_wall = E_E_uu_wall * np.log(10)*k*k/np.log10(k*k_ref_inv)/dUdy_wall/u_tau/u_tau; E_E_uu_wall[0,0] = 0.0 F.close() P0550_kx_sharp = kx_sharp P0550_kz_sharp = kz_sharp P0550_E_E_uu_wall = E_E_uu_wall P0550_k_ref_inv = k_ref_inv P0550_Re_tau = Re_tau
Out[3]:
E_uu_plus at wall: 0.32741379788944264
In [4]:
F = h5.File('../data/P1000.h5','r') Re_tau = F['Re_tau'][()] u_tau = F['u_tau'][()] dUdy_wall = F['dUdy'][()] LMFx = F['LMFx'][()] LMFz = F['LMFz'][()] kx_org = F['kx'][()] kz_org = F['kz'][()] kx, kz = np.meshgrid(kx_org,kz_org) k_ref = Re_tau / 50000 k_ref_inv = 50000/Re_tau k = np.sqrt(kx*kx + kz*kz) kx_sharp = kx / k * np.log10(k*k_ref_inv) kz_sharp = kz / k * np.log10(k*k_ref_inv) kx_sharp[0,0] = 0.0 kz_sharp[0,0] = 0.0 E_E_uu_wall = F['Spectra_E_uu_wall'][()] print('E_uu_plus at wall: ', np.sum(E_E_uu_wall)/dUdy_wall/u_tau/u_tau/LMFx/LMFz) # Multiply Jacobian and normalization factor E_E_uu_wall = E_E_uu_wall * np.log(10)*k*k/np.log10(k*k_ref_inv)/dUdy_wall/u_tau/u_tau; E_E_uu_wall[0,0] = 0.0 F.close() P1000_kx_sharp = kx_sharp P1000_kz_sharp = kz_sharp P1000_E_E_uu_wall = E_E_uu_wall P1000_k_ref_inv = k_ref_inv P1000_Re_tau = Re_tau
Out[4]:
E_uu_plus at wall: 0.3506518925813357
In [5]:
F = h5.File('../data/P2000.h5','r') Re_tau = F['Re_tau'][()] u_tau = F['u_tau'][()] dUdy_wall = F['dUdy'][()] LMFx = F['LMFx'][()] LMFz = F['LMFz'][()] kx_org = F['kx'][()] kz_org = F['kz'][()] kx, kz = np.meshgrid(kx_org,kz_org) k_ref = Re_tau / 50000 k_ref_inv = 50000/Re_tau k = np.sqrt(kx*kx + kz*kz) kx_sharp = kx / k * np.log10(k*k_ref_inv) kz_sharp = kz / k * np.log10(k*k_ref_inv) kx_sharp[0,0] = 0.0 kz_sharp[0,0] = 0.0 E_E_uu_wall = F['Spectra_E_uu_wall'][()] print('E_uu_plus at wall: ', np.sum(E_E_uu_wall)/dUdy_wall/u_tau/u_tau/LMFx/LMFz) # Multiply Jacobian and normalization factor E_E_uu_wall = E_E_uu_wall * np.log(10)*k*k/np.log10(k*k_ref_inv)/dUdy_wall/u_tau/u_tau; E_E_uu_wall[0,0] = 0.0 F.close() P2000_kx_sharp = kx_sharp P2000_kz_sharp = kz_sharp P2000_E_E_uu_wall = E_E_uu_wall P2000_k_ref_inv = k_ref_inv P2000_Re_tau = Re_tau
Out[5]:
E_uu_plus at wall: 0.3740255321560216
In [6]:
F = h5.File('../data/P5200.h5','r') Re_tau = F['Re_tau'][()] u_tau = F['u_tau'][()] dUdy_wall = F['dUdy'][()] LMFx = F['LMFx'][()] LMFz = F['LMFz'][()] kx_org = F['kx'][()] kz_org = F['kz'][()] kx, kz = np.meshgrid(kx_org,kz_org) k_ref = Re_tau / 50000 k_ref_inv = 50000/Re_tau k = np.sqrt(kx*kx + kz*kz) kx_sharp = kx / k * np.log10(k*k_ref_inv) kz_sharp = kz / k * np.log10(k*k_ref_inv) kx_sharp[0,0] = 0.0 kz_sharp[0,0] = 0.0 E_E_uu_wall = F['Spectra_E_uu_wall'][()] print('E_uu_plus at wall: ', np.sum(E_E_uu_wall)/dUdy_wall/u_tau/u_tau/LMFx/LMFz) # Multiply Jacobian and normalization factor E_E_uu_wall = E_E_uu_wall * np.log(10)*k*k/np.log10(k*k_ref_inv)/dUdy_wall/u_tau/u_tau; E_E_uu_wall[0,0] = 0.0 F.close() P5200_kx_sharp = kx_sharp P5200_kz_sharp = kz_sharp P5200_E_E_uu_wall = E_E_uu_wall P5200_k_ref_inv = k_ref_inv P5200_Re_tau = Re_tau
Out[6]:
E_uu_plus at wall: 0.3990448752433831
In [7]:
Re_tau = P0550_Re_tau k_ref_inv = P0550_k_ref_inv k_for_lambda_1e1 = np.log10(np.pi*2/(1e1/Re_tau)*k_ref_inv) lambda_1e1_x = np.arange(10001)/10000*k_for_lambda_1e1 lambda_1e1_y = np.sqrt(k_for_lambda_1e1**2 - lambda_1e1_x**2) k_for_lambda_1e2 = np.log10(np.pi*2/(1e2/Re_tau)*k_ref_inv) lambda_1e2_x = np.arange(10001)/10000*k_for_lambda_1e2 lambda_1e2_y = np.sqrt(k_for_lambda_1e2**2 - lambda_1e2_x**2) k_for_lambda_1e3 = np.log10(np.pi*2/(1e3/Re_tau)*k_ref_inv) lambda_1e3_x = np.arange(10001)/10000*k_for_lambda_1e3 lambda_1e3_y = np.sqrt(k_for_lambda_1e3**2 - lambda_1e3_x**2) k_for_lambda_1e4 = np.log10(np.pi*2/(1e4/Re_tau)*k_ref_inv) lambda_1e4_x = np.arange(10001)/10000*k_for_lambda_1e4 lambda_1e4_y = np.sqrt(k_for_lambda_1e4**2 - lambda_1e4_x**2) k_for_lambda_1e5 = np.log10(np.pi*2/(1e5/Re_tau)*k_ref_inv) lambda_1e5_x = np.arange(10001)/10000*k_for_lambda_1e5 lambda_1e5_y = np.sqrt(k_for_lambda_1e5**2 - lambda_1e5_x**2) P0550_lambda_1e1_x = lambda_1e1_x[:]; P0550_lambda_1e1_y = lambda_1e1_y[:]; P0550_lambda_1e2_x = lambda_1e2_x[:]; P0550_lambda_1e2_y = lambda_1e2_y[:]; P0550_lambda_1e3_x = lambda_1e3_x[:]; P0550_lambda_1e3_y = lambda_1e3_y[:]; P0550_lambda_1e4_x = lambda_1e4_x[:]; P0550_lambda_1e4_y = lambda_1e4_y[:]; P0550_lambda_1e5_x = lambda_1e5_x[:]; P0550_lambda_1e5_y = lambda_1e5_y[:];
In [8]:
Re_tau = P1000_Re_tau k_ref_inv = P1000_k_ref_inv k_for_lambda_1e1 = np.log10(np.pi*2/(1e1/Re_tau)*k_ref_inv) lambda_1e1_x = np.arange(10001)/10000*k_for_lambda_1e1 lambda_1e1_y = np.sqrt(k_for_lambda_1e1**2 - lambda_1e1_x**2) k_for_lambda_1e2 = np.log10(np.pi*2/(1e2/Re_tau)*k_ref_inv) lambda_1e2_x = np.arange(10001)/10000*k_for_lambda_1e2 lambda_1e2_y = np.sqrt(k_for_lambda_1e2**2 - lambda_1e2_x**2) k_for_lambda_1e3 = np.log10(np.pi*2/(1e3/Re_tau)*k_ref_inv) lambda_1e3_x = np.arange(10001)/10000*k_for_lambda_1e3 lambda_1e3_y = np.sqrt(k_for_lambda_1e3**2 - lambda_1e3_x**2) k_for_lambda_1e4 = np.log10(np.pi*2/(1e4/Re_tau)*k_ref_inv) lambda_1e4_x = np.arange(10001)/10000*k_for_lambda_1e4 lambda_1e4_y = np.sqrt(k_for_lambda_1e4**2 - lambda_1e4_x**2) k_for_lambda_1e5 = np.log10(np.pi*2/(1e5/Re_tau)*k_ref_inv) lambda_1e5_x = np.arange(10001)/10000*k_for_lambda_1e5 lambda_1e5_y = np.sqrt(k_for_lambda_1e5**2 - lambda_1e5_x**2) P1000_lambda_1e1_x = lambda_1e1_x[:]; P1000_lambda_1e1_y = lambda_1e1_y[:]; P1000_lambda_1e2_x = lambda_1e2_x[:]; P1000_lambda_1e2_y = lambda_1e2_y[:]; P1000_lambda_1e3_x = lambda_1e3_x[:]; P1000_lambda_1e3_y = lambda_1e3_y[:]; P1000_lambda_1e4_x = lambda_1e4_x[:]; P1000_lambda_1e4_y = lambda_1e4_y[:]; P1000_lambda_1e5_x = lambda_1e5_x[:]; P1000_lambda_1e5_y = lambda_1e5_y[:];
In [9]:
Re_tau = P2000_Re_tau k_ref_inv = P2000_k_ref_inv k_for_lambda_1e1 = np.log10(np.pi*2/(1e1/Re_tau)*k_ref_inv) lambda_1e1_x = np.arange(10001)/10000*k_for_lambda_1e1 lambda_1e1_y = np.sqrt(k_for_lambda_1e1**2 - lambda_1e1_x**2) k_for_lambda_1e2 = np.log10(np.pi*2/(1e2/Re_tau)*k_ref_inv) lambda_1e2_x = np.arange(10001)/10000*k_for_lambda_1e2 lambda_1e2_y = np.sqrt(k_for_lambda_1e2**2 - lambda_1e2_x**2) k_for_lambda_1e3 = np.log10(np.pi*2/(1e3/Re_tau)*k_ref_inv) lambda_1e3_x = np.arange(10001)/10000*k_for_lambda_1e3 lambda_1e3_y = np.sqrt(k_for_lambda_1e3**2 - lambda_1e3_x**2) k_for_lambda_1e4 = np.log10(np.pi*2/(1e4/Re_tau)*k_ref_inv) lambda_1e4_x = np.arange(10001)/10000*k_for_lambda_1e4 lambda_1e4_y = np.sqrt(k_for_lambda_1e4**2 - lambda_1e4_x**2) k_for_lambda_1e5 = np.log10(np.pi*2/(1e5/Re_tau)*k_ref_inv) lambda_1e5_x = np.arange(10001)/10000*k_for_lambda_1e5 lambda_1e5_y = np.sqrt(k_for_lambda_1e5**2 - lambda_1e5_x**2) P2000_lambda_1e1_x = lambda_1e1_x[:]; P2000_lambda_1e1_y = lambda_1e1_y[:]; P2000_lambda_1e2_x = lambda_1e2_x[:]; P2000_lambda_1e2_y = lambda_1e2_y[:]; P2000_lambda_1e3_x = lambda_1e3_x[:]; P2000_lambda_1e3_y = lambda_1e3_y[:]; P2000_lambda_1e4_x = lambda_1e4_x[:]; P2000_lambda_1e4_y = lambda_1e4_y[:]; P2000_lambda_1e5_x = lambda_1e5_x[:]; P2000_lambda_1e5_y = lambda_1e5_y[:];
In [10]:
Re_tau = P5200_Re_tau k_ref_inv = P5200_k_ref_inv k_for_lambda_1e1 = np.log10(np.pi*2/(1e1/Re_tau)*k_ref_inv) lambda_1e1_x = np.arange(10001)/10000*k_for_lambda_1e1 lambda_1e1_y = np.sqrt(k_for_lambda_1e1**2 - lambda_1e1_x**2) k_for_lambda_1e2 = np.log10(np.pi*2/(1e2/Re_tau)*k_ref_inv) lambda_1e2_x = np.arange(10001)/10000*k_for_lambda_1e2 lambda_1e2_y = np.sqrt(k_for_lambda_1e2**2 - lambda_1e2_x**2) k_for_lambda_1e3 = np.log10(np.pi*2/(1e3/Re_tau)*k_ref_inv) lambda_1e3_x = np.arange(10001)/10000*k_for_lambda_1e3 lambda_1e3_y = np.sqrt(k_for_lambda_1e3**2 - lambda_1e3_x**2) k_for_lambda_1e4 = np.log10(np.pi*2/(1e4/Re_tau)*k_ref_inv) lambda_1e4_x = np.arange(10001)/10000*k_for_lambda_1e4 lambda_1e4_y = np.sqrt(k_for_lambda_1e4**2 - lambda_1e4_x**2) k_for_lambda_1e5 = np.log10(np.pi*2/(1e5/Re_tau)*k_ref_inv) lambda_1e5_x = np.arange(10001)/10000*k_for_lambda_1e5 lambda_1e5_y = np.sqrt(k_for_lambda_1e5**2 - lambda_1e5_x**2) P5200_lambda_1e1_x = lambda_1e1_x[:]; P5200_lambda_1e1_y = lambda_1e1_y[:]; P5200_lambda_1e2_x = lambda_1e2_x[:]; P5200_lambda_1e2_y = lambda_1e2_y[:]; P5200_lambda_1e3_x = lambda_1e3_x[:]; P5200_lambda_1e3_y = lambda_1e3_y[:]; P5200_lambda_1e4_x = lambda_1e4_x[:]; P5200_lambda_1e4_y = lambda_1e4_y[:]; P5200_lambda_1e5_x = lambda_1e5_x[:]; P5200_lambda_1e5_y = lambda_1e5_y[:];
In [11]:
fig = plt.figure(1,figsize=(13,3.23)) ticknum = 200 valmax = 0.72 plt.subplot(141) plt.gca().set_rasterization_zorder(-1) levels1 = LinearLocator(numticks=ticknum).tick_values(0,valmax) plt.contourf(P0550_kx_sharp,P0550_kz_sharp,P0550_E_E_uu_wall,levels=levels1,cmap=all_positive_colormap,zorder=-5) plt.plot(P0550_lambda_1e1_x, P0550_lambda_1e1_y,'C0-',label=r'$\lambda^+ = 10$') plt.plot(P0550_lambda_1e2_x, P0550_lambda_1e2_y,'C1-',label=r'$\lambda^+ = 10^2$') plt.plot(P0550_lambda_1e3_x, P0550_lambda_1e3_y,'C2-',label=r'$\lambda^+ = 10^3$') plt.plot(P0550_lambda_1e4_x, P0550_lambda_1e4_y,'C3-',label=r'$\lambda^+ = 10^4$') plt.plot(P0550_lambda_1e5_x, P0550_lambda_1e5_y,'C4-',label=r'$\lambda^+ = 10^5$') plt.xlim([0,5]) plt.ylim([0,5]) plt.plot([0,2.5],[0,5], 'r--',label=r'$k_z = 2k_x$') plt.plot([0,5] ,[0,5], 'k-', label=r'$k_z = k_x$') plt.plot([0,5] ,[0,2.5],'b-.',label=r'$k_z = k_x/2$') plt.xlabel(r'$k_x^\sharp$') plt.ylabel(r'$k_z^\sharp$',rotation=0) plt.text(4.7,4.7,r'(a) $Re_\tau = 550$', verticalalignment='top', horizontalalignment='right',bbox=dict(facecolor='white', alpha=1.0, linewidth=0)) plt.legend(frameon=False, ncol=8, loc='upper left', bbox_to_anchor=(0.0,1.15)) plt.subplot(142) plt.gca().set_rasterization_zorder(-1) plt.contourf(P1000_kx_sharp,P1000_kz_sharp,P1000_E_E_uu_wall,levels=levels1,cmap=all_positive_colormap,zorder=-5) plt.plot(P1000_lambda_1e1_x, P1000_lambda_1e1_y,'C0-') plt.plot(P1000_lambda_1e2_x, P1000_lambda_1e2_y,'C1-') plt.plot(P1000_lambda_1e3_x, P1000_lambda_1e3_y,'C2-') plt.plot(P1000_lambda_1e4_x, P1000_lambda_1e4_y,'C3-') plt.plot(P1000_lambda_1e5_x, P1000_lambda_1e5_y,'C4-') plt.plot([0,2.5],[0,5] ,'r--') plt.plot([0,5] ,[0,5] ,'k-') plt.plot([0,5] ,[0,2.5],'b-.') plt.xlabel(r'$k_x^\sharp$') plt.xlim([0,5]) plt.ylim([0,5]) plt.yticks([]) plt.text(4.7,4.7,r'(b) $Re_\tau = 1000$', verticalalignment='top', horizontalalignment='right',bbox=dict(facecolor='white', alpha=1.0, linewidth=0)) plt.subplot(143) plt.gca().set_rasterization_zorder(-1) plt.contourf(P2000_kx_sharp,P2000_kz_sharp,P2000_E_E_uu_wall,levels=levels1,cmap=all_positive_colormap,zorder=-5) plt.plot(P2000_lambda_1e1_x, P2000_lambda_1e1_y,'C0-') plt.plot(P2000_lambda_1e2_x, P2000_lambda_1e2_y,'C1-') plt.plot(P2000_lambda_1e3_x, P2000_lambda_1e3_y,'C2-') plt.plot(P2000_lambda_1e4_x, P2000_lambda_1e4_y,'C3-') plt.plot(P2000_lambda_1e5_x, P2000_lambda_1e5_y,'C4-') plt.plot([0,2.5],[0,5] ,'r--') plt.plot([0,5] ,[0,5] ,'k-') plt.plot([0,5] ,[0,2.5],'b-.') plt.xlabel(r'$k_x^\sharp$') plt.yticks([]) plt.xlim([0,5]) plt.ylim([0,5]) plt.text(4.7,4.7,r'(c) $Re_\tau = 2000$', verticalalignment='top', horizontalalignment='right',bbox=dict(facecolor='white', alpha=1.0, linewidth=0)) plt.subplot(144) plt.gca().set_rasterization_zorder(-1) plt.contourf(P5200_kx_sharp,P5200_kz_sharp,P5200_E_E_uu_wall,levels=levels1,cmap=all_positive_colormap,zorder=-5) plt.plot(P5200_lambda_1e1_x, P5200_lambda_1e1_y,'C0-') plt.plot(P5200_lambda_1e2_x, P5200_lambda_1e2_y,'C1-') plt.plot(P5200_lambda_1e3_x, P5200_lambda_1e3_y,'C2-') plt.plot(P5200_lambda_1e4_x, P5200_lambda_1e4_y,'C3-') plt.plot(P5200_lambda_1e5_x, P5200_lambda_1e5_y,'C4-') plt.plot([0,2.5],[0,5] ,'r--') plt.plot([0,5] ,[0,5] ,'k-') plt.plot([0,5] ,[0,2.5],'b-.') plt.yticks([]) plt.xlabel(r'$k_x^\sharp$') plt.xlim([0,5]) plt.ylim([0,5]) plt.text(4.7,4.7,r'(d) $Re_\tau = 5200$', verticalalignment='top', horizontalalignment='right',bbox=dict(facecolor='white', alpha=1.0, linewidth=0)) plt.subplots_adjust(hspace=0.05, wspace=0.05) fig.subplots_adjust(right=0.9) cbar_ax = fig.add_axes([0.925,0.1,0.025,.8]) cbar = plt.colorbar(cax=cbar_ax,ticks=[0.0,valmax*0.25,valmax*0.5,valmax*0.75,valmax]) cbar.ax.set_yticklabels(["0",r"$0.18$",r"$0.36$",r"$0.54$",r"$0.72$"]) plt.savefig('figure02.eps',bbox_inches='tight',dpi=200) plt.show() plt.close()
Out[11]:
In [ ]: