This is my undergraduate Computer Science thesis project at the Electrical Engineering faculty at Warsaw University of Technology.
This project is largely an attempt at reverse-engineering and replicating the results of work by Dr Josef Dubsky and Dr Christos Pashias on Porsche 919 Evo rear wing optimization published in a non-technical Medium article. Being an undergraduate thesis, the time was limited and results are mostly there for the sake of showing a proof of concept. Next version of the project will hopefully be more usable.
The pipeline of this project is as following - the MATLAB's autoencoder is trained on nodes/thicknesses probed on most airfoils from UIUC Selig airfoil database. The encoder part is tossed away, and decoder is used as a generator of new nodes, which are later interpolated with a spline. This generator is then used in a MATLAB's genetic algorithm, where a fitness function is calculated by generating two of such airfoils, meshing them in gmsh and calculating CL and CD in OpenFOAM.
Run this code at your own risk, it's barely working. The main function is findParams. If you don't have a pretrained autoencoder at hand, use generator/train_selig or generator/train_selig_new.
- MATLAB(with several toolboxes)
- OpenFOAM v8
- gmsh 4.9.1
This project is (hopefully) under further development in a new repository. This is due to the fact that I intend to change the tech stack quite a bit, and I also want to preserve this repository in a state in which I finished my undergraduate thesis.
Special thanks to @bchaber for putting up with a lot of emails from me and being a great thesis advisor in general!