=================================================================================================================== DNS database of boundary layer transitions at M=0.8 over heated, pseudo-adiabatic, and cooled walls Originally uploaded on July 6, 2026 Copyright (c) Yuta Iwatani, Hiroyuki Asada, and Soshi Kawai. All Rights Reserved. Contact: kawai@tohoku.ac.jp =================================================================================================================== Original Paper: Iwatani, Y., Asada, H., and Kawai, S., "Direct Numerical Simulation of Subharmonic Transition in Pseudo-Adiabatic, Heated and Cooled Boundary Layers at Mach Number 0.8," International Journal of Heat and Fluid Flow, 116, 109896 (2025) https://doi.org/10.1016/j.ijheatfluidflow.2025.109896 Nomenclature: <>: Reynolds-averaged quantities {}: Favre-averaged quantities _w : wall quantities _inf : freestream quantities x,y,z : streamwise, wall-normal, spanwise direction. x0 : reference length X = (x-xd)/x0 : distrance from the disturbance slot at x=xd (see below for xd of each case) u,v,w : streamwise, wall-normal, spanwise compoenents of velocity vector r,p,T : density, pressure, temperature mu : dynamic viscosity given by Sutherland's law tau_w : wall shear stress Parameters: Re_x0=10^5: reference Reynolds number based on the distance from leading edge(x0) M_inf = 0.8: free stream Mach number U_inf = M_inf*a_inf = 0.8 : freestream speed Pr = 0.72 : Prandtl number gamma = 1.4 : specific heat ratio Wall Temperature Cases ${case}: - A10: Tw/Tr = 1.0 (pseudo-adiabatic) - H11: Tw/Tr = 1.1 (heated) - C09: Tw/Tr = 0.9 (cooled) where Tw (isothermal wall temperature), Tr:= 1+ 0.5(gamma-1)*sqrt(Pr)*M_inf^2 ~ 1.108 (recovery temperature for laminar boundary layer) Streamwise location of disturbance slot (xd): - A10 : xd = 3.40x0 - H11 : xd = 2.82x0 - C09 : xd = 4.18x0 - Helper functions for loading the dataset are provided at the end of this file. ========================================================================================================= Contents ========================================================================================================= ========================================================================================================= Streamwise evolution of boundary layer parameters ========================================================================================================= ## Boundary layer integral values - filename: BLintegralparams-${case}.dat - For Fig. 6 - contents col 1. x/x0 col 2. X col 3. 99% boundary layer thickness based generalized velocity, del99 (Fig.6(a)) col 4. (compressible) displacement thickness , del^* (Fig.6(b)) col 5. (compressible) momentum thickness , theta (Fig.6(c)) col 6. (compressible) shape factor H:= del^*/theta (Fig.6(d)) col 7. generalized velocity based shape factor Hg:=del*_g/theta_g (Fig.6(d)) ## Skin friction coef./ Stanton number (pseudo-adiabatic (A10) case is filled with zero) - filename: Cf-Ch-${case}.dat - For Fig. 7 - contents col 1. x/x0 col 2. X col 3. Cf (skin friction coef.) col 4. Ch (Stanton number) ## y-maxima of the amplitudes of linear instability modes - filename: modeamp-${case}.dat - For Fig.15 - contents col 1. x/x0 col 2. X col 3. y-maxima of the amp. of the Mack's first mode (TS), (h,k)=(1,0), where (h,k) denote the temporal and spanwise wavenumbers (see Eq.(24)) col 4. y-maxima of the amp. of the oblique subharmonic mode (OS), (h,k)=(1/2,1) col 5. y-maxima of the amp. of the vortex streak mode (VS), (h,k)=(0,2) ========================================================================================================= # Wall-normal profiles at fixed distance from the initial disturbance X ========================================================================================================= - example julia function to read files with this format is provided below ## Wall normal profiles of /Uinf, /Tinf, /rinf at X=1,2,...,11 - filename: yprof-uTr-${case}.dat - For Fig. 3 - contents row 1. label row 2. y/x_0 row 3. /Uinf : Reynolds averaged streamwise velocity normalized by freestream value row 4. /Tinf row 5. /rinf ========================================================================================================= # Wall-normal profiles at fixed momentum-thickness-based Reynolds number ========================================================================================================= - example Julia function to read files with this format is provided below - contents of every file row 1: label (Re_theta) row 2: y/x_0 row 3: y^* (For definition of y^*, see Eq.(20)) row 4: quantities ## Semi-local scaled streamwise velocity u^* (Fig. 9) - filename: ustar-ystar-${case}.dat ## Reynolds shear stress normalized by wall friction -{u''v''}/ (Fig. 9) - filename: RSS_tauw-${case}.dat ## Reynolds averaged temperature normalized by freestream temperature /Tinf (Fig. 10) - filename: T-${case}.dat ## Turbulent heat flux {v''T''}/(rinf*Uinf*Tinf) (Fig. 10) - filename: RVT-${case}.dat ## Temperature fluctuation sqrt()/Tinf (Fig. 10) - filename: Trms-${case}.dat ========================================================================================================= # Binary data of (time- and spanwise-averaged) 2D Flow statics in 2D x-y cross-view plane (PLOT3D format) - Example codes PLOT3D format provided at the bottom of this file. - Once reading the PLOT3D format file, we may get a 3D array, data(i,j,n). - (i,j) directions correspond to (streamwise, wall-normal) directions, respectively. - The 3rd index 'n' corresponds to the variable. - All datasets include the domain of X in [0,12] and Y in [0, 0.22]. - Grid size -- A10: (imax,jmax) = (7501,358) -- H11: (imax,jmax) = (9513,358) -- C09: (imax,jmax) = (11424,434) ========================================================================================================= ## Grid (normalized by x0) - filename: grid-${case}.xy - Variables xy(i,j,1) : x/x_0 (streamwise coordinate) xy(i,j,2) : y/x_0 (wall-normal coordinate) ## Primitive variables (related to Figs. 8 and 13) - filename: primitive-${case}.func - Contours of the Reynolds averaged Reynolds stresses are similar to the Favre averaged ones - Variables data(i,j,1) : /r_inf (Reynolds-averaged density normalized by freestream density) data(i,j,2) : /u_inf (Reynolds-averaged streamwise velocity normalized by freestream velocity) data(i,j,3) : /u_inf (Reynolds-averaged wall-normal velocity normalized by freestream velocity) data(i,j,4) : /u_inf (Reynolds-averaged spanwise velocity normalized by freestream velocity) data(i,j,5) : /T_inf (Reynolds-averaged temperature normalized by freestream temperature) data(i,j,6) : {u}/u_inf (Favre-averaged streamwise velocity normalized by freestream velocity) data(i,j,7) : {v}/u_inf (Favre-averaged wall-normal velocity normalized by freestream velocity) data(i,j,8) : {T}/T_inf (Favre-averaged temperature normalized by freestream temperature) ## Semi-local-scaled quantities (related to Figs. 9,10) - filename: semilocals-${case}.func - Variables data(i,j,1) : y^* data(i,j,2) : u^* (see Eq.(20)) data(i,j,3) : Semi-local Reynolds number (Reynolds^*_tau=\sqrt(/)/Re_tau, Re_tau := / ) (see between Eq.(20),(21)) ## Reynolds normal stresses and shear stress normalized by tau_w (related to Fig. 9, 16) - filename: ReStress_tauw-${case}.func - Variables data(i,j,1) : sqrt({u''u''}/tau_w) (sqrt of Reynolds normal stress in the streamwise direction normalized by wall friction) data(i,j,2) : sqrt({v''v''}/tau_w) (sqrt of Reynolds normal stress in the wall-normal direction normalized by wall friction) data(i,j,3) : sqrt({w''w''}/tau_w) (sqrt of Reynolds normal stress in the spanwise direction normalized by wall friction) data(i,j,4) : -{u''v''}/tau_w (Reynolds shear stress normalized by wall friction) ## Skewness (related to Figs. 18) - filename: skewness-${case}.func - Variables data(i,j,1) : {u''u''u''}/{u_inf^3} ( streamwise components (numerator) ) data(i,j,2) : {v''v''v''}/{u_inf^3} ( wall-normal components (numerator) ) data(i,j,3) : {u''u''}^{3/2}/{u_inf^3} ( streamwise components (denominator) ) data(i,j,4) : {v''v''}^{3/2}/{u_inf^3} ( wall-normal components (denominator) ) ========================================================================================================= Helper functions for loading wall-normal profiles and 2D binary datasets. ========================================================================================================= ---------------------------------------------------------------------------------------- example Julia script to read text data of wall-normal profiles ---------------------------------------------------------------------------------------- """ load_data_as_blocks(filename, N_skip, N_batch, idx,idy) # Arguments - filename : name of file to read - N_skip: number of rows of header - N_batch : number of lines of each block (including label line) - idx: id of content for x axis (see explanation in the code below) - idy: id of content for y axis # example filename = "RSS_tauw-A10.dat" # Reynolds shear stress of pseudo-adiabatic case T = load_data_as_blocks(filename,Nskips,Nblock,2,3); # get 2nd and 3rd row quantities x = T.x; # 3rd line(row) is y^* y = T.y; # 4th line(row) is Reynolds shear stress """ function load_data_as_blocks(filename, N_skip, N_batch, idx,idy) blocks_data = [] lines = collect(eachline(filename)) content = lines[N_skip+1:end] # skip header for block in Iterators.partition(content, N_batch) # if data is written as # row 1: label row # row 2: content 1 # row 3: content 2 # setting idx=1, idy=2 returns row1 and row2 vectors try x_vals = parse.(Float64, split(block[idx])) y_vals = parse.(Float64, split(block[idy])) push!(blocks_data, (x=x_vals, y=y_vals)) catch e @warn "fail. Check N_skip and N_batch" end end return blocks_data end --------------------------------------------------------------------------------------------------------- Example functions for reading PLOT3D format files (C binary, little-endian, single precision) --------------------------------------------------------------------------------------------------------- # Fortran example for grid data (.xy) read(iu) imax,jmax read(iu) (((x(i,j,k),i=1,imax),j=1,jmax)) read(iu) (((y(i,j,k),i=1,imax),j=1,jmax)) # Fortran example for function data (.func) read(iu) imax,kmax,nfunc read(iu) (((data(i,j,n),i=1,imax),j=1,jmax),n=1,nfunc)