pyLAVA Description
pyLAVA is the Python interface to the LAVA Curvilinear solver, designed to streamline aerodynamic analysis and design optimization workflows. It provides a high-level API for interacting with the solver's dynamic library and managing simulation tasks.
The pylava package currently includes the following core classes:
- LAVA: Interfaces directly with the LAVA-curvilinear dynamic library. This class supports preprocessing, flow solving, mesh warping, and solution I/O.
- optLAVA: Wraps the LAVA class to enable aerodynamic design optimization. It integrates with pyGeo for geometry parameterization and pyOptSparse for optimization.
pyLAVA is required for running optimizations using either the optLAVA class or the OpenMDAO framework. When using OpenMDAO, the MPhys package is also required to manage multidisciplinary models.
Beyond optimization, pyLAVA can be used for standalone aerodynamic analysis, including flow solves, adjoint solves, and mesh manipulation.
Design Optimization
Design optimization is performed through Python to enable modular, scriptable workflows that integrate seamlessly with external packages. This modularity allows users to define geometry, configure solvers, and manage optimization problems in a flexible and reproducible manner.
The user may choose to perform design optimizations through the optLAVA class or through OpenMDAO. The optLAVA class has strict requirements on the python packages required for running an optimization case, discussed in the section pyLAVA Setup and Requirements. Optimizations through OpenMDAO do not rely on the optLAVA class, and instead rely only on the LAVA class (i.e. the direct python interface for the LAVA Curvilinear solver). OpenMDAO is much more modular and allows you to bring your own geometry engine and external disciplines to the game.