Version 1.0
AeroElastic analysis using Dynamic Mode Interpolation
Methodology
aedmi computes the solution of the aeroelastic equation u/l * M * p^2 + K - 1/2*r*u^2 * Q(k) = 0
, where M
and K
are the modal mass and stiffness matrices of the structure, Q
is the modal aerodynamic loads matrix, u
and r
are the freestream fluid velocity and density, and l
is a reference length. p
is a non-dimensional parameter defined as p = (g+1i)*k
, where g
is the true damping and k is the reduced frequency.
The flutter solution is obtained using a kind of reduced order modeling technique called dynamic mode interpolation. This technique was originally developed by Hüseyin Güner during his doctoral thesis. Practically, the mode shapes of the structure are first pre-computed. Then, the aerodynamic loads at some reference Mach numbers and reduced frequencies are pre-computed by imposing the motion for each structural mode shape. Finally, aedmi will compute the modal load matrix Q
for each Mach number and reduced frequency, and solve the aeroelastic system by interpolating this matrix for any reduced frequency.
Dependencies
- python 3 with numpy and scipy
- [optional] VTK python bindings to read VTK formatted data
- [optional] matplotlib to save figures
Code architecture
The code is split into several submodules:
-
iops
: classes to read and write from/to disk -
msh
: simple mesh data structure -
flutter
: classes to perform flutter analysis -
utils
: various general utilities
The flutter
(core) submodule contains:
-
structural
: read mode shapes and structural matrices from disk -
aero
: read unsteady aerodynamic pressures from disk and compute reduced aerodynamic load matrix -
fluid
: compute fluid density and velocity from Mach number using a matched or unmatched strategy -
solution
: compute the flutter speed
Issues
Several issues are opened (#1, #2, #3), but none is critical.
Tests
Battery successfully passes on ubuntu 18.04, python 3.6 and on windows 10, python 3.8.