The software packages listed below are all distributed under open source licenses. These are research codes, so they require a strong background in programming and some persistence to get them to work. Unfortunately we are not able to provide support except for collaborators and sponsors. However, we strive to provide as much documentation as we can and continually work towards improving the usability.

Webfoil: This is an online tool for airfoil analysis and optimization. It also includes a vast database of airfoils. [Webfoil site] [Paper]
ADflow: (pronounced "A-D-flow") CFD solver that can handle structured multi-block and overset meshes. It includes an adjoint solver for computing derivatives and can be used in the MACH-Aero framework for aerodynamic shape optimization. [Code] [Documentation] [Paper]
DAFOAM: (pronounced "dahfoam") Is a suite of adjoint solvers for OpenFOAM that enable the computation of derivatives for aerodynamic shape optimization. [Code] [Documentation] [Paper]
MACH-Aero: A framework for aerodynamic design optimization that couples a CFD solver (e.g. ADflow or OpenFOAM), geometry parametrization (e.g. pyGeo), mesh deformation (e.g., IDWarp), and optimizer interface (pyOptSparse). [Code] [Documentation and Tutorials]
OpenAeroStruct: A lightweight aerostructural optimization code that can optimize a wing design in minutes on a laptop. [Code] [Documentation]
OpenMDAO: A framework for coupling multiple numerical models and performing multidisciplinary analysis and optimization. OpenMDAO is developed by NASA and uses numerical techniques developed in the MDO Lab. [OpenMDAO in a nutshell] [OpenMDAO site] [Paper]
pyOptSparse: A common Python interface to various optimization packages. pyOptSparse includes OptView, a visualization tool to explore the optimization history. [Code] [Documentation]
TACS: A general purpose structural finite-element code with adjoint derivatives that is developed by Prof. Graeme Kennedy. [Code] [Paper]
SMT: The surrogate modeling toolbox (SMT) is an open-source Python package consisting of libraries of surrogate modeling methods (e.g., radial basis functions, kriging), sampling methods, and benchmarking problems. SMT is designed to make it easy for developers to implement new surrogate models in a well-tested and well-document platform, and for users to have a library of surrogate modeling methods with which to use and compare methods. [Code] [Paper]