# Airfoil (NACA 0012) - CFD Simulation

Source: https://help.sim-flow.com/tutorials/airfoil-naca-0012
Last updated: 2026-10-14

[Video](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012.mp4)

## 1. Introduction

The 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 quickest way.

## 2. Download SimFlow

SimFlow is a general-purpose [CFD Software](https://sim-flow.com/download/cfd-simulation-software/)

To follow this tutorial, you will need the SimFlow free version. You may download it via the following link:
[Download SimFlow](https://sim-flow.com/download-simflow/)

## 3. Create Case

Open SimFlow and create a new case named *airfoil naca 0012*.

1. Click **New**
2. Provide name `airfoil naca 0012`
3. Click **Create** to open a new case

![simflow-launcher](https://help.sim-flow.com/tutorials/images/launcher-airfoil_naca_0012.png)

## 4. Enable Airfoil Feature

We need to enable the Airfoil feature in SimFlow from the menu bar:

1. Expand the *Help* menu
2. Select *Features*
3. Enable the *Airfoil* feature
4. The *Airfoil* panel should appear on the left panel list

![nc 01 enable airfoil feature](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-01-enable-airfoil-feature.png)

## 5. Import Geometry

Firstly, we need to [Download GeometryNaca0012](https://help.sim-flow.com/tutorials/downloads/airfoil-naca-0012/naca0012.dat)

1. Go to *Airfoil* panel
2. Click **Import Geometry**
3. Select geometry file *naca0012.dat*
4. Click **Open**

![nc 03 import airfoil geometry](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-03-import-airfoil-geometry.png)

## 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](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-04-airfoil-meshing.png)

## 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, the airfoil shape should appear

![nc 05 mesh](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-05-mesh.png)

## 8. Inspect Mesh Boundaries

Now we will check if the boundaries are set properly.

1. Inspect boundaries

![nc 06 mesh boundaries](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-06-mesh-boundaries.png)

## 9. Simulation Type

We want to analyze the airflow around the airfoil. For this purpose, we will use a single-phase, steady-state simulation of incompressible turbulent flow.

![Simulation Panel](https://help.sim-flow.com/assets/images/go-to-simulation-panel@2x.png)

![Step 1](https://help.sim-flow.com/assets/images/solvers-selection/simpleFoam/01_single_phase@2x.png)

![Step 2](https://help.sim-flow.com/assets/images/solvers-selection/simpleFoam/02_low_speed@2x.png)

![Step 3](https://help.sim-flow.com/assets/images/solvers-selection/simpleFoam/03_steady-state@2x.png)

![Step 4](https://help.sim-flow.com/assets/images/solvers-selection/simpleFoam/04_apply@2x.png)

## 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](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-08-turbulence.png)

## 11. Discretization - Convection

1. Go to *Discretization* panel
2. Go to *Convection* tab
3. Select **Linear Upwind** for *U* (Velocity) parameter

![nc 09 discretization convection](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-09-discretization-convection.png)

## 12. Solution - Solvers (Pressure)

The calculations will be run until Residuals drop down under 10 ^−6 . This criterion will guarantee high accuracy and will require more iterations. 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 the default solver tolerances.

1. Go to *Solution* panel
2. *Expand* list of options
3. Set *Tolerance* to `1e-07`

![nc 10 solution solvers p](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-10-solution-solvers-p.png)

## 13. Solution - Solvers (Velocity)

1. Go to *U* (Velocity) tab
2. *Expand* list of options
3. Set the following parameters accordingly
   *Tolerance*`1e-07`
   *Relative Tolerance*`1e-02`

![nc 11 solution solvers u](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-11-solution-solvers-u.png)

## 14. Solution - SIMPLE

1. Go to *SIMPLE* tab
2. Set *Non-Orthogonal Corrections* to `2`

![nc 12 solution simple](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-12-solution-simple.png)

## 15. Solution - Residuals

1. Go to *Residuals* tab
2. Set the following parameters accordingly
   *p*`1e-06`
   *U*`1e-06`
   *k*`1e-05`
   *\(\omega\)*`1e-05`

![nc 13 solution residuals](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-13-solution-residuals.png)

## 16. Parameter - U (Velocity)

It is handy to parameterize the 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
   *Name*`U`
   *Formula*`6e6*(1.5e-5/1)`
3. Click **Create Parameter**
4. The newly created parameter will be shown in the parameters list

![nc 14 parameters u velocity](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-14-parameters-u-velocity.png)

## 17. Boundary Conditions - Inlet (Flow)

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

![nc 15 boundary conditions inlet flow](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-15-boundary-conditions-inlet-flow.png)

## 18. Boundary Conditions - Inlet (Turbulence)

1. Go to *Turbulence* tab
2. Set *Mixing Length \({\sf [m]}\)*`0.07`

![nc 16 boundary conditions inlet turbulence](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-16-boundary-conditions-inlet-turbulence.png)

## 19. Initial Conditions - Basic

1. Go to *Initial Conditions* panel
2. Set the following initial conditions accordingly
   *U*`U``0``0`
   *k*`0.1`
   *\(\omega\)*`100`
   *\(\nu_t\)*`0.1`

![nc 17 initial conditions basic](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-17-initial-conditions-basic.png)

## 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](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-18-initial-conditions-potential.png)

## 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 stream velocity accordingly

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

![nc 19 monitors forces](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-19-monitors-forces.png)

## 22. Monitors - Create Slice

In addition 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 following parameters accordingly
   *Normal \({\sf [-]}\)*`0``1``0`
   *Point \({\sf [m]}\)*`0``0``0`
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](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-20-monitors-sampling.png)

## 23. Run - Time Control

1. Go to *Run* panel
2. Set *Number of Iterations* to `5000`

![nc 21 run time control](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-21-run-time-control.png)

## 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](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-22-run-output.png)

## 25. Run - CPU

To speed up the calculation process, take advantage of parallel computing and increase the number of CPUs based on your PC’s capability. The free version allows you to use only one processor (serial mode). To get the full version, you can use the contact form to [Request 30-day Trial](https://license.sim-flow.com/trial)

Estimated computation time for serial mode: 25 minutes

1. Switch to *CPU* tab
2. Click **Run Simulation** button

![run cpu serial](https://help.sim-flow.com/tutorials/images/run-cpu-serial.png)

## 26. Slice - View Velocity field

1. Change tab to *Slices*
2. Choose *U* (Velocity) field
3. Click *Adjust range to data* to adjust color range to actually displayed data

![nc 23 slice view velocity](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-23-slice-view-velocity.png)

## 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](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-23-results-force-coeff.png)

## 28. Reset Simulation

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

1. Go to *Run* Panel
2. **Reset Simulation**

![nc 24 reset simulation](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-24-reset-simulation.png)

## 29. Change Angle of Attack

In the Airfoil panel, we can now remesh the Airfoil with a changed angle of attack and then rerun the simulation.

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

![nc 25 angle of attack](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-25-angle-of-attack.png)

## 30. Mesh - Second Case

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

1. Click *XZ View*

![nc 26 mesh 5deg](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-26-mesh-5deg.png)

## 31. Run Second Simulation

1. Go to *Run* panel
2. Click **Run Simulation** button

![nc 27 run2](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-27-run2.png)

## 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](https://turbmodels.larc.nasa.gov/naca0012_val.html)), you should be able to obtain the following results.

![nc 28 results comparison](https://help.sim-flow.com/tutorials/images/airfoil-naca-0012/nc-28-results-comparison.png)

## 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 postprocessing techniques.

[Paraview CFD Tutorial - Advanced Postprocessing in ParaView](https://www.youtube.com/watch?v=5M6VgXyHB60&list=PLy7xPqn9xXckoD2gZgPpv8mrxillJ9PWU&index=21)
