Skip to content

Latest commit

 

History

History
165 lines (108 loc) · 4.73 KB

README.md

File metadata and controls

165 lines (108 loc) · 4.73 KB

PySAGAS

Latest version Code style: black Test Status Test Coverage

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.

waverider-evolution-flipped

Table of Contents

  1. Getting Started
  2. Usage
  3. Citing
  4. License

Getting Started

Prerequisites

ParaView

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.

pyOptSparse

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

PyMesh

Having PyMesh installed can greatly enhance the capabilities offered by PySAGAS. However, it can be difficult to install. Troubleshooting guide coming soon.

Installation

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 .

[back to top]

Usage

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.

[back to top]

Citing PySAGAS

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},
}

[back to top]

License

PySAGAS is licensed under GPLv3.

[back to top]