uz1d = u_z[k, l, :] # data structure is (r, theta, z) uzF1d = u_zF[k, l, :] omegaZ1d = omegaZ[k, l, :] pi1d = pi[k, l, :] # isolate high-speed/low-speed streaks in the 1d velocity subset uzp1d = np.where(uz1d > 0, uz1d, 0) # only high-speed, zero elsewhere uzn1d = np.where(uz1d < 0, uz1d, 0) # only low-speed, zero elsewhere # isolate forward/backward flux events in the 1d flux subset pip1d = np.where(pi1d > 0, pi1d, 0) # only forward, zero elsewhere pin1d = np.where(pi1d < 0, pi1d, 0) # only backward, zero elsewhere # compute correlations and sum up azimuthal (spatial) and temporal (ensemble) statistics import crossCorrelation as c acUz = acUz + c.corr1d(uz1d, uz1d) # auto-correlations acUzF = acUzF + c.corr1d(uzF1d, uzF1d) acOmegaZ = acOmegaZ + c.corr1d(omegaZ1d, omegaZ1d) acPi = acPi + c.corr1d(pi1d, pi1d) ccUzPi = ccUzPi + c.corr1d(uz1d, pi1d) # cross-correlations full flux ccUzFPi = ccUzFPi + c.corr1d(uzF1d, pi1d) ccOmegaZPi = ccOmegaZPi + c.corr1d(omegaZ1d, pi1d) ccUzPip = ccUzPip + c.corr1d(uz1d, pip1d) # cross-correlations forward flux ccUzFPip = ccUzFPip + c.corr1d(uzF1d, pip1d) ccOmegaZPip = ccOmegaZPip + c.corr1d(omegaZ1d, pip1d) ccUzPin = ccUzPin + c.corr1d(uz1d, pin1d) # cross-correlations backward flux ccUzFPin = ccUzFPin + c.corr1d(uzF1d, pin1d) ccOmegaZPin = ccOmegaZPin + c.corr1d(omegaZ1d, pin1d) ccUzpPi = ccUzpPi + c.corr1d(uzp1d, pi1d) # cross-correlations high-speed streaks ccUznPi = ccUznPi + c.corr1d(uzn1d, pi1d) # cross-correlations low-speed streaks
if (uz1d[i] < 0) and (ur1d[i] > 0): q3[i] = ur1d[i] * uz1d[ i] # inward interaction: low-speed fluid towards wall if (uz1d[i] > 0) and (ur1d[i] > 0): q4[i] = ur1d[i] * uz1d[ i] # sweep event: high-speed fluid towards wall ioi = q1 - q3 # unify inward interactions (Q3 being negativ) and outward interactions (Q1 being positive) in one array see = q2 - q4 # unify sweep events (Q4 being negativ) and ejection events (Q2 being positiv) in one array # isolate forward/backward flux events in the 1d velocity subset pip1d = np.where(pi1d > 0, pi1d, 0) # only positive, zero elsewhere pin1d = np.where(pi1d < 0, pi1d, 0) # only negative, zero elsewhere # compute correlations and sum up axial (spatial) and temporal (ensemble) statistics import crossCorrelation as c acQ1 = acQ1 + c.corr1d(q1, q1) # auto-correlations acQ2 = acQ2 + c.corr1d(q2, q2) acQ3 = acQ3 + c.corr1d(q3, q3) acQ4 = acQ4 + c.corr1d(q4, q4) acPi = acPi + c.corr1d(pi1d, pi1d) ccQ1Pi = ccQ1Pi + c.corr1d(q1, pi1d) # cross-correlations full flux ccQ2Pi = ccQ2Pi + c.corr1d(q2, pi1d) ccQ3Pi = ccQ3Pi + c.corr1d(q3, pi1d) ccQ4Pi = ccQ4Pi + c.corr1d(q4, pi1d) ccQ1Pip = ccQ1Pip + c.corr1d(q1, pip1d) # cross-correlations forward flux ccQ2Pip = ccQ2Pip + c.corr1d(q2, pip1d) ccQ3Pip = ccQ3Pip + c.corr1d(q3, pip1d) ccQ4Pip = ccQ4Pip + c.corr1d(q4, pip1d) ccQ1Pin = ccQ1Pin + c.corr1d(q1, pin1d) # cross-correlations backward flux