Expected User Knowledge#

This section details the recommend user knowledge to use Aviary for different purposes. We’ll reference the three user interface levels throughout.

A graphical summary of the info presented below is shown in the figure.

Aviary user knowledge

Required programming skills#

The goal of Aviary is to make aircraft design and optimization accessible to a wide range of users while providing a flexible and powerful platform for advanced users.

This means that the simple user interface at level 1 does not strictly require any programming knowledge. Users can interact with Aviary through input files and the command line, viewing the results in a web browser.

At level 2, users are expected to have a basic understanding of Python and object-oriented programming. Aircraft and mission definition occurs in Python scripts, and users can add their own external subsystems to the Aviary platform. Knowledge of OpenMDAO is not required at this level, but it is helpful to understand how the Aviary tool is built on top of OpenMDAO.

Level 3 is the most advanced level, and users are expected to have a strong understanding of Python and object-oriented programming. Users have complete control over the Aviary model and how the methods are called.

Familiarity with dependencies#

As users dig deeper into the Aviary code, they will encounter the various dependencies that Aviary relies on. The most important of these is OpenMDAO, which is the optimization framework that Aviary is built on top of. In addition to its basic user guide, users are encouraged to learn more about the following topics in the OpenMDAO Advanced User Guide:

Aviary also relies on Dymos for its trajectory optimization capabilities. Users are recommended to read through the following sections:

Again, at levels 1 and 2 an understanding of these dependencies is not strictly required. More knowledge about OpenMDAO and Dymos when using some portions of level 2 will be helpful. For example, knowing how to scale variables in OpenMDAO or choosing a reasonable number of nodes in Dymos will be helpful when using the Aviary level 2 interface.

At level 3, users are expected to have a strong understanding of OpenMDAO and Dymos because they are working directly with these tools. Starting with no knowledge of OpenMDAO or Dymos is not recommended at this level.

Starting out with the fantastic OpenMDAO docs and looking at some examples there is the best way to learn OpenMDAO. The Dymos docs and examples are also useful to examine if you’re digging more into the trajectory optimization side of Aviary.