Coder Social home page Coder Social logo

afcarl / openaerostruct Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mdolab/openaerostruct

0.0 0.0 0.0 4.64 MB

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

Makefile 1.99% Python 58.91% MATLAB 1.19% Fortran 35.25% Shell 0.01% C 2.65%

openaerostruct's Introduction

Build Status Coverage Status Documentation Status

OpenAeroStruct

OpenAeroStruct is a lightweight Python tool that performs aerostructural optimization of lifting surfaces using OpenMDAO. It uses a vortex lattice method (VLM) for the aerodynamics analysis and a spatial beam model with 6-DOF per element for the structural analysis.

Documentation is available here.

Please see the SMO journal paper for more information and please cite this article if you use OpenAeroStruct in your research. Here's an open-access copy of the paper: http://rdcu.be/Gtl1

Optimized CRM-type wing with 30 panels

Installation

To use OpenAeroStruct, you must first install OpenMDAO 1.7.3 by following the instructions here: https://github.com/OpenMDAO/openmdao1. If you are unfamiliar with OpenMDAO and wish to modify the internals of OpenAeroStruct, you should examine the OpenMDAO documentation at http://openmdao.readthedocs.io/en/1.7.3/. The tutorials provided with OpenMDAO, especially the Sellar Problem, are helpful to understand the basics of using OpenMDAO to solve an optimization problem. Note that OpenMDAO 1.7.3 is the most recent version that has been tested and confirmed working with OpenAeroStruct.

Next, clone this repository:

git clone https://github.com/mdolab/OpenAeroStruct.git

If you are using MacOS, move the config-macOS.mk file to the config/ folder and rename it to config.mk to replace the existing config.mk file. The default config.mk file works for Ubuntu users. Unfortunately, there is no documented Windows support for the Fortran code.

If you're on Mac or Ubuntu, run this command from within the OpenAeroStruct folder to make the Fortran files:

make

Note that the code will run without compiling the Fortran library, but it will run significantly faster when using Fortran.

Usage

run_vlm.py is for aero-only analysis and optimization. It can use a single lifting surface or multiple separate lifting surfaces.

run_spatialbeam.py is for structural-only analysis and optimization. It can use a single structural component or multiple structural components, where each component represents a spar within a lifting surface.

run_aerostruct.py performs aerostructural analysis and optimization.

For each case, you can view the optimization results using plot_all.py. Examine its docstring for keyword information.

An example workflow would be:

python run_aerostruct.py 1
python plot_all.py aerostruct.db

The first command performs aerostructural optimization and the second visualizes the optimization history.

The keywords used for each file are explained in their respective docstrings at the top of the file.

If you wish to examine the code in more depth, see run_classes.py and the methods it calls. These methods interface directly with OpenMDAO.

Notes

This current version of this repository has grown past the previous Matlab implementation. If you are looking for a Matlab-capable version, please see https://github.com/samtx/OpenAeroStruct for the latest version.

Known Issues

  • The increase in accuracy of results when using a cosine-spaced mesh is not as large as it should be.
  • Aerostructural optimization sometimes fails to converge for certain geometries. The example provided in run_aerostruct.py should converge. The structural and aerodynamic values must make sense together, e.g. the beam thickness and radius must be able to support the aerodynamic loads.

openaerostruct's People

Contributors

hwangjt avatar johnjasa avatar jrram avatar justinsgray avatar kenneth-t-moore avatar nbons avatar samtx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.