Fill out the form to download

Required field
Required field
Not a valid email address
Required field
Required field


Advanced Tutorial: Wind Analysis Simulation using the LBM (Lattice Boltzmann Method) Solver

This article will provide a step-by-step tutorial of how to configure a wind analysis simulation with SimScale by using the LBM solver.

visualization of velocity with the lbm solver pacefish simscale
Figure 1: Visualization of velocity over the CAD model of the city


This tutorial uses the Lattice Boltzmann method (LBM)\(^1\) to solve the simulation, which is only accessible through professional licenses.
This tutorial cannot be performed using the community license. Learn more.
If you want to perform external aerodynamics with a community license, you can check out the external aerodynamics section of the main tutorial page.


This tutorial will teach you how to:

  • Configure and run a simulation using the LBM solver.
  • Create relevant geometry primitives in SimScale.
  • Assign boundary conditions, material, and other relevant properties for the simulation.
  • Mesh with the automatic mesher.
  • Use the post-processor and obtain results of interest.

We are following the typical SimScale workflow:

  1. Preparing the CAD model for the simulation.
  2. Setting up the simulation.
  3. Creating the mesh.
  4. Run the simulation and analyze the results.

1. CAD Preparation and Analysis Type Selection

First of all, click the button below. It will copy the tutorial project containing the geometry into your own workbench.

The LBM solver, provided by Numeric Systems GmbH (Pacefish®)\(^1\), has the ability to deal with many CAD types and is more robust than many solvers in solving the geometry. Open geometry such as poor faces and small faces do not affect the meshing operation, however, if you encounter issues or error, an STL can normally be uploaded which may mitigate any issues you are experiencing.

You can upload the geometry the same way as you would normally upload a geometry to the SimScale platform. Simply click the “+” button next to Geometries in the simulation tree in the left-hand panel.

geometry upload in the simscale platofrm
Figure 2: Geometry upload.

You can upload the geometry from your local machine or import from Onshape® directly.

2. Simulation Setup

To create a simulation, select “+” next to Simulations and select the Incompressible LBM simulation type.

lists of analysis types in simscale
Figure 3: Simulation list.

Click on ‘Create Simulation’. This takes you back to the Workbench. You can name the simulation and change the turbulence model that is used in the simulation. Find out more about the selection of turbulence models in our documentation.

2.1. External Flow Domain

To define how air is entering and exiting the ‘domain’ or the ‘fluid region’, we need to define boundary conditions. This consists of an inlet face, and outlet face and other faces, usually a combination of no-slip walls or slip walls for non-interfering boundaries. The first task in this process is to define the size of the fluid domain, and this is done in the External Flow Domain section.

external flow domain dialog box for wind analysis simulation using lbm solver pacefish
Figure 4: External flow domain settings.

2.2 Geometry Primitives

You can add geometry primitives in later by operations. The created geometry primitives will be used as mesh refinements or export regions. However, there will always be a geometry primitive called External Flow Domain which can be edited to control the size of the fluid region.

2.3 Materials

Air is automatically assigned to the domain as this is a wind analysis simulation.

2.4 Boundary Conditions

The next step in the process is to setup our boundary conditions. We need to configure our inlet and outlets in the boundary condition.

boundary conditions in simscale for lbm simulation for wind analysis simulation with lbm solver
Figure 5: Velocity boundary condition setup.


As default the ‘X min’ face on the external domain will be defined as the inlet, and the ‘X max’ boundary as the pressure outlet, all other faces are defined as slip walls with the exception of the floor as ‘Z min’ which is defined to have a no-slip wall condition.

You can change these things according to your simulation setup, however, if you need to define an angled wind direction you can set a wind direction in the bounding box geometry primitive.

You can upload a CSV file to define an atmospheric boundary layer for both velocities as a function of height and intensity or kinetic energy as a function of height. This is discussed in greater detail a post here: Defining an Atmospheric Boundary Layer.

If you define an atmospheric boundary layer by a CSV file, make sure that ground height is defined as 0.

  • If the terrain is not modeled in your CAD, the solver will consider ground zero with respect to the minimum wind tunnel floor.
  • If the terrain is modeled, then the ground zero will be the top face of your terrain model.
The picture shows how an atmospheric boundary layer would be defined in a city model with and without terrain
Figure 6: Velocity profile at the inlet of a model with and without terrain

2.5 Simulation Control

The end time is the time in which you want the simulation to run for, for example, 400 s will simulate 400 s of flow time. The maximum run time will cap the simulation to maximum time in real-time. For example, setting a low number will stop the simulation midway if it goes beyond this physical time.

It is recommended that a simulation is run for 5 refreshes of the flow, which means a particle of air can go from 1 side of the domain to the other side in 5 s before termination.

2.6 Result Control

We should also define the results that we are interested in for this simulation. In addition, we will calculate the forces and moments and define a number of probe points that read the velocities at the pedestrian level. It will be exported at a high resolution, this is useful for operations such as mean velocity, turbulent intensity, and peak velocities at the pedestrian level.

a. Forces and Moments

If you are interested in having the forces and moments of the wind calculated, this can be done by enabling the Forces and moments settings in Result control. However, as this also affects computation time significantly, we only need to assign faces that are of interest.

  • Under Result control, you should click the “+” beside the Forces and moments.
  • You should enable Export statistical data and Group assignments by sliding the slider button so it shows a blue color.
  • Lastly, you would assign the faces of interest. If there is a prevailing wind from a certain direction and a building is heavily affected by that wind direction, the face of the building that is facing against this direction may be of interest.

For example, we will enable the Forces and Moments for the faces of the highest buildings that are facing against the inlet.

forces and moments settings in simscale  for wind analysis simulation with lbm solver
Figure 7: Forces and moments settings.

b. Probe Points

Below Forces and Moments, we can activate Probe Points, if there are any points in the domain that are of interest. The positions of these probe points are defined by uploading a CSV file in the format ‘probe name, x-ordinate, y-ordinate, z-ordinate’. The probe name will be used to represent the probe in the plot, whereas the others will define its location in the domain. Below is an example of probe points that are defined for this tutorial.

probe point settings in simscale for wind analysis simulaton with LBM solver
Figure 8: Probe point settings.

c. Transient Output

For transient outputs, the export of a region at every defined interval is allowed for either fluid volume or surface data or both. We consider this process as this happens at every interval defined and the size of the solution export may quickly become too big,  however, this can easily be avoided by exporting with moderation and smaller regions.

  • First, you should create a geometry primitive to define the pedestrian level.
pedestrian slice configuration for wind analysis simulation with lbm solver in simscale
Figure 9: Pedestrian slice.
  • Second, you should enable Export flow-domain fields and define the pedestrian slice as the geometry primitive in the Transient Output by sliding the slider so it shows a blue color.
transient output settings for wind analysis simulation with lbm Solver in simscale
Figure 10: Transient output settings.

The above example shows the pedestrian slice being output every 0.2 s for fluid only results.

d. Statistically Averaged Results

Starting with statistically averaged results, this takes the transient simulation and finds the mean results for all fields. The statistical averaging is done from a defined time (in percentage) and in defined intervals (in seconds) to define the frequency of the averaging. Furthermore, the result control can export surface data and fluid region data or one of each.

statistical averaging settings in simscale for wind analysis simulation with lbm solver
Figure 11: Statistical averaging settings.

The above example has been defined to export both surface and fluid data, averaging the results every 0.001 s starting at 20% (0.2) in total simulation time. Also, if the time steps are bigger than 0.001 s, the averaging will just happen every timestep, so if you’re unsure about the time step size but know you want all data considered, simply select a small number as demonstrated.

e. Snapshot

Snapshots take the last timestep of the simulation and export the instantaneous result fields for either fluid volume or surface data or both.

snapshot settings in simscale for wind analysis simulation with lbm solver
Figure 12: Snapshot settings.

3. Meshing

For an LBM mesh, you will need 3 main things in your mesh setup, the fineness of the background box, a surface refinement on the buildings, and a region refinement to properly capture the turbulence and flow physics in the near field. The following steps will guide you as to how these 3 definitions can be set.

mesh settings in simscale for wind analysis simulation with lbm solver
Figure 13: Mesh settings.

The above image shows the setting of the background mesh fineness. You are allowed to change this, but it is advised to start with a coarse fineness and work your way up for wind analysis projects.

You can add refinements in the mesh by adding the refinement. Where in LBM, options for surface and region refinements exist.

For this wind analysis simulation, a region refinement should suffice as the mesh already takes into account the size of the buildings. For a region refinement, a new geometry primitive needs to be defined, assigned to refinement, and fineness is specified.

  • First, you would click the “+” button beside the Geometry Primitives and select Local Cartesian Box as the geometry primitive.
geometry primitive initialization in simscale for wind analysis simulation with lbm solver
Figure 14: Geometry primitive initialization.
  • You should define the size of the geometry primitive.
geometry primitive settings in simscale for wind analysis simulation with lbm solver
Figure 15: Geometry primitive settings.
  • You can define the geometry primitive as the region that will be refined by sliding the slider button so it shows a blue color. You can modify the fineness of the mesh refinements but the same logic as meshing follows here, where it is wise to start from coarse and run another simulation with finer refinements if needed.
wind analysis region refinement settings for wind analysis simulation with lbm solver in simscale
Figure 16: Region refinement settings.

Region refinement settings for an LBM simulation are described more in detail on this page: Region Refinement Settings.

4. Simulation and Results

4.1 Run the Simulation

You are able to start a simulation run after going through the simulation tree. At this point, errors or warnings will be displayed. If no errors occur, you will be asked to name the run and start it. If warnings are present, the user can choose to continue regardless of or cancel and amend the issue. You will be asked to fix the issues before running the simulation if errors are detected.

simulation run settings in simscale
Figure 17: Simulation run settings.

4.2 Post-Process the Results

After the simulation has finished, you will have three main results at your disposal, which are:

  1. Snapshot Solution: the result of the last timestep.
  2. Averaged Solution: an averaged result of all the timesteps.
  3. Transient Solution: a transient result based on the interval of the timesteps. Transient results can be animated as it has saved the result from each timestep.

If you have defined additional result controls such as Forces and moments, Probe points, or Field calculations, the results will be available below the simulation results.

For the three solutions, you will have SimScale’s built-in post-processor at your disposal. Below is a view of the post-processor after the wind analysis simulation has finished.

user interface of simscale's integrated post-processor
Figure 18: View of SimScale’s post-processor.

You can access these results by:

  • Clicking the Post-process results button, after the run is finished. You will be taken to the averaged solution.
wind analysis post-process results from dialog box in simscale
Figure 19: Post-process results from dialog box.
  • By clicking on the finished simulation runs, the solutions that are available will appear.
wind analysis post-process results from simulation runs in simscale
Figure 20: Post-process results from simulation runs.

a. Transient Results

You will have the full capability of SimScale’s post-processor to process your simulation results, however we will focus on the transient results.

As described before, you are able to animate the simulation results with the transient solution. Here are the steps to set up an animation of your results:

  • Select Transient Solution in your simulation tree.
  • After the Post-processor has successfully uploaded, you can hide parts of the domain to emphasize your results. For this wind analysis tutorial, we will disable the noSlipBoxVolume by clicking the eye symbol beside it, as shown below.
menu of post-processor in simscale
Figure 21: Post-processor menu.
  • By selecting Results, you can select the results you want to show. We will select All Velocity_e as an example and will appear after being selected.
list of simulation results in simscale's post-processor wind analysis
Figure 22: List of results.
  • You can start your animation by clicking the ‘play’ button on the top of the post-processor. The animation will start after the post-processor has finished loading the results. Below is an example of an animation of a simulation run.
animation of velocity done with lbm solver in simscale
Figure 23: Animation of velocity.

You will also be able to see plots from the probe points that were defined before and the force plots based on the faces that we have defined before. Other than the plots, a table containing the statistical data is also available and can be downloaded if further data processing is necessary.

b. Plots for Probe Points

The results are visualized in a temporal plot and a statistical summary. These results can be downloaded as an image and as a CSV file. You can also choose which probe points you want to display by clicking the legend below the plot. The results that are available for the defined probe points are:

  • Pressure (p)
  • Magnitude of Velocity (UMag)
  • Velocity in y-direction (Uy)
  • Velocity in z-direction (Uz)
  • Velocity in x-direction (Ux)
  • Statistical data
pressure plot for probe points of a wind analysis simulation in simscale
Figure 24: Pressure plot for probe points.

b. Plots for Forces

Similar to the result of your probe points, the result of the forces and moments are also displayed in a temporal plot and a statistical summary. The forces and moments are calculated individually in the x-, y- and z-direction.

forces and moments plot of a wind analysis simulation with lbm solver done with simscale
Figure 25: Forces and moments plot.

Congratulations! You finished the wind analysis tutorial!


If you have questions or suggestions, please reach out either via the forum or contact us directly.

Last updated: November 22nd, 2021

Data Privacy