• Stars
    star
    192
  • Rank 200,928 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenAeroStruct is a lightweight tool that performs aerostructural optimization using OpenMDAO.

OpenAeroStruct

GitHub Actions Status codecov Documentation Status PyPI PyPI - Downloads

OpenAeroStruct is a lightweight tool that performs aerostructural optimization using OpenMDAO. It couples a vortex-lattice method (VLM) and a 6 degrees of freedom 3-dimensional spatial beam model to simulate aerodynamic and structural analyses using lifting surfaces. These simulations are wrapped with an optimizer using NASA's OpenMDAO framework. The analysis and optimization results can be visualized using included tools, producing figures such as these:

With a tubular structure Example

With a wingbox structure Example2

Please note that this repository is provided as is without any guaranteed support. If you would like to highlight issues, ask questions, or make changes, please do so using GitHub Issues and Pull Requests. The developers will address them at their discretion.

The easiest way to get started is by installing OpenAeroStruct via the Python Package Index with

pip install openaerostruct

If you'd like easier access to the examples and source code, install OpenAeroStruct by cloning this repository and entering the folder it generates. Then do:

pip install -e .

Documentation

Please see the documentation for more installation details, walkthroughs, and examples.

Citation

For more background, theory, and figures, see the OpenAeroStruct journal article. Please cite this article when using OpenAeroStruct in your research or curricula.

John P. Jasa, John T. Hwang, and Joaquim R. R. A. Martins. "Open-source coupled aerostructural optimization using Python." Structural and Multidisciplinary Optimization 57.4 (2018): 1815-1827. DOI: 10.1007/s00158-018-1912-8

@article{Jasa2018a,
	Author = {John P. Jasa and John T. Hwang and Joaquim R. R. A. Martins},
	Doi = {10.1007/s00158-018-1912-8},
	Journal = {Structural and Multidisciplinary Optimization},
	Month = {April},
	Number = {4},
	Pages = {1815--1827},
	Publisher = {Springer},
	Title = {Open-source coupled aerostructural optimization using {Python}},
	Volume = {57},
	Year = {2018}}

If using the wingbox model, please cite the following conference paper.

Shamsheer S. Chauhan and Joaquim R. R. A. Martins, “Low-Fidelity Aerostructural Optimization of Aircraft Wings with a Simplified Wingbox Model Using OpenAeroStruct,” Proceedings of the 6th International Conference on Engineering Optimization, EngOpt 2018, Springer, Lisbon, Portugal, September 2018, pp. 418–431. doi:10.1007/978-3-319-97773-7 38

@inproceedings{Chauhan2018b,
	Author = {Shamsheer S. Chauhan and Joaquim R. R. A. Martins},
	Address = {Lisbon, Portugal},
	Booktitle = {Proceedings of the 6th International Conference on Engineering Optimization, EngOpt 2018},
	Doi = {10.1007/978-3-319-97773-7_38},
	Pages = {418-431},
	Publisher = {Springer},
	Title = {Low-Fidelity Aerostructural Optimization of Aircraft Wings with a Simplified Wingbox Model Using {OpenAeroStruct}},
	Year = {2018}}

Version Information

The oldest and latest versions of the dependencies that we test regularly are the following (other versions may work, but no guarantees):

Dependency oldest latest
Python 3.8 3.11
NumPy 1.20 latest
SciPy 1.6.0 latest
OpenMDAO 3.15 latest
MPhys 1.0.0 latest
Matplotlib latest latest
pyGeo (optional) 1.6.0 latest
OpenVSP (optional) 3.27.1 3.27.1

If you are looking to use the previous version of OpenAeroStruct which uses OpenMDAO 1.7.4, use OpenAeroStruct 1.0 from here.

License

Copyright 2018-2023 MDO Lab

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More Repositories

1

pyoptsparse

pyOptSparse is an object-oriented framework for formulating and solving nonlinear constrained optimization problems in an efficient, reusable, and portable manner.
Python
221
star
2

adflow

ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
Fortran
220
star
3

dafoam

DAFoam: Discrete Adjoint with OpenFOAM for High-fidelity Multidisciplinary Design Optimization
C
205
star
4

pygeo

pyGeo provides geometric design variables and constraints suitable for gradient-based optimization.
Python
123
star
5

MACH-Aero

MACH: MDO of Aircraft Configurations with High fidelity
Python
110
star
6

pyXDSM

A python library for generating PDF XDSM diagrams.
Python
57
star
7

pyhyp

pyHyp generates volume meshes from surface meshes using hyperbolic marching.
Fortran
45
star
8

pyspline

pySpline produces B-spline curves, surfaces, and volumes
Python
39
star
9

openconcept

OpenConcept: A toolkit for conceptual MDAO of aircraft with unconventional propulsion architectures
Python
34
star
10

CMPLXFOIL

Fortran
29
star
11

niceplots

Python
16
star
12

idwarp

IDWarp is a mesh warping package for the MACH framework.
Fortran
16
star
13

cgnsutilities

cgnsUtilities is a collection of functions for working with CGNS grids.
Fortran
10
star
14

AerostructuralOptBenchmark

Python
9
star
15

prefoil

preFoil facilitates rapid airfoil generation and manipulation.
Python
6
star
16

baseclasses

Python
6
star
17

pyofm

Python wrapper for OpenFOAM meshes
Python
6
star
18

MACH-Aero-tutorial

Python
5
star
19

multipoint

Facilitates distributed multipoint optimization.
Python
5
star
20

sphinx_mdolab_theme

Python
3
star
21

pysurf

pySurf provides geometric operations for triangulated surfaces.
Fortran
2
star
22

aeroprop

Python
2
star