Update home authored by Adrien Crovato's avatar Adrien Crovato
...@@ -16,23 +16,24 @@ python3 run.py path/to/case.py ...@@ -16,23 +16,24 @@ python3 run.py path/to/case.py
``` ```
## Use ## 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. 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: A typical model for computing flutter will look like:
```python ```python
from omflut import FlutterGroup from omflut import FlutterGroup
import openmdao.api as om import openmdao.api as om
class MyModel(om.Group): class MyModel(om.Group):
def setup(self): def setup(self):
g = GeometryBuilder(...) # optional
s = StructuralBuilder(...) s = StructuralBuilder(...)
a = AerodynamicBuilder(...) a = AerodynamicBuilder(...)
x = XferBuilder(s, a, ...) x = XferBuilder(s, a, ...)
f = FlutterBuilder(...) f = FlutterBuilder(...)
self.add_subsystem('flutter', FlutterGroup(struct=s, xfer=x, aero=a, flutter=f)) self.add_subsystem('flutter', FlutterGroup(struct=s, xfer=x, aero=a, flutter=f, geo=g))
``` ```
## Interfaced codes ## Interfaced codes
Structural solvers: Structural solvers:
- [TACS](https://github.com/acrovato/tacs) - [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) - OMFlut's fake structural solver (reads a modal solution from disk)
Aerodynamic solvers: Aerodynamic solvers:
... ...
......