1.5. Run CFD using Automated Meshing: An example of S809 Airfoil#

For this quick start, NREL’s S809 Airfoil is selected. The S809 has a 21% thickness and is designed specifically for use in horizontal-axis wind turbines. For this simulation, a quasi-3D model is created in ESP using the S809 airfoil coordinates. More information about NREL’s S809 Airfoil is available in this technical report prepared by Sandia National Laboratories.

quasi-3D model in ESP

Fig. 1.5.1 Quasi-3D model generated in ESP#

The quasi-3D S809 airfoil model built in ESP here can be found in the s809.csm file.

Through ESP we have control over the meshing parameters applied including edge and face attributes. The surface mesh parameters used here are available in the s809SurfaceMesh.json file.

Within the volume mesh parameters JSON file below, you will notice that we use field constraints to control the maximum edge length and resolution of the unstructured mesh. Similarly, the initial height of the anisotropic mesh at wall boundaries is indicated by ‘firstLayerThickness’ and ‘growthRate’.

The volume mesh parameters are available in the s809VolumeMesh.json file.

1.5.1. Case Setup#

Flow conditions:

  • Reynolds: 2e+06

  • Mach: 0.15

  • AoA: 5.13°

The case setup parameters for the S809 airfoil simulation are available in the s809Case.json file.

1.5.2. Run a Case#

Using the Python API, these three steps are executed using the following commands:

surfaceMeshId = flow360client.NewSurfaceMeshFromGeometry("s809.csm", "s809SurfaceMesh.json")
volumeMeshId = flow360client.NewMeshFromSurface(surfaceMeshId=surfaceMeshId, config="s809VolumeMesh.json")
caseId = flow360client.NewCase(meshId=volumeMeshId, config="s809Case.json", caseName='QuickStart_S809')

To ease the simulation process, an example Python script is provided here that takes a CSM, mesh and case input JSON files as the input configuration parameters for the simulation, runCase.py. The input JSON file has the following content:

 2    "geometry": {
 3        "csm": "path/to/s809.csm"
 4    },
 5    "mesh": {
 6        "surface": "path/to/s809SurfaceMesh.json",
 7        "volume": "path/to/s809VolumeMesh.json"
 8    },
 9    "flow360": {
10        "case": "path/to/s809Case.json"
11    }

To utilize, download the JSON file with above content called s809Simulation.json, then modify the individual paths for the *.csm file, surface and volume mesh JSON, and finally the case JSON files. Then submit using:

python3 runCase.py -json s809Simulation.json

1.5.3. Download the Results#

To download the surface and volume solution for postprocessing, we will also use the Flow360 Python API client.

The example script, downloadCase.py, takes a JSON input and downloads flow results as well as forces and moments convergence history files. The input JSON file has the following form:

2    "flow360": {
3        "caseId": "case_id",
4        "caseName": "QuickStart_S809"
5    }

To utilize, download the JSON file with above content called caseID.json. Then run ‘downloadCase.py’ to download the results.

python3 downloadCase.py -json caseID.json

You can then postprocess results with either Tecplot or ParaView (output format is specified in the s809Case.json input file).

Below you can find pressure coefficient comparisons with experimental data.


The s809structured.cgns is a structured mesh that is manually generated using hyperbolic extrusion and then exported as unstructured mesh.

1.5.4. Visualize Force Histories#

You can also find the force convergence histories on the Web UI by clicking on your case name and selecting the Forces tab.

For the S809 simulation, the convergence histories of forces are: