Reynolds Stress Derivation from Wind Tunnel Profiles¶
This page explains how each Reynolds stress component is derived from measured \(U(z)\) and \(I_u(z)\) profiles. The conversion script in the Matching Custom Inlet guide handles this automatically — read this page only if you want to understand what the script is computing or need to adapt it to your data.
Rxx — Streamwise normal stress¶
This follows directly from the definition of \(I_u\). No approximation is needed.
Ryy, Rzz — Lateral and vertical normal stresses¶
If your wind tunnel report includes lateral and vertical turbulence intensities \(I_v(z)\) and \(I_w(z)\), or their standard deviations \(\sigma_v\) and \(\sigma_w\), use them directly:
If only \(I_u\) was measured, typical wind tunnel boundary layer ratios give:
These are conservative defaults. Actual ratios vary with turbulence generator calibration and fetch conditions — prefer measured values when available.
Rxz — Reynolds shear stress¶
Wind tunnel measurements rarely include \(R_{xz}\) directly. The recommended approach for most users is the simplified ratio:
This is consistent with wind tunnel boundary layer profiles and satisfies the positive semi-definiteness constraint by construction, since \((0.3)^2 = 0.09 < 0.25 = R_{zz}/R_{xx}\).
If you have extracted \(u_*\) from a log-law fit of your traverse, you can instead use:
where \(\delta\) is the tunnel boundary layer depth. This tapers \(R_{xz}\) to zero above the boundary layer and avoids violating the positive semi-definite constraint at high \(z\). If the check fails at any height, fall back to the simplified ratio.
Note
\(R_{xz}\) must be negative. Momentum is transported downward against the mean shear; a positive value is physically inconsistent and will cause the Cholesky decomposition inside the SEM to fail.
Rxy, Ryz — Off-diagonal components¶
For flow aligned to the x-axis:
Quick reference¶
Component |
Formula |
Notes |
|---|---|---|
\(R_{xx}\) |
\([I_u \cdot U]^2\) |
Direct from input data |
\(R_{yy}\) |
\(\sigma_v^2\) or \(0.5625 \cdot R_{xx}\) |
Prefer measured; default ratio as fallback |
\(R_{zz}\) |
\(\sigma_w^2\) or \(0.25 \cdot R_{xx}\) |
Prefer measured; default ratio as fallback |
\(R_{xz}\) |
\(-0.3 \cdot R_{xx}\) (or \(-u_*^2 \cdot \max(0,\, 1-z/\delta)\)) |
Negative; use simplified ratio unless u* is known |
\(R_{xy}\) |
\(0\) |
Flow aligned to x |
\(R_{yz}\) |
\(0\) |
Flow aligned to x |
Positive semi-definiteness¶
The Reynolds stress tensor at each height must be positive semi-definite — otherwise the Cholesky decomposition used internally by the SEM will fail. The constraint most commonly violated in practice is:
Check this at every row before uploading the CSV. The conversion script does this automatically and raises an error if any row fails.
Worked example¶
At \(z = 30\) m with \(U = 15\) m/s, \(I_u = 0.12\) (measured), \(z_0 = 0.05\) m (tunnel floor):
\(R_{xx}\):
\(R_{yy}\), \(R_{zz}\) — using default ratios (no \(\sigma_v\), \(\sigma_w\) available):
\(R_{xz}\) — simplified ratio:
Positive semi-definiteness check:
Alternative: \(R_{xz}\) from log-law fit. If \(u_*\) has been extracted from the traverse, you can use \(R_{xz} = -u_*^2\) with a taper. Verify the positive semi-definiteness check at every height — for rough-floor tunnels with low \(I_u\), the log-law estimate of \(u_*\) can produce \(|R_{xz}|\) large enough to fail the constraint. Fall back to the simplified ratio if it does.