PyAero is an open-source airfoil contour analysis and CFD meshing tool written in Python. The graphical user interface is written in Qt for Python (PySide2).
- Load and display airfoil contour files
- Airfoil splining and refining
- Get a smooth contour and sufficient contour points
- Refine leading and trailing edge resolution
- Prepare contour for meshing
- Automatic calculation of leading edge radius
- Point distribution on spline used as mesh distribution
- Automatic generation of block-strcuctured mesh
- Currently single element C-type mesh
- Strictly orthogonal mesh in the vicinity of the airfoil
- Mesh resolution control for airfoil, leading edge, trailing edge and windtunnel
- Sharp or blunt trailing edges
- Mesh smoothing (to be improved)
- Mesh export
- Simple aerodynamic analysis using AeroPython
- Airfoil contour analysis (gradient, curvature and curvature circle)
- NOT YET IMPLEMENTED: Advanced aerodynamic analysis
- Linking to open source CFD software (e.g. SU2)
Example mesh around RAE2822 airfoil
Example mesh around RAE2822 airfoil - Leading Edge
Example mesh around RAE2822 airfoil - Trailing Edge (with finite thickness)
Example mesh with a sharp Trailing Edge
Example mesh around MAKAROV KPS airfoil as used in the CFD code AVL-FIRE.
Velocity field (RE=50000) around MAKAROV KPS airfoil using the CFD code AVL-FIRE.
Turbulence kinetic energy field (RE=50000) around MAKAROV KPS airfoil using the CFD code AVL-FIRE.
Unsteady 3D calculation of the RG14 airfoil using the CFD code AVL-FIRE.
RE=330000, AOA=2°, 20 million cells.
Laminar calculation: CD=0.0079, CL=0.371
LES calculation (subgrid scale model: Kobayashi CSM): CD=0.0078, CL=0.362
The PyAero documentation can be found at the following link:
The documentation is automatically generated using the markdown files in the docs folder via Sphinx.
At the moment no binary is available for Windows.
The $ symbol represents the prompt at command shell. It is not part of the command.
$ cd anywhere_on_your_computer
$ git clone https://github.com/chiefenne/PyAero.git
From the PyAero GitHub repository. There is on the upper right side a green pull down menu "Clone or download". Click on it and then click "Download ZIP". You get a file "PyAero-master.zip" which you store anywhere on your computer.
$ cd anywhere_on_your_computer
$ unzip PyAero-master.zip
After cloning from Git, or downloading and unzipping, set the environment variable for the PyAero installation path.
$ setenv PYAERO_PATH path_to_your_installation
Run PyAero using:
$ python $PYAERO_PATH/src/PyAero.py
To simplify the command, set an alias.
$ alias pyaero "python $PYAERO_PATH/src/PyAero.py"
Then start PyAero using simply:
$ pyaero
To keep everything stored across sessions, you might want to add PYAERO_PATH and the alias command to your ~.bashrc, ~/.profile or similar depending on your environment.
PyAero version based on the Qt for Python (alias PySide2) GUI API
Reasoning for going with Qt for Python
PyAero started based on the PyQt4 which for me was the API to go at the time when I started development. PyAero two years ago achieved an 80% state.
After a small creative break I decided to upgrade to PyQt5 and continue development. I soon realized that the PyQt5 documentation lacks information, i.e. there were only links to the Qt C++ documentation and no Python related docs, I had the feelig that the PyQt5 development probably stagnates.
Short online research revealed to me that meanwhile Qt themselves are developing now Qt for Python (alias PySide2) which is based on the legacy Pyside API. This made me think that it is possibly best to go with Qt for Python as it is tightly coupled to Qt.
Andreas Ennemoser – andreas.ennemoser@aon.at
Distributed under the MIT license. See LICENSE for more information.