AERO-Optim is a simple aerodynamic shape optimization framework coupling FreeForm Deformation (FFD), automatic meshing with gmsh
and any CFD solver execution in the frame of an optimization algorithm based on inspyred
or pymoo
. It is composed of the following core components:
ffd.py
: which defines a class to perform 2D FFD of a given geometry,*mesh.py
: which define multiples classes to generate automatic meshes,simulator.py
: which defines a class to orchestrate CFD simulations including pre- and post-processing steps as well as progress monitoring,*optimizer.py
andevolution.py
: which define multiple classes to coordinate the optimization procedures withinspyred
orpymoo
.
The full documentation is available HERE.
AERO-Optim requires Python 3.10 or newer and comes with a few dependencies listed in requirements.txt
and recalled below:
gmsh # to design and visualize meshes (MESH)
inspyred # optimization toolbox (OPTIM)
numpy # to manipulate geometries as arrays (FFD)
matplotlib # to visualize the generated deformed profiles (FFD)
pandas # to load simulation results (OPTIM)
pymoo # optimization toolbox (OPTIM)
scipy # to use quasi monte carlo samplers (FFD)
From the user's working directory, they can all be installed at once in a virtual environment with the following commands:
git clone https://github.com/mschouler/aero-optim.git
cd aero-optim
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
Details about the following topics are available on the documentation: