'Validation of Turbulent Flow Around City Blocks' simulation project by Carlos_Ramirez


I created a new simulation project called 'Validation of Turbulent Flow Around City Blocks':

This project is intended towards validating the turbulent flow around city blocks, in a configuration proposed by AIJ. This validation (Case C) consists in the comparison of the Flow Field at the equivalent pedestrian level between the experimental mesuarements (AIJ) and the SimScale results. The project considerates the problems of boundary conditions (Atmospheric Boundary Layer), mesh characteristics, turbulence models and the transient behaviour of the flow.

More of my public projects can be found here.

FSAE Meshing Errors/Help!



Wind loads, wind comfort and safety for pedestrians are essential requirements in urban areas. The wind loads analysis on buildings is an exigency of the construction standards, additionally, many authorities request studies of pedestrian wind comfort and wind safety for new buildings and new urban areas. These studies involve combining statistical meteorological data, aerodynamic information and criteria for wind comfort and wind safety. Detailed aerodynamic information can be obtained using Computational Fluid Dynamics (CFD), which offers considerable advantages compared to wind tunnel testing. However, the accuracy and reliability of CFD simulations can be easily compromised due to the inherent turbulence of the flow to be studied.

An effective wind-building simulation should be able to correctly predict pressure distributions over the studied geometry as well as velocity profiles near the ground and buildings, which implies an appropriate definition of the vortices and turbulent structures generated in the urban configuration. To obtain an accurate and reliable prediction based on the above requirements, the simulation parameters of a CFD model must be validated with experimental data. Therefore, the objective of this work is validate RANS simulations of Wind around City Blocks based on the experimental measurements of velocity at the pedestrian level wind equivalent [1]. The RANS simulations are conducted with the Standard k-e and k-w SST turbulence model in steady-state, and a URANS k-w SST simulation is developed to observe the transient turbulent flow physics.


The sub-case developed in this work was the Case 2H, where the central building has the double of height than the surrounding buildings. The size of the domain is developed following the best practice guidelines proposed by Tominaga et al [2], which establishes that the top and lateral boundaries should be set 5H_t or more away from the target building, where H_t is the height of the target building. Also, the inlet boundary is set at 5H_t and the outflow boundary is set at 10H_t behind the building (Figure 1).
Fig. 1: Geometry and Size of the Domain


The meshes used in the convergence analysis and the simulations of this case were created in SimScale using snappyHexMesh to develop a Hex-dominant parametric mesh. For all the cases, the simulations use wall functions to resolve the near-wall region, therefore, the size of the first cell next to the wall boundary was placed in the range 30≤y^+≤300 using layers for the ground and buildings. The Mesh contains three refinement boxes (Figs. 2-4):

  • Floor Box: Used to ensure that the ground layers have a expansion ratio of 1.5 or less [2].
  • Inlet Box: Used to define the velocity and turbulent parameters profiles correctly.
  • Wake Box: Required to resolve the wake behind the building.
    Fig. 2: Floor Box
    Fig 3: Inlet Box
    Fig. 4: Wake Box

Fig. 5: Visualization of the boundaries discretization.

image image
Fig 6.: Visualization of the mesh with the application of layers on the floor and the buildings.

Simulation Setup

The fluid used in the simulations was incompressible Air with a kinematic viscosity ν=1.5295×10^{-5} m^2/s and a density ρ=1.1965 kg/m^3. The turbulence models used were k-e and k-w SST at steady-state using the SIMPLE algorithm, and a transient simulation with k-w SST using the PIMPLE algorithm was realized. The mesh convergence was analyzed with k-e at steady-state.

The boundary conditions in this type of problems must be carefully imposed for to simulate the Atmospheric Boundary Layer (ABL) adequately [3]. The accuracy of the results is highly dependent of the flow profiles of mean wind speed and turbulence quantities that are applied in the inlet plane. These profiles should be fully developed and representative of the terrain characteristics of the upstream part that is not include in the computational domain.

The experimental reference [1] includes profiles of mean speed and the root-mean-square σ_u of the velocity in the inlet. With the profile of σ_u is possible to calculate the turbulence quantities (turbulent kinetic energy k, turbulence dissipation rate ε and specific turbulence dissipation \omega). These derived experimental profiles must be imposed in the inlet plane of the domain and can be calculated with these equations [3]:

For turbulent kinetic energy: k=\frac{3}{2} (σ_u )^2

Having calculated k, the turbulent dissipation rate \epsilon is calculated as:


where z is the height coordinate, z_0 is the aerodynamic roughness length, u_{ABL}^* the ABL friction velocity and κ is the von Karman constant (≈0.40-0.42). u_{ABL}^* can be calculated with k, and ε equation can be rewritten:

u_{ABL}^*=k^{1/2} C_μ^{1/4} → \epsilon=\frac{k^{3/2} C_μ^{3/4}}{κ(z+z_0)}

where C_μ=0.09 is an empirical constant specified in the turbulence model. z_0 is calculated using the assumption that the velocity is a logarithmic profile with reference speed U_{ref} at z_{ref}=0.01 m. The calculation of z_0 is not only necessary for ε, but that also is used for the Ground boundary for simulate the roughness of the terrain implicitly:

U(z)=\frac{u_{ABL}^*}{κ} ln⁡(\frac{z+z_0}{z_0}) → z_0=\frac{z_{ref}}{exp\left[\frac{κ*U_{ref}}{u_{ABL}^*}\right]-1}

The specific turbulent dissipation rate ω is calculated as:

\omega=\frac{\epsilon}{C_μ k}

The profiles used in the inlet can be observed in the Figure 7:
Fig. 7: Inlet profiles
In the next table is listed the boundary conditions used in the simulations. It is important note that the roughness used in the wall functions of the ground not is the same z_0 mentioned above, but the equivalent sand-grain roughness k_s is implemented, that is calculated as:
C_s is the roughness constant (tipically 0.5-1.0)
For the URANS simulation, the same boundary conditions of the steady state case were used. The time steps used were imposed using the option “Adjustable timestep”, using a Maximum Courant Number of 1.1 as limiter. The use of a Courant Number greater than 1 is possible in the PIMPLE algorithm, which is defined as a large time-step transient solver [4]. To ensure the reliability of results, the number of outer correctors used was 15. Finally, 584 dimensionless time steps (∆t=\frac{b}{U_{ref}}=0.05473 s) were written for the analysis of averaged flow.


Mesh Convergence

For the convergence analysis 4 meshes were created: an Extra-Coarse (706 096 elements), Coarse (1 356 128), Medium (2 001 235) and Fine (3 860 835). The drag force for the central building is analyzed and used as convergence criteria.

Fig. 8: Drag Force calculated for the different meshes for the Mesh Convergence.
In the results above it is noted that exists convergence since the Mesh Medium: the drag force varies only 0.599 % between the medium and fine mesh. As an additional convergence criteria, a velocity profile is shown in the next figure for the different meshes. A convergence for the Medium Mesh can be observed with this criteria as well.

Fig. 9: Comparison of the velocity profiles for the 4 meshes analyzed.

Comparison with Experimental Data

The velocity field around the central building is compared with the experimental data. The velocity profiles along of 13 lines are analyzed (Figure 10) and classified in three zones: Upstream of the building (L1- L4), Sides of the building (L5-L9) and Downstream of the Building (L10-L13).
Fig. 10: Experimental points measured by AIJ [1] and the lines used to plot the velocity profiles.

The results of steady k-e, steady and transient k-w SST simulations with SimScale (OpenFoam) are presented here. In this results, it can be seen that the agreement of the results depends of the analyzed zone. For the upstream zone of the central building, the results of k-w SST (steady and transient) are better than the k-e results in the range -0.2 m to 0.2 m. Out of this range (near of the narrow channels of the surrounding buildings) the k-e model presents a better agreement (Figure 11). To evaluate the quality of results, Blocken et al. stablish that a difference of 20% between CFD results respect to Experimental Data is considered as a good accuracy [5]. In the Figure 12, the accuracy of the k-w SST results is consistently better than the k-e results in this zone, and these results are considered good according to the reference.

Fig. 11: Normalized Velocity Profile of the Line 4 (Upstream of the Central Building) comparing CFD results with experimental data.

a) image
b) image
c) image
Fig. 12: Quality of results for the simulations in the zone: Upstream of the Central Building. a) Standard k-e, b) Steady k-w SST, c) Transient k-w SST

For the sides of the central building, the k-e results are considerably better than the k-w results (steady and transient) and these have a good accuracy respect the experimental data (Figure 14). In all the cases, the k-w SST results underestimate the velocity, mainly near to the surrounding buildings (Figure 13).

Fig. 13: Normalized Velocity Profile of the Line 4 (Upstream of the Central Building) comparing CFD results with experimental data.

Fig. 14: Quality of results for the simulations in the zone: Sides of the Central Building. a) Standard k-e, b) Steady k-w SST, c) Transient k-w SST

In the zone corresponding of downstream of the central building, the results of k-w SST (in general) have a better agreement respect of the k-e results. For the other side, between the transient and steady state simulations, exist differences in the accuracy of the results. For the line y = 0 downstream of the building, the transient simulation predicts the velocity properly, as illustrated in Fig. 15. However, far of this line, the steady simulations present better accuracy, which makes its overall results better than the transient results.
Fig. 15: Normalized Velocity Profile of the Line 4 (Upstream of the Central Building) comparing CFD results with experimental data.

Fig. 16: Quality of results for the simulations in the zone: Downstream of the Central Building. a) Standard k-e, b) Steady k-w SST, c) Transient k-w SST

Transient characteristics of the flow

Video: Validation of Turbulent Flow Around City Blocks. Transient Simulation using SimScale

For the transient simulation, the results between the times 2 to 32 seconds were analyzed to obtain the averaged flow. In the Figure 17 is plotted the signal in a sample point placed at the point x = 0.15m, y = 0m, z = 0.02m (A) and its respective FFT. It can be seen that exist two types of oscillation: a dominant oscillation of low frequency related with the transient behavior of the set of buildings as is illustrated in the video; and an oscillation of higher frequency related with the turbulence of the highest building (central building).

a)image b)image
Fig. 17: a) Velocity component in the y-direction at the sample point for the CFD Simulation. b) Fast Fourier Transform of the signal for the time range 2-32 seconds.


[1] http://www.aij.or.jp/jpn/publish/cfdguide/index_e.htm
[2] Tominaga, Y., Mochida, A., Yoshie, R., Kataoka, H., Nozu, T., Yoshikawa, M., Shirazawa, T. 2008. AIJ guidelines for practical applications of CFD to pedestrian wind environment around buildings
[3] Blocken, B., Stathopoulos, T., Carmeliet, J. 2007. CFD Simulation of the Atmospheric Boundary Layer: Wall Functions Problems.
[4] http://openfoamwiki.net/index.php/OpenFOAM_guide/The_PIMPLE_algorithm_in_OpenFOAM
[5] Blocken, B., Stathopoulos, T., van Beeck, J.P.A.J. 2016. Pedestrian Level-Wind Conditions around Buildings: Review of Wind-Tunnel Techniques and CFD Techniques and their Accuracy for Wind Comfort Assesment.


Brilliant write up, thank you.

Cheers for this:

Have you got a resource for this that I can read about the limits of this?

All the best,


Would also be interested in that one @Carlos_Ramirez! Good job by the way!




I’m glad that the community liked my work and your interest in my results.
Respect to the characteristics of PIMPLE in OpenFoam (therefore, SimScale), I updated the references:
In this reference it is commented the characteristics and advantages of PIMPLE, mainly in this quote:

… in complex geometries and with different models which causes stiff problems, the PIMPLE algorithm is the method of choice. Imagine a very complex CFD simulation with small cell sizes and high velocities, it is straight forward to use small time steps in the PISO mode. However, If one wants to have bigger time steps one has to increase the Co number which break the criterion of Co < 1. At that moment we get a discrepancy because one hand we want go on faster in time in order to reduce the computational effort but it is not possible because we are limited based on Co < 1. Thats why we use the PIMPLE mode then. Keep in mind that each time step can be much more expensive than a time step in the PISO calculation but the time step itself can be much larger. In addition it can occur that we loose significant information of the flow which changes the flow pattern.

Maximum number of iterations exceeded
CFL Number for AMI simulation

@Carlos_Ramirez - what a fantastic project! Thanks a lot for sharing