PySAGAS is a Python package for the generation of Sensitivity Approximations for Geometric and Aerodynamic Surface properties. It provides a computationally-efficient method for generating surface sensitivity approximations from existing flow solutions, to use in aerodynamic shape optimisation studies. The GIF below is an example of this, where a hypersonic waverider was optimised for maximum L/D at Mach 6.
If you plan on using PySAGAS with Cart3D solutions, you should also install ParaView, or at least the ParaView Python bindings. If you are using an Anaconda environment, you can install the ParaView Python packages via Conda Forge using the command below:
conda install -c conda-forge paraview
If you already have ParaView installed, you can append the path to the binaries to the Python path using the snippet below.
import sys
sys.path.insert(0, "/opt/ParaView-5.6.2-MPI-Linux-64bit/bin")
# Now the import should work
import paraview
For more information on ParaView's Python packages, see the ParaView Wiki.
PySAGAS shape optimisation modules wrap around pyOptSparse to converge on optimal geometries. Follow the installation instructions, noting that special optimisers require custom builds.
If using an Anaconda environment, you can also install PyOptSparse from Conda forge:
conda install -c conda-forge pyoptsparse
Having PyMesh installed can greatly enhance the capabilities
offered by PySAGAS
. However, it can be difficult to install. Troubleshooting guide coming soon.
After installing the dependencies above, clone this repo to your machine.
git clone https://github.com/kieran-mackle/pysagas
Next, use pip to install the pysagas
package from the repo you
just cloned.
cd pysagas
python3 -m pip install .
PySAGAS uses low-order methods to approximate sensitivities on the surface of aerodynamic geometries. The user must provide a nominal condition of the flow properties on the surface, along with the sensitivity of the geometric vertices to the design parameters. From here, one of PySAGAS sensitivity calculators can be used.
If you use PySAGAS in any published work, please cite it using the BibTex reference below.
@inproceedings{Mackle2024,
author = {Mackle, Kieran and Jahn, Ingo},
booktitle = {AIAA Science and Technology Forum and Exposition},
title = {Efficient and Flexible Methodology for the Aerodynamic Shape Optimisation of Hypersonic Vehicle Concepts in a High-Dimensional Design Space},
year = {2024},
}
PySAGAS is licensed under GPLv3.