Update home authored by Adrien Crovato's avatar Adrien Crovato
# 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))
```
## Interfaced codes
Structural solvers:
- [TACS](https://github.com/acrovato/tacs)
- OMFlut's fake structural solver (reads a modal solution from disk)
Aerodynamic solvers:
- [SDPM](https://gitlab.uliege.be/am-dept/sdpm) (panel method)
Transfer schemes:
- OMFlut's RBF (interface to scipy RBF)
Flutter solutions:
# 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. 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:
```python
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](https://github.com/smdogroup/tacs) (structural solver, builder currently stored in this repo)
- OMFlut's fake structural solver (reads a modal solution from disk)
Aerodynamic solvers:
- [SDPM](https://gitlab.uliege.be/am-dept/sdpm) (panel method)
Transfer schemes:
- OMFlut's RBF (interface to scipy RBF)
Flutter solutions:
- [PyPK](https://gitlab.uliege.be/am-dept/pypk) (collection of p-k methods)
\ No newline at end of file