This tutorial is a step-by-step guide on setting up and running an external aerodynamics simulation around a truck using the Incompressible Lattice-Boltzmann solver\(^1\). Note that this solver is accessible on-demand, for professional users only.
This tutorial uses the Lattice Boltzmann method (LBM), provided by Numeric Systems GmbH (Pacefish®)\(^1\), to run the simulation. This solver is only accessible through professional licenses, therefore this tutorial cannot be performed using a community license – Learn more about SimScale’s professional license options.
If you want to perform external aerodynamics with a community license, please check out this tutorial.
This tutorial teaches, using a truck model, how to:
We are following the typical SimScale workflow:
As a first step, click on the button below. It will copy the tutorial project containing the geometry into your Workbench.
The following picture demonstrates what is visible after importing the tutorial project.
Before setting a simulation to run, we need to select the analysis type of interest:
After clicking on the ‘Create Simulation’ button, the analysis type widget appears:
The Incompressible (LBM) solver is a powerful external aerodynamics module that runs in GPUs. This solver is transient by nature and allows fast computing times even for large grids. Please visit this page for more details on the Incompressible (LBM) solver.
At this point, a new simulation tree loads in the Workbench. In the global settings, we have multiple turbulence models to choose from
For this simulation, the default turbulence model (‘k-omega SST DDES’) is used – more details about this and other turbulence models are available here.
In this simulation type, one of the most important settings is the External flow domain dimensions. Here the user can define a cartesian box that represents the computational domain. It is important to make the cartesian box large enough, preventing negative impacts of the boundary conditions on the region of interest.
Below, you will find a rule-of-thumb that can be used as a starting point. The dimensions are based on the length L of the truck, which is roughly 16 meters in this model.
Notice how the flow domain is longer downstream from the truck: this is mostly to allow the wake to develop. Following the rule-of-thumb above, we will obtain the coordinates in Figure 7:
Did you know?
By adjusting the Rotation angle of the external flow domain, it is possible to rotate the computational domain.
This feature is especially useful for yaw angle studies, as it swiftly rotates the domain without adjustments in the CAD model.
For this tutorial, all Rotation angles will remain at zero.
In this section, we will define the physics of the simulation.
In LBM simulations, the solver automatically sets Air to the flow domain. However, it is possible to change the values of each field.
As soon as an incompressible LBM simulation is created, the flow domain boundaries receive a set of default boundary conditions. For the default set of boundary conditions, the LBM solver makes the following assumptions:
Since the CAD model from this tutorial follows the principles above, there are only a couple of adjustments needed from the default boundary conditions. The image below shows the boundary conditions used in this tutorial:
In this case, only two boundary conditions need adjustments: faces A and E.
For the velocity settings, the user can define the velocity and turbulence. Please adjust the velocity to a fixed value of ’22’ \(m/s\).
Did you know?
You can upload a .csv file to define an atmospheric boundary layer profile for velocity and turbulence intensity/turbulent kinetic energy as a function of height. This is discussed in greater detail in the following post: Defining an Atmospheric Boundary Layer.
By default, the ground face receives a No-slip condition, which is adequate for simulations with standing objects. Since the truck is moving, we will adjust the ground to ‘Moving wall’, with the same value as the velocity inlet in the positive x-direction:
Under Simulation control, we can adjust the End time of the simulation. As a rule of thumb, we should ensure at least 2 fluid passes through the computational domain – this means that a particle should have time to flow from inlet to outlet at least 2 times during the simulation.
Referring back to Figure 7, the flow domain has 130 meters in the x-direction, and we have a velocity of 22 \(m/s\) at the inlet. This means that we need at least 11.82 seconds for the end time of the simulation. In this tutorial, we will use an End time of ’15’ seconds.
The Maximum runtime represents the wall-clock time that the simulation is allowed to run for. For this simulation, the default setting of 10000 seconds works very well.
Under the Advanced modelling section, you will find additional physics to use, such as Rotating walls and Porous objects. The truck has five sets of wheels that act as rotating walls.
For the set up of a rotating wall, the user defines the Axis of rotation, a point on the axis of rotation (Origin), and the Rotational velocity. As a result, one rotating wall configuration is needed for each set of wheels.
Find below the steps for the first set of wheels of the truck:
Now, repeat the same process for the other 4 sets of wheels. The table below summarizes the settings:
|Set||Second set||Third set||Fourth set||Fifth set|
|Origin x (m)||3.9||9.794||10.944||12.094|
|Origin y (m)||-1.15990381||-1.15990381||-1.15990381||-1.15990381|
|Origin z (m)||0.525||0.525||0.525||0.525|
|Rotational Velocity (rad/s)||41.91||41.91||41.91||41.91|
|Number of faces for the assignment||32||26||26||26|
Once you finish this process for all sets, you should have this list on your simulation tree:
The Result control settings allow us to define what information we want to obtain from the results. Several options are available, among forces and moments, probe points, vorticity, etc. – Please check this page for an overview.
In this tutorial, we will set up the Transient output, Statistical averaging, and Snapshot.
In short, the transient output consists of datasets extracted from the results at a certain frequency. For this tutorial, we will create a Local cartesian box and assign it to the transient output.
Care must be taken with the transient output, as it can generate several gigabytes of data if one is not cautious. A good practice is to use Local slices or a small Local cartesian box. For a full description of the transient output, please refer to this page.
After expanding Result control and selecting Transient output, please click on the ‘+’ button next to Geometry primitives and select a ‘Local slice’:
In the window that pops up, adjust the Normal to the y-direction:
After saving the local slice settings, it will automatically be assigned to the transient output. Before saving the settings, enable ‘Export surface fields’. This option will save the transient results on the walls of the truck.
With a Fraction from end of 0.2, this result control will start saving data in the final 20% of the simulation, with a moderate frequency.
To obtain the mean values from the transient simulation we use the Statistical averaging result control. The statistical results are less memory-intensive than the transient output, so we can use larger geometry primitives, if necessary. Please assign the ‘External Flow Domain’ to the Statistical averaging output and enable the ‘Export surface fields’ option.
The result control item Snapshot saves the data from the final time step of the simulation. In this case, please assign the ‘External Flow Domain’ volume to it:
The Incompressible LBM analysis allows automatic and manual meshing. For an in depth description of the mesh settings, please visit this documentation page.
In this tutorial, we will make use of the ‘Manual’ configuration, using a ‘Coarse’ fineness. The Reference length represents the longest characteristic length of the geometry – for a truck, the length of the vehicle is the best choice.
This meshing tool also allows refinements for a better mesh resolution within the regions of interest.
a. Region Refinements
A region refinement allows you to control the maximum cell size in a certain region of the domain. Follow the steps below to create a region refinement:
In the local cartesian box configuration window, type in the coordinates below:
After saving the settings, create a second Local cartesian box with the following coordinates:
After saving, make sure that both local cartesian boxes are assigned to the region refinement.
b. Surface Refinement
The next refinement is a Surface refinement for the truck walls. The image below shows the steps:
You are now able to start a simulation run by clicking on the ‘+’ button next to Simulation Runs. Please note that a warning message will show up – the warning message will not be an issue for this tutorial, therefore, select ‘Run anyway’.
After the aerodynamic analysis of the truck simulation has finished, you will have three main results at your disposal:
You can access these results under the simulation run, by clicking on the respective name:
As a demonstration, we will inspect the ‘Transient solution’ of this simulation. After opening the results, you will find the filters ribbon on the top, and the timestep selector on the right-hand side panel:
The timestep selector is particularly useful for transient runs, as you can go through the various saved states. In the Parts Color tab, under Coloring, it is also possible to choose a parameter to plot in the results. The image above is showing the pressure contours, however other parameters such as velocity are also available.
By selecting an ‘Animation’ filter from the top ribbon, we can create an animation over the timesteps from the results:
After pressing, the animation loads and you will see the results directly in the SimScale platform.
In conclusion, the Incompressible LBM analysis type is a powerful tool for transient external aerodynamics studies. It allows for quick simulation set ups, while maintaining robustness and speed as the simulation runs.
Congratulations! You finished the aerodynamic analysis of a truck tutorial!
Last updated: November 29th, 2021
We appreciate and value your feedback.