Fill out the form to download

Required field
Required field
Not a valid email address
Required field


Tutorial: Compressible Flow Simulation Around a Wing

This article provides a step-by-step tutorial for a wing simulation, or more specifically, evaluating compressible flow simulation around a wing.

pressure distribution in and around a plane wing
Figure 1: Pressure distribution on and around a wing.


This wing simulation tutorial teaches how to:

  • Set up and run a compressible simulation;
  • Assign topological entity sets;
  • Assign boundary conditions, material, and other properties to the simulation;
  • Mesh with the SimScale standard meshing algorithm;
  • Visually assess the mesh quality.

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. Prepare the CAD Model and Select the Analysis Type

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

The following picture demonstrates what should be visible after importing the tutorial project.

wing simulation geometry to perform a compressible analysis
Figure 2: Imported CAD model of a wing in the SimScale workbench.

1.1 Creating the Flow Region

To run a wing simulation where you can visualize the airflow, the first step is to create a flow region. This page gives you an overview of SimScale’s flow volume extraction operations.

For external aerodynamics, an Enclosure operation is necessary. To create an enclosure, follow the steps presented in the picture:

creating an enclosure for external aerodynamics
Figure 3: Creating an enclosure for the simulation. An enclosure acts as a virtual wind tunnel.
  1. Right-click on the geometry named Wing;
  2. Select an ‘Enclosure’ operation.

Give dimensions to the enclosure, as in the picture below, and ‘Start’ the operation.

creating an enclosure for an external aerodynamics simulation
Figure 4: Enclosure dimensions for the simulation.

Did you know?

The boundaries of the domain should be far away from the wing. This is necessary to ensure that the flow near the wing won’t be affected by the conditions at the boundaries.

In a wing, chord length is the distance between leading and trailing edges.

chord length wing
Figure 5: Linear distance between leading and trailing edges, known as chord.

In general, the bigger the enclosure, the better. However keep in mind that a big enclosure will increase the mesh cell count. The boundaries of the domain should be far away from the wing. This is necessary to ensure that the flow near the wing won’t be affected by the conditions at the boundaries.
Find below the minimum recommended size for the enclosure, in terms of chord lengths (L):

enclosure dimensions for a wing
Figure 6: Minimum recommended size for the enclosure. Note that the enclosure is much longer downstream (20 chord lengths) than upstream (10 chord lengths).

1.2 Create the Simulation

Make sure the enclosure is selected for this simulation project:

creating a simulation for an enclosure
Figure 7: Creating a new simulation.

Hitting the ‘Create Simulation’ button leads to the following options:

analysis types library from simscale
Figure 8: Analysis types available in SimScale.

Choose ‘Compressible’ for analysis type and ‘Create the Simulation’.

Now the global simulation setups pop up:

turbulence model for compressible flow analysis
Figure 9: Choosing the turbulence model for the simulation.

Set the turbulence model to ‘k-omega SST’.

2. Assigning the Material and Boundary Conditions

To have an overview, the following picture shows the boundary conditions applied for this simulation:

boundary conditions applied in simscales compressible aero tutorial
Figure 10: Overview of the boundary conditions for the wing simulation.

2.1 Define a Material

This simulation will use air as fluid material. Therefore click on the ‘+ button’ next to materials. Doing this opens the SimScale fluid material library as shown in the figure below:

materials available for flow simulations in simscale
Figure 11: Library of available materials.

Select ‘Air’ and click ‘Apply’. Afterward, a tab with properties opens up. You can leave the default values and assign them to the entire flow region.

2.2 Assign the Boundary Conditions

Using Figure 7 as a reference, the boundary conditions will be assigned.

a. Walls – Slip

Follow the instructions presented in the picture below to add a new boundary condition:

adding a new boundary condition in simscale
Figure 12: Boundary conditions available.
  1. After hitting the ‘+ button’ next to boundary conditions, a drop-down menu will appear, where one can choose between different boundary conditions.
  2. Select a ‘Wall’ boundary condition.
assigning a slip wall condition to the virtual wind tunnel
Figure 13: Assigning a slip wall condition to the top, bottom, and side of the enclosure.

Change (U) Velocity to ‘Slip’ and Temperature type to ‘Adiabatic’. Assign the side, top, and bottom enclosure boundaries to it.

b. Symmetry

Create a new boundary condition, but this time choose ‘Symmetry’. Assign it to the enclosure face adjacent to the wing.

setting up symmetry bc in simscale
Figure 14: Assigning a symmetry boundary condition.

c. Pressure Outlet

Create yet another boundary condition. Select ‘Pressure outlet’ and assign the following enclosure face to it:

setting up pressure outlet conditions
Figure 15: Assigning a pressure outlet. Pressure levels are fixed at 101325 Pa (default).

d. Velocity Inlet

Due to the high velocities involved, compressible simulations require extra care during the setup phase. Aiming to improve stability in early iterations, the velocity will be ramped, starting from a magnitude of 11.6 m/s at iteration 0, to the final magnitude of 116 m/s at iteration 600.

Furthermore, an angle of attack of 3 degrees for the wing will be taken into account. Therefore, the velocity will have components in the Y and Z directions.

Create a ‘Velocity inlet’ boundary condition and follow the steps demonstrated in the picture:

setting up velocitiy inlet conditions
Figure 16: Opening extra input options for velocity inlet.
  1. Keep ‘Fixed value’ for (U) Velocity;
  2. Set Temperature to ‘0 °C’;
  3. Assign the inlet surface to the boundary condition;
  4. Click on the highlighted icon to access the velocity table and define it as pictured below:
configuring a ramp velocity inlet
Figure 17: Configuring a table input for velocity inlet.
  1. Click ‘Table’ to access the table input.
  2. Define the ramp according to the table below.
  3. Confirm by hitting ‘Apply’.

\begin{array} {|r|r|} \hline t & U<x> & U<y> & U<z> \\ \hline 0 & 0 & 0.6071 & -11.5841 \\ \hline 600 & 0 & 6.071 & -115.841 \\ \hline \end{array}

e. Walls – No-Slip

All solid walls should receive a no-slip condition. With this configuration, the velocity on the assigned entities is set to zero.

Topological entity sets help to assign a group of faces all at once. As we need all the faces of the wing to be modeled as physical walls, let’s group them as a topological entity set.

To create a topological entity set for the wing walls, follow these steps:

creating a topological entity set for wing walls
Figure 18: Using quick face selection tools to select all wing walls.
  1. Enable the select face mode in the viewer;
  2. Select all 6 boundary faces of the enclosure;
  3. Right-click in the viewer and ‘invert the selection’.

Now, all the walls of the wing are selected. Follow the instructions in the figure below to create the set:

steps to create a topological entity set
Figure 19: Finalizing the creating of the wing walls topological entity set.
  • 4: Click on the ‘+ button’ next to topological entity sets;
  • 5: Name your newly created set appropriately. For example, as ‘Walls’.

Now, create a wall boundary condition and assign it to the newly created set. Make sure to set ‘Adiabatic‘ for temperature.

using a topological entity set to assign a boundary condition
Figure 20: Assigning a boundary condition to a topological entity set.


Check out this page, if you are interested in other boundary conditions available in SimScale.

2.3 Initial Conditions

The values for the initial velocity and temperature will require changes from the default. Doing this stabilizes the calculation.

The velocity field will receive the same initialization as the velocity inlet.

initial conditions for velocity field
Figure 21: Initializing the velocity fields to stabilize the simulation during early iterations.

Did you know?

Initializing the velocity means that the air around the wing in our virtual wind tunnel is already moving.
If we would not predefine it, there would not be air movement at the beginning of the calculation and the solver would have to calculate it based on the specified inlet velocity.

And, for temperature, please initialize the entire domain with 0 Celsius.

initial condition for temperature
Figure 22: Initializing the global temperature of the domain.

2.4 Numerics

In the Numerics tab, again seeking to improve stability, add 2 non-orthogonal correctors:

non orthogonal correctors cfd simulation
Figure 23: With 2 non-orthogonal correctors, the pressure equation is resolved a total of 3 times, improving stability.

2.5 Simulation Control

Please set up the wing simulation control as shown below:

simulation control parameters
Figure 24: Changes made in the simulation control tab.
  • Under Simulation control, prescribe ‘1500’ iterations to End time and Write interval.
  • Also, raise the Maximum runtime to ‘30000’ seconds.

For more information about the simulation control parameters, check this article.

2.6 Result Control

By setting result controls, you can observe the convergence behavior of several parameters of interest. Hence it is an important indicator to evaluate the quality and trustability of the results.

The first result control to set is a Forces and moments control. Writing the forces data every 10 iterations is enough to assess convergence. Assign it to the ‘Walls’ topological entity set:

creating a forces and moments result control
Figure 25: Forces and moments result control for the wing walls.

Now, click on the ‘+ button’ next to Surface data to create ‘Area averages’. A total of two controls will be created, one for the inlet and one for the outlet.

creating an area average result control
Figure 26: Area average result control for the inlet. Average plots are useful to assess convergence.

Similarly, for the outlet:

area average result control for the outlet
Figure 27: Area average for the outlet.

3. Mesh

To create the mesh, we recommend using the Standard algorithm, which is a good choice in general as it is quite automated and delivers good results for most of the geometries.

From the main settings, disable Automatic boundary layers. Boundary layer refinements will be added later.

standard meshing tool main settings set up
Figure 28: Main settings for the standard mesh.

3.1 Local Element Size Refinement

Click on the ‘+ button’ next to Refinements. A ‘Local element size’ will be assigned to the ‘Walls’ entity set. Limit the element size to ‘0.07’ meters:

local element size refinement for a wing
Figure 29: Local element size refinement applied to the wing walls.

3.2 Inflate Boundary Layer Refinement

The boundary layer refinement is important to capture the near-wall profiles appropriately. Create an ‘Inflate boundary layer’ refinement and set it up as shown:

setting up an inflate boundary layer refinement
Figure 30: Settings for the inflate boundary layer refinement.

3.3 Region Refinement

As fluid flows around a body, a turbulent region is developed downstream. This region is called wake. Since gradients in the wake are often high, we will create region refinements for it.

First, create a new region refinement. Specify ‘0.8’ meters as Maximum edge length and click on the ‘+ button’ to create a geometry primitive:

region refinement to capture wake region
Figure 31: Region refinement to allow good resolution of the developing wake.

Select a ‘Cartesian box’ primitive and give it the following coordinates:

wake cartesian box for region refinement
Figure 32: Dimensions for the cartesian box.

After saving the first cartesian box, head back to the region refinement. Assign the cartesian box to it.

assigning a geometry primitive to a region refinement
Figure 33: Finishing the setup for the first region refinement.

Following the same steps, create another region refinement. This time, set Maximum edge length to ‘0.5’ meters. Click on the ‘+ button’ next to Geometry primitives and create another ‘Cartesian box’ with the following dimensions:

region refinement to capture the wake region
Figure 34: Cartesian box dimensions used for the second region refinement.

After saving the box, assign it to the second region refinement.

assigning a cartesian box to a region refinement
Figure 35: Assign the smaller cartesian box to the second region refinement.

3.4 Generating the Mesh

At last, head back to the main mesh settings and hit Generate.

starting the standard mesh generation process
Figure 36: Starting the operation with the standard meshing tool.

The resulting mesh takes about 10 minutes to complete. This is how the 2.6M cells mesh looks like:

aircraft wing mesh using standard meshing tool
Figure 37: Resulting mesh for the wing geometry using the standard meshing tool.

3.5 Mesh Quality Inspection

Within SimScale, it’s possible to visually inspect mesh quality parameters. Amongst the available quality parameters, we have non-orthogonality, aspect ratio, and volume ratio.

To access this feature, click on ‘Mesh quality’, which is located under Mesh. The post-processing environment then opens up.

Under Results you can find a list of available quality parameters:

mesh quality control visualization environment in simscale
Figure 38: Mesh quality parameters available. Filters can be used for further analysis.

A particularly helpful filter is isovolumes. By playing with the minimum and maximum isovalues, it’s easy to identify bad cells. For example, these are the worst cells in the mesh, when it comes to ‘Aspect ratio’.

isovolumes filter to spot bad quality cells
Figure 39: Using an isovolume filter to assess mesh quality. The highlighted cells are close to the cowling.

A visual representation of mesh quality is extremely helpful when trying to improve the mesh.

For our mesh, the maximum observed value for aspect ratio is 57, which is acceptable. Therefore, we can proceed to run the simulation.

4. Start the Simulation

Click on the ‘+ button’ next to Simulation Runs and ‘Start’ the process.

setting a simulation to run
Figure 40: Simulation tree completely set up and ready to run.

While it’s running, you can access the intermediate results by clicking on ‘Solution Fields’. They’re updated as the iterations go by!

The entire simulation takes between 2 to 3 hours to finish, depending on the number of processors. In the reference project, which is linked below, we calculated a few more iterations, to assure complete convergence.

accessing the post processing environment
Figure 41: You can access the post-processing environment by clicking on either of these two buttons.

5. Post-Processing

5.1 Result Controls

Once the run is finished, open the area average at the inlet result control. By inspecting Uz and Uy, the velocity ramp is very clear:

velocity ramp in simscale
Figure 42: Velocity ramp in the Z direction. The velocity steadily increases between iterations 0 and 600.

For any wing simulation, force plots are commonly used to assess convergence. By inspecting the force plot from this simulation, we can see that all parameters converge nicely:

assessing convergence by inspecting force plots
Figure 43: Force plots on the wing walls. After roughly 2000 iterations, all parameters display a nice convergence pattern.

For compressible external aerodynamics simulations, other parameters useful to assess convergence are:

  • Inlet: pressure;
  • Outlet: temperature, velocities, and density.

5.2 Post-Processing Pictures

post-processing wing compressible simulations
Figure 44: Pressure contours on the wing and streamlines showing air velocity.

Analyze your results with the SimScale post-processor. Have a look at our post-processing guide to learn how to use the post-processor.

Congratulations! You finished the tutorial!


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

Last updated: January 8th, 2021

Data Privacy