select input energy spectrum

Due to webserver buffering and its interaction with browser buffering, there may be a delay in data display. As long as the “Compute” button is disabled (grayed out), then rest assured that your calculation is under way on our servers.


  • Spectrum: Select input spectrum
  • Box Size: Domain size in meters. We recommend $9\times 2 \pi/100 \approx 0.565$ for the CBC spectrum. This value also works well for the von-Karman Pao spectrum
  • Grid Resolution: The number of grid points in each direction
  • Number of Modes: Number of wave forms used to generate the turbulence
  • Deterministic: Reproduces the same random sequence. Enable this option to reproduce the same result over multiple realizations
  • Compute: Generate the turbulence!
  • Reset: Reset all fields to their default values
  • Postprocessing: Enable the postprocessing backend
  • Viscosity: Denotes the viscosity coefficient used in the Karman spectrum (see eq \eqref{eq:vkp} below)
  • urms: Denotes the RMS of the velocity fluctuation in the Karman spectrum. This corresponds to $u’$ in eq \eqref{eq:vkp}
  • ke: Corresponds to the wave number at which the maximum energy occurs for the Karman spectrum. This term is related to $\kappa_e$ in the Karman spectrum such that $\text{ke} = \sqrt\frac{12}{5}\kappa_\text{e}$
  • Spectrum data: Upload your own spectrum data! Format is space delimited with the first column corresponding to the wave number and the second column corresponding to the energy


This version of the turbulence generator is constrained on the following:

  1. Turbulence can be generated in a cube only (lx = ly = lz)
  2. An equal number of grid points is used in the three spatial directions

This turbulence generator runs on a server with limited resources (4×2.3 GHz AMD cores, 4 GB Memory, and 50 GB Disk). It may take up to 2 minutes for your results to display. Cases where n > 128 and m > 5000 have been disabled.

For higher resolution data and other spectra:

  • Check our precomputed data sets
  • Download and execute the code on your local computers
  • Email Dr. Tony Saad ( for the possibility of using the University of Utah supercomputers to compute more expensive data
  • Be patient and wait for our next release which should contain access to hundreds of processors

A noticeable portion of the time spent on generating the turbulence goes towards postprocessing the generated data (i.e. plotting the computed spectrum). We recommend you disable the Postprocessing engine for faster results.

Output Data Format

The velocity field computed by the turbulence generator has the following properties:

  • Staggered (in the minus direction)
  • Satisfies the discrete divergence free condition to second order spatial accuracy

Data is laid out in a flat pattern starting with the x, then y, and then z directions. The ASCII file looks like this:

nx ny nz

where value0 corresponds to $(i,j,k) = (1, 0, 0)$, etc… The Binary files contain the same layout except for the first two (descriptive) lines. Binary files are up to half the sizeand parse much faster than compared to their ASCII counterparts.

Supported Spectra

1. Comte-Bellot Corrsin Spectrum

The CBC spectrum can be found here. The original paper is found here 

2. von-Karman Pao Spectrum

The von Karman-Pao spectrum is given  by
E(\kappa) = \alpha \frac{u’^2}{\kappa_\text{e}}\frac{ (\kappa/\kappa_\text{e})^4 }{\left[ 1 + (\kappa/\kappa_\text{e}) \right]^{17/6}}\exp{\left[ -2 \left(\frac{\kappa}{\kappa_\eta}\right)^2 \right]}
where $\alpha$ is a scaling constant, $u’$ is the RMS value of the velocity fluctuations, $\kappa_\text{e}$ is related to the wavenumber where energy is maximum, $\kappa$is the wave number, and $\kappa_\eta = \epsilon^{1/4}\nu^{-3/4}$ is the Kolmogorov wave number (smallest turbulent structures). Note that $\epsilon$ and $\nu$ are the dissipation rate and molecular viscosity, respectively. For isotropic turbulence , $\alpha \approx 1.453$$, $$\epsilon \approx u’^3 / L$ with $L$ being the integral length scale $L \approx 0.746834/\kappa_\text{e}$. The maximum energy occurs at $\sqrt{12/5}\kappa_\text{e}$.

3. Kang, Chester, and Meneveau (KCM)

This experimentally measured spectrum is based on a classic study by Kang, Chester, and Meneveau who compute the radial energy spectrum based on one-dimensional spectra. The final form is given by the equation
E(\kappa) = C_\text{K}\epsilon^{2/3} \kappa^{-5/3}Q_1 Q_2^{5/3+\alpha_3}e^{-\alpha_4 \kappa \eta}
Q_1 = 1 + \alpha_5\left\{ \frac{1}{\pi} \arctan\left[\alpha_6 + \log_{10}(\kappa\eta) + \alpha_7 \right] + \tfrac{1}{2} \right\}
Q_2 = \frac{\kappa l }{\left[ (\kappa l)^{\alpha_2} + \alpha_1     \right]^{1/{\alpha_2}}}
The constants are fitted to the experimental observations at different measurement stations. For all measurement stations, we have $c_\text{K} = 1.613$, $\alpha_1 = 0.39$, $\alpha_2 = 1.2$, $\alpha_3 = 4.0$, $\alpha_4 = 2.1$, $\alpha_5 = 0.522$, $\alpha_6 = 10.0$, and $\alpha_7 = 12.58$. The remaining parameters, $l$, $\eta$, and $\epsilon$ are set based on which measurement station is under consideration. Here, we use the first measurement station and set $l = 0.25 \text{ m}$, $\epsilon = 22.8 \text{ m}^2 \text{s}^{-2}$, and $\eta = 0.11\times10^{-3} \text{ m}$.

We recommend a box size of $L = 2\pi \text{ m}$ for this spectrum.

4. Measured Spectra (XY Data)

To provide as much case coverage as possible, the turbulence generator also accepts measured (or precomputed) spectra. Simply select the “XY Data” option and upload a file that contains your measured spectrum. The file format consists of two columns, separated by a space. The first column contains the wave numbers while the second contains the corresponding energy

wn0     TKE(wn0)
wn1     TKE(wn1)
wn2     TKE(wn2)

Caution: The interpolants used in Python to postprocess the data could easily suffer from memory overflow. This may happen when the number of points in your spectrum input file is large. If you are having problem generating turbulence using the XY Data option, then consider reducing the number of points in your file.  

Here are two example spectra data files:

  • Comte-Bellot Corrsin – Original spectrum reported by the classic CBC paper. Recommended $L = 9\times 2\times \pi/100 \text{ m}$
  • Kang, Chester, and Meneveau (KCM) spectrum – Great spectrum reproducing the CBC experiment at a higher Reynolds number. Recommended $L = 2\pi \text{ m}$


Comte-Bellot, G., & Corrsin, S. (1971). Simple Eulerian time correlation of full-and narrow-band velocity signals in grid-generated,‘isotropic’turbulence. Journal of Fluid Mechanics, 48(02), 273–337.
Christophe Bailly, & Daniel Juve. (1999). A stochastic approach to compute subsonic noise using linearized Euler’s equations. In 5th AIAA/CEAS Aeroacoustics Conference and Exhibit (Vol. 1–0). American Institute of Aeronautics and Astronautics.
Kang, H. S., Chester, S., & Meneveau, C. (2003). Decaying turbulence in an active-grid-generated flow and comparisons with large-eddy simulation. Journal of Fluid Mechanics, 480, 129–160.