Turbulence in Blender can cause serious problems, due to the fact that it is not a fluid-like turbulence field: The forces are essentially random, which means they are not divergence-free. A true fluid flow velocity field (derived from the pressure gradient) would instead always be divergence-free, meaning there are no “sinks” and “sources” of matter in the simulation. The effect of this mathematical property is that a turbulence field in Blender can easily “trap” particles or simulated vertices (cloth, hair) in a small area around an attractor point. The simulation can freeze in an awkward state or start to jitter, and un-freezing requires strong counterforces that can destabilize the simulation. With a divergence-free field the vertices can not easily be trapped and the resulting behavior is much more like that of objects following the flow of air or liquid.

A divergence-free field can be constructed from a scalar field using a curl operator. The entire procedure is described in the paper “Curl-Noise for Procedural Fluid Flow” (Bridson, Hourihan, Nordenstam 2007) http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph2007-curlnoise.pdf

Additional features described in the paper include using 4D noise for time-varying fields and the use of pseudo-advection over multiple octaves.