Package: om-aviary
Aviary -- NASA's aircraft design toolCheck out the Aviary documentationhere.DescriptionThis repository is anOpenMDAO-based aircraft modeling tool that incorporates aircraft sizing and weight equations from its predecessorsGASP (General Aviation Synthesis Program)andFLOPS (Flight Optimization System).
It also incorporates aerodynamic calculations from GASP and FLOPS and has the capability to use an aerodynamics deck as well as an aircraft engine deck.
There are two options for the mission analysis portion of this code, a 2 degrees-of-freedom (2DOF) approach, and a height energy (HtEn) approach.
The user can select which type of mission analysis to use, as well as whether to use the FLOPS-based code or the GASP-based code for the weight, sizing, and aerodynamic relations.InstallationThe simplest installation method for users is to install via pip.
Once you have cloned the Aviary repo, change directories into the top-level Aviary folder (not within theaviaryfolder) and run the following command:pip install .If you want to also run the Aviary test suite (this is not strictly necessary), you can instead run:pip install .[test]If you also want to install all packages used for the Aviary testsandexternal subsystem examples, you can instead run:pip install .[all]DocumentationThe Aviary documentation is locatedhere.Otherwise you can build the docs locally:Install jupyter-book using instructions locatedhereGo to Aviary/aviary/docsRun the commandsh build_book.shfrom your command prompt of choiceNavigate to the built html:/Aviary/aviary/docs/\_build/html/intro.htmlVisualizationTo create XDSM visualizations of some of the Aviary code, you can run therun_all.pyutility script within theaviary/xdsmdirectory.
This is not strictly necessary but is used in some of the unit tests.
This requires installing Aviary with the[test]or[all]options as described above.ValidationThis code has been validated using output and data from the GASP and FLOPS codes themselves. The GASP-based weight calculations in this code include in their comments which versions of the GASP standalone weights module were used in validation. The aero and EOM subsystem validations were based on runs of the entire GASP and FLOPS code as they stood in the summer of 2021 and the summer of 2022 respectively.Quick testingThe repository installation can be tested using the commandtestflo .at the top-level Aviary folder. Assuming you have both SNOPT and IPOPT installed, the output should look something like this:OK

    Passed:  706
    Failed:  0
    Skipped: 3


    Ran 709 tests using 16 processes
    Wall clock time:   00:00:16.97Full testingIn addition to all of the quicker tests, we include multiple integration tests within Aviary.
These have also been known as "benchmarks".
Due to their length, these tests are not run when using the above command.
Instead, you can use therun_all_benchmarks.pyfile in theAviary/aviaryfolder, which is just a light wrapper around thetestflocall.
This will run all of the longer tests in parallel using all of your available CPU cores.Package versionsInformation on the versions of the packages required for Aviary can be found in the most recentGitHub Actions runs.
We have also provided a static version of theenvironment.ymlat the top level of the Aviary repo.Planned future featuresAviary is in active development.
We plan to expand its capabilities and have provided a non-exhaustivelist of future features.