Understanding Turbulence  
When talking about fluids, two different states of flows exist and they are easily identified: laminar flow and turbulent flow. Laminar flows are the ones that smoothly vary their velocity fields in space and time in which individual “sheets” of fluid move past each other without generating cross currents. This type of flows appear when the fluid viscosity force is big, in comparison with the inertial forces, and they damp out perturbations that may happen because of imperfections and irregularities. These flows occur at low values of the Reynolds number as
Where, L a characteristic length
The other hand, turbulent flows are characterized by big fluctuations in velocity and pressure in space and time, sometimes, nearly at random. These flows have fluctuating velocity fields as shown in Fig below. The fluctuations turn up from instabilities that grow until some interactions make the fluctuations split into smaller and smaller whirlwinds that dissipate in the end (generally by heat formation) due to the action of viscosity. These flows take place at high Reynolds numbers. The fluctuations can be of small size and high frequency, so it is very cost effective to make simulations of them directly in practical engineering cases. What it is done is that the equations of behaving can be ensemble-averaged, time averaged, or small scales can be removed. The equations after these modifications are easier to solve; nevertheless, the modifications add other incognita and different turbulence models appear to determine these unknown variables.
    Typical Examples of Turbulence  
Solving CFD analysis usually consists of four main processes: Preprocessor, which includes geometry and grid generation, setting-up a physical model, solver and post-processing the results. The way geometry and grid are created, the setting up problem, is computed, and the way post processing data is presented is very well known process. Unfortunately, that is not true for setting-up physics or selecting a correct model for turbulence flows is complex. The main difficulty is that one tries to model actual and complex physics or phenomena with an modeling as simple as possible. Hence, an ideal model should set up the minimum amount of complexity into the physical modeling equations while capturing the essence of the correct physics.
  Complexity of the turbulence model  
Complexity of different turbulence models may perhaps vary strongly depends on the details one wants to study and investigate by doing such CFD simulations. Complexity is due to the nature of Navier-Stokes equation (N-S equation) such as this equation is inherently time-dependent, three-dimensional and Nonlinear Partial differential Equation (PDE). Turbulence might be thought of as instability of laminar flow, which occurs at high Reynolds numbers (Re). Such instabilities origin form strong interactions between nonlinear viscous terms and inertial terms in Navier-Stokes equation. These interactions are fully time-dependent, three-dimensional and rotational.
    Turbulent Flow Structures  

Furthermore, turbulence is thought of as a random process in time. Thus, no deterministic approach is available. Certain properties could be studied about turbulence using statistical methods. This uses certain correlation functions among flow variables. Another key feature of turbulence is that vortex structures or eddies move along the flow as shown in Fig above, which has a long life. Here, it shows Larger, higher-energy eddies; transfer energy to smaller eddies via vortex stretching. Therefore, certain turbulent quantities cannot be specified as local. This means that upstream history of the flow is also important of great importance.