Back to all tutorials

Airfoil (NACA 0012) - CFD Simulation SimFlow Tutorial

1. Introduction

Airfoil NACA 0012 tutorial presents the analysis of the airfoil profile. Using an additional feature dedicated to 2D airfoil meshing and analysis you will be able to perform such a simulation in the shortest way.

2. Download SimFlow

SimFlow is a general purpose CFD Software

To follow this tutorial, you will need SimFlow free version, you may download it via the following link:
Download SimFlow

3. Enable Airfoil Feature

We need to enable the Airfoil feature in the SimFlow launcher in the Advanced Settings section.

  1. Go to Advanced Settings panel
  2. Expand features list by clicking Manage Features
  3. Choose Airfoil from the list and close the Advanced Settings panel
nc 01 enable airfoil feature

4. Create Case

Open SimFlow and create a new case named airfoil_naca_0012

  1. Go to New panel
  2. Provide name airfoil_naca_0012
  3. Click Create Case
nc 02 create case

5. Import Geometry

Firstly we need to Download GeometryNaca0012

  1. Go to Airfoil panel
  2. Click Import Geometry
  3. Select geometry file naca0012.dat
  4. Click Open
nc 03 import airfoil geometry

6. Airfoil Meshing

  1. Set Radius [m] to 25 meters
  2. Set the following parameters accordingly
    Surface Cell Thickness \({\sf [m]}\)2e-04
    Min Surface Cell Length \({\sf [m]}\)2e-03
    Max Surface Cell Length \({\sf [m]}\)8e-03
  3. Click Mesh to start the meshing process
nc 04 airfoil meshing

7. Mesh

After creating a mesh, it will appear in the 3D window.

  1. Click XZ View
  2. Click Fit View to zoom the mesh
  3. Change view projection from Perspective to Parallel
  4. Zoom in the middle section of the mesh by using scroll mouse button
  5. If you zoom in enough, airfoil shape should appear
nc 05 mesh

8. Inspect Mesh Boundaries

Now we will check if the boundaries are set properly.

  1. Inspect boundaries
nc 06 mesh boundaries

9. Select Solver - SIMPLE

We want to analyze incompressible turbulent flow around the Airfoil. For this purpose, we will use the SIMPLE (simpleFoam) solver.

  1. Go to Setup panel
  2. Select Steady State filter
  3. Select Incompressible filter
  4. Pick SIMPLE (simpleFoam) solver
  5. Select solver
nc 07 select solver

10. Turbulence

We are going to use the standard \(k-\omega \; SST\) model to handle turbulence. This model gives very good agreement with experimental data and is commonly used for aerodynamics applications.

  1. Go to Turbulence panel
  2. Select RANS modeling
  3. Select \(k-\omega \; SST\) model
nc 08 turbulence

11. Dicretization - Convection

  1. Go to Discretization panel
  2. Go to Convection tab
  3. Select Linear Upwind for U (Velocity) parameter
nc 09 discretization convection

12. Solution - Solvers (Pressure)

The calculations will be run until Residuals will drop down under 10 −6 . This criterion will guarantee high accuracy and will require more iteration. To make sure that the fluid solver will be able to capture very small changes in the flow, we need to make sure that the linear solvers for fluid flow equations will also be able to operate on very slight flow changes. To do this, we will change default solver tolerances.

  1. Go to Solution panel
  2. Expand list of options
  3. Set Tolerance to 1e-07
nc 10 solution solvers p

13. Solution - Solvers (Velocity)

  1. Go to U (Velocity) tab
  2. Expand list of options
  3. Set following parameters accordingly
    Relative Tolerance1e-02
nc 11 solution solvers u

14. Solution - SIMPLE

  1. Go to SIMPLE tab
  2. Set Non-Orthogonal Corrections to 2
nc 12 solution simple

15. Solution - Residuals

  1. Go to Residuals tab
  2. Set following parameters accordingly
nc 13 solution residuals

16. Parameter - U (Velocity)

It is handy to parameterize velocity value to be easily accessible in the further setup. To be able to compare the results with test results we should assume \(Re=6000000\). Based on the air viscosity \(\nu = 1.5 \cdot 10^{-5} \; m^2/s \) and chord \(c\approx 1 \;m\) we calculate the velocity from the equation: \(V=Re \cdot \frac{\nu}{c}\)

  1. Go to Parameters panel
  2. Define the name and formula of the new parameter
  3. Click Create Parameter
  4. The newly created parameter will be shown in the parameters list
nc 14 parameters u velocity

17. Boundary Conditions - Inlet (Flow)

  1. Go to Boundary Conditions panel
  2. Select inlet boudary
  3. Change boundary character to Free Stream
  4. Set to velocity type to Free Stream
  5. Now we can use parameter U defined earlier
    Freestream Value \({\sf [m/s]}\)U00
nc 15 boundary conditions inlet flow

18. Boundary Conditions - Inlet (Turbulence)

  1. Go to Turbulence tab
  2. Set Mixing Length \({\sf [m]}\)0.07
nc 16 boundary conditions inlet turbulence

19. Initial Conditions - Basic

  1. Go to Initial Conditions panel
  2. Set following initial conditions accordingly
nc 17 initial conditions basic

20. Initial Conditions - Potential

We will use the "Potential" initialization feature. This utility solves pseudo potential flow prior to actual calculations. This will give a better initial guess for velocity and pressure fields.

  1. Go to Potential tab
  2. Check Initialize Potential Flow
nc 18 initial conditions potential

21. Monitors - Forces

  1. Go to the Monitors panel
  2. Go to the Forces tab
  3. For Monitor Boundaries select lower tip upper
  4. Check Monitor Coefficients
  5. Define free stram velocity accordingly

\(U_\infty\) \({\sf [m/s]}\)U

nc 19 monitors forces

22. Monitors - Create Slice

Additionally to observing force coefficients, we will display intermediate results on a section plane.

  1. Go to Sampling tab
  2. Add new Slice
  3. Set the follwing parameters accordingly
    Normal \({\sf [-]}\)010
    Point \({\sf [m]}\)000
  4. Expand Fields menu. Choose p U k (pressure, velocity and turbulent kinetic energy) to be sampled on the section plane.
nc 20 monitors sampling

23. Run - Time Control

  1. Go to Run panel
  2. Set Number of Iterations to 5000
nc 21 run time control

24. Run - Output

  1. Go to Output tab
  2. Set Interval [-] to 100

This controls when results are written to the hard drive. When slices are enabled this also applies to them. Each new result will be displayed at a specified interval.

nc 22 run output

25. Run - CPU

To speed up the calculation process increase the number of CPUs basing on your PC capability. The free version allows you to use only 2 processors in parallel mode. To get the full version, you can use the contact form to Request 30-day Trial

Estimated computation time for 2 processors: 15 minutes

  1. Switch to CPU tab
  2. Use parallel mode
  3. Increase the Number of processors
  4. Click Run Simulation button
nc 22 run cpu

26. Slice - View Velocity field

  1. Change tab to Slices
  2. Choose U (Velocity) field
  3. Click Adjust range to data adjust color range to actually displayed data
nc 23 slice view velocity

27. Results - Force Coefficients

  1. Change tab to Force Coefficients
  2. Click Fit Axes
  3. Select Lookup Data
  4. Choose the last point from the chart
  5. Read the Lift coefficient
nc 23 results force coeff

28. Reset Simulation

If you want to change the angle of the attack, you should first reset the simulation in the run panel.

  1. Go to Run Panel
  2. Reset Simulation
nc 24 reset simulation

29. Change Angle of Attack

In the Airfoil panel, we can now remesh the Airfoil change angle of attack. And then rerun the simulation.

  1. Go to Airfoil panel
  2. Change the Angle of attack for the desired value for example
    Angle of Attack \({\sf [deg]}\)5
  3. Click Mesh button
nc 25 angle of attack

30. Mesh - Second Case

After creating a mesh, it will appear in the 3D window.

  1. Click XZ View
nc 26 mesh 5deg

31. Run Second Simulation

  1. Go to Run panel
  2. Click Run Simulation button
nc 27 run2

32. Results Comparison With Experimental Data

You might repeat the above operations for different angles of attack, e.g: 5, 10 and 15 degrees. Next comparing them with the experimental data (NASA Langley, 1988) you should be able to obtain the following results.

nc 28 results comparison

33. Advanced Postprocessing with ParaView

This concludes the tutorial, covering all the aspects we intended to showcase. To create a finely tuned presentation of the results, you may take advantage of the seamless integration with ParaView. You can easily open simulation results in ParaView with a single click from SimFlow.

In ParaView, you can perform typical and advanced postprocessing tasks such as displaying streamlines, contour plots, vector fields, line or time plots, and calculating volume or surface integrals.

To familiarize yourself with the ParaView capabilities, it’s worth checking out our video tutorial, Paraview CFD Tutorial - Advanced Postprocessing in ParaView, in which we demonstrate some of the most commonly used post-processing techniques.