|
|
|
# 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
|
|
|
|
```bash
|
|
|
|
python3 -m pip install . [--user]
|
|
|
|
```
|
|
|
|
and then run a case using
|
|
|
|
```bash
|
|
|
|
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
|
|
|
|
```bash
|
|
|
|
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. 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:
|
|
|
|
```python
|
|
|
|
from omflut import FlutterGroup
|
|
|
|
import openmdao.api as om
|
|
|
|
class MyModel(om.Group):
|
|
|
|
def setup(self):
|
|
|
|
s = StructuralBuilder(...)
|
|
|
|
a = AerodynamicBuilder(...)
|
|
|
|
x = XferBuilder(s, a, ...)
|
|
|
|
f = FlutterBuilder(...)
|
|
|
|
self.add_subsystem('flutter', FlutterGroup(struct=s, xfer=x, aero=a, flutter=f))
|
|
|
|
``` |
|
|
\ No newline at end of file |