OMFlut
OMFlut is a framework built on top of OpenMDAO and is designed to perform flutter analysis and flutter-constrained optimization calculations. The package interfaces a structural solver, an aerodynamic solver, a transfer scheme and a flutter solution method.
Install and run
If you only want to use OMFlut, you can install it using
python3 -m pip install . [--user]
and then run a case using
python3 path/to/case.py
If you need to develop in OMFlut before using it, you do not need to install anything, and you can just run your case from the repo folder using
python3 run.py path/to/case.py
Use
OMFlut being built on top of OpenMDAO, any model must derive from an OpenMDAO group. The flutter calculation is carried out in the class FlutterGroup
, which is also OpenMDAO group. The class requires four underlying builders: structural, aerodynamic, transfer scheme and flutter computation. An optional geometry builder can also be provided. These builders must instantiate and initialize all the components required by each individual methodology. A template for building custom builders is provided with the code and examples of already existing builders can be found in their respective repository.
A typical model for computing flutter will look like:
from omflut import FlutterGroup
import openmdao.api as om
class MyModel(om.Group):
def setup(self):
g = GeometryBuilder(...) # optional
s = StructuralBuilder(...)
a = AerodynamicBuilder(...)
x = XferBuilder(s, a, ...)
f = FlutterBuilder(...)
self.add_subsystem('flutter', FlutterGroup(struct=s, xfer=x, aero=a, flutter=f, geo=g))
Interfaced codes
Structural solvers:
- TACS (structural solver, builder currently stored in this repo)
- OMFlut's fake structural solver (reads a modal solution from disk)
Aerodynamic solvers:
- SDPM (panel method)
Transfer schemes:
- OMFlut's RBF (interface to scipy RBF)
Flutter solutions:
- PyPK (collection of p-k methods)