You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _tutorials/multiphysics/Unsteady_FSI_Python/Dynamic_FSI_Python.md
+28-28Lines changed: 28 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ follows: Static_FSI
13
13
---
14
14
### Goals
15
15
16
-
This tutorial shows how to exploit the capabilities of the Python wrapper to couple SU2 with an external strutural solver. The problem at hand consist in a NACA 0012 airfoil,
16
+
This tutorial shows how to exploit the capabilities of the Python wrapper to couple SU2 with an external structural solver. The problem at hand consists in a NACA 0012 airfoil,
17
17
free to pitch and plunge, with given stiffnesses, immersed in a flow with varying Mach number. The two frequencies of the modes of the structure will vary as the speed is increased, reaching
18
18
a point when the aeroelastic system will be unstable. The classical pitch-plunge flutter will then be visible.
19
19
@@ -24,7 +24,7 @@ complexity can be analysed with the same workflow.
24
24
25
25
Summarizing, this document will cover:
26
26
- Preparing a FSI analysis to be used with the python wrapper
27
-
- Using the strctural solver for Nastran models with SU2
27
+
- Using the structural solver for Nastran models with SU2
28
28
- Important keywords for the fsi and solid solver config files
29
29
30
30
A sketch of the problem at hand is presented below:
@@ -48,7 +48,7 @@ scheme is used for the gradients. The turbulence model is the SST and a CFL numb
48
48
49
49
Different Mach numbers will be considered, namely $$M=[0.1, 0.2, 0.3, 0.357, 0.364]$$. The Reynolds number is fixed at 4 millions, and the temperature is equal to 273K.
50
50
51
-
The strctural model is made by a single point, positioned at the rotation axis, with two degrees of freedom, pitch and plunge.
51
+
The structural model is made by a single point, positioned at the rotation axis, with two degrees of freedom, pitch and plunge.
52
52
Inertia and mass of the airfoil are concentrated at the center of mass of the profile, at a certain distance from the rotation axis. The equations of motions are available
53
53
analytically and read:
54
54
@@ -69,9 +69,9 @@ In this context $$\Csi=0.25$$, $$r_{\alpha}=0.5$$, $$\bar{\omega}=0.3185$$ and $
69
69
Note that, as we will vary the Mach number, the density will also change accordingly. Thus, with given nondimensional parameters, the inertias and stiffnesses must be
70
70
varied accordingly.
71
71
72
-
No strunctural damping is included and a time step of 1ms is used.
72
+
No structural damping is included and a time step of 1ms is used.
73
73
74
-
The structural solver, instead of integrating the equations of motions for this point, which are available analytically, is intended to solve a general strctural problem.
74
+
The structural solver, instead of integrating the equations of motions for this point, which are available analytically, is intended to solve a general structural problem.
75
75
For this reason, a preprocessing step in Nastran will be performed, computing the mode shapes and modal frequencies of the model. Then, the structural solver will
76
76
integrate a set of ODEs for the modes of the structure.
77
77
@@ -84,7 +84,7 @@ DISPLACEMENT(PRINT,PUNCH)=ALL
84
84
A real egeinvalue analysis will then be performed.
85
85
This will produce, in the f06 file, an equivalent, ordered, model that will
86
86
eventually be read by the python script to create the interface. Further, it will
87
-
be created a punch file where all the mode shapes, together with their stiffness,
87
+
be created a punch file where all the mode shapes, together with modal stiffnesses,
88
88
are stored.
89
89
90
90
IMPORTANT: The modes should be normalised to unit mass.
@@ -110,25 +110,25 @@ is placed at a height of $$y+\approx 1$$. A close up view of the mesh is picture
As far as the strctural mesh is concerned, this is a finite element mesh prepared for the commercial code Nastram. In the context of this example, as only a 2D problem, with
114
-
only two degrees of freedom, is considered, the mesh is extremely simple; a set of rigid elements that connect all the nodes to the master node, positioned on the rotation axis.
113
+
As far as the structural mesh is concerned, this is a finite element mesh prepared for the commercial code Nastran. In the context of this example, as only a 2D problem, with
114
+
only two degrees of freedom, is considered, the mesh is extremely simple; a set of rigid elements that connect several slave nodes to the only master node, positioned on the rotation axis.
115
115
The master node only has two degrees of freedom: pitch and plunge.
116
116
117
-
Another slave node is added, in the position of the center of mass, that will house the mass and inertia of the airfoil.
117
+
One of the slave nodes, at the position of the center of mass, houses the mass and inertia of the airfoil.
118
118
119
119
It should always be recalled that, if interpolation is needed
120
-
between the strctural and fluid meshes, RBF will be used. The limitation of this linear interpolation is due to the fact that, if a 2D problem is concerned, the strctural points
120
+
between the structural and fluid meshes, RBF will be used. The limitation of this linear interpolation is due to the fact that, if a 2D problem is concerned, the structural points
121
121
cannot all lie on the same line. Equivalently, if a 3D problem is tackled, the points cannot lie all in the same plane. For this reason, the thickness is represented in the
As you can see, then exact profile is not required. The interpolation will take care of displacing correctly the fluid mesh. However, thickness must somehow be represented.
126
+
As you can see, the exact profile is not required. The interpolation will take care of displacing correctly the fluid mesh. However, thickness must somehow be represented.
127
127
128
128
#### Configuration File for the fluid zone
129
129
130
-
First of all, the users should know that three configuarions file are required for this case: one for the fluid zone, one for the solid zone and one for the interface.
131
-
The configuration file for the fluid zone is very similar to a configuration file for a simple single zone simulation. Indeed, SU2 does not know about the external strctural
130
+
First of all, the users should know that three configuration files are required for this case: one for the fluid zone, one for the solid zone and one for the interface.
131
+
The configuration file for the fluid zone is very similar to a configuration file for a simple single zone simulation. Indeed, SU2 does not know about the external structural
132
132
solver, it will only see the points on the aerodynamic mesh changing positions.
133
133
134
134
For this reason, the solver keyword is set as:
@@ -165,10 +165,10 @@ TIME_DOMAIN = YES
165
165
TIME_STEP= 1e-3
166
166
```
167
167
168
-
It is important to set an appropriate convergence criteria for the fluid zone. Indeed, while the structural part is linear and requires no interations, it is important that
169
-
the fluid zone correcly converges for accurate results.
168
+
It is important to set an appropriate convergence criteria for the fluid zone. Indeed, while the structural part is linear and requires no iterations, it is important that
169
+
the fluid zone correctly converges for accurate results.
170
170
171
-
The relative residual cannot be used as this is reset at each inner iteration. Thus, aver the first inner loop, it would be difficult to obtain convergence as the absolute
171
+
The relative residual cannot be used as this is reset at each inner iteration. Thus, after the first inner loop, it would be difficult to obtain convergence as the absolute
172
172
residuals are already quite low. For this reason we will use:
173
173
174
174
```
@@ -186,15 +186,15 @@ The solver can work in two ways:
186
186
1) It can impose the movement of a mode, with prescribed law, to provide forced
187
187
response analysis
188
188
189
-
2) It can integrate in time the modal equation of motions to study the linearised
189
+
2) It can integrate in time the modal equations of motion to study the linearised
190
190
structural deformations when the body is surrounded by the flow
191
191
192
192
Available keyword for the config file:
193
193
194
194
NMODES (int): number of modes to use in the analysis. If n modes are available in
195
195
the punch file, but only the first m<n are required, set this to m
196
196
197
-
IMPOSED_MODE (int): mode with an imposed motion
197
+
IMPOSED_MODE (int): mode with an imposed motion. The first index, consistent with Python syntax, is 0
198
198
199
199
RESTART_ITER (int): if restart is used, this specifies the iteration to restart
200
200
@@ -217,7 +217,7 @@ PUNCH_FILE (string): path to the pch file
217
217
RESTART_SOL (string): YES or NO
218
218
219
219
IMPOSED_DISP (string): string containing the function for the displacement. Example
220
-
is sine(2*pi*time)+10
220
+
is "sine(2*pi*time)+10"
221
221
222
222
IMPOSED_VEL (string): analytical differentiation of above
223
223
@@ -245,7 +245,7 @@ RHO = 0.5
245
245
INITIAL_MODES = {0:-0.1061,1:-0.1657}
246
246
```
247
247
248
-
The modes are coupled, thus appropriate initial conditions for both can be obtained from the mode amplitude at the master node.
248
+
The modes are coupled. Thus, appropriate initial conditions, to obtain 5 degrees of pitch and no plunge, must be obtained from the mode amplitudes at the master node.
249
249
250
250
#### Configuration File for the interface
251
251
@@ -277,13 +277,13 @@ UNST_TIME (float): Physical simulation time for unsteady problems
277
277
FSI_TOLERANCE (float): Tolerance for inner loop convergence between fluid and structure. This is the maximum average structural displacements, between two inner iterations,
278
278
that can be accepted
279
279
280
-
CFD_CONFIG_FILE_NAME (string): Path of fluid cfg file
280
+
CFD_CONFIG_FILE_NAME (string): Path to the fluid cfg file
281
281
282
282
CSD_SOLVER (string): Behaviour of the structural solver to be used. AEROELASTIC if
283
283
the structural equation of motions must be solved, IMPOSED if
284
284
a movement of the structure is imposed
285
285
286
-
CSD_CONFIG_FILE_NAME (string): Path to solid cfg file
286
+
CSD_CONFIG_FILE_NAME (string): Path to the solid cfg file
This is the typical output that you will see. There was no initial deformation imposed and for this reason you can see that the mesh deformation system was solved by the initial guess. FSI iteration is the inner iteration index, and it will keep inccreasing untile the inner convergence if found. Then, this index will be set to zero and the time iteration will be increased.
385
+
This is the typical output that you will see. There was no initial deformation imposed and for this reason you can see that the mesh deformation system was solved by the initial guess. FSI iteration is the inner iteration index, and it will keep increasing until the inner convergence is found. Then, this index will be set to zero and the time iteration will be increased.
386
386
387
387
Please do not confuse Inner_Iter with FSI iteration. The former is the iteration, in the fluid zone only, using the pseudo time; the latter is the iteration index between fluid and structure.
388
388
389
-
After all the computations are completed (i.e. for all the Mach numbers), in each case folder yuo will see a file called StructHistoryModal.dat. The first rows of this file, for Mach number 0.1, are reported below.
389
+
After all the computations are completed (i.e. for all the Mach numbers), in each case folder you will see a file called StructHistoryModal.dat. The first rows of this file, for Mach number 0.1, are reported below.
390
390
391
391
```
392
392
Time Time Iteration FSI Iteration q1 qdot1 qddot1 q2 qdot2 qddot2
@@ -398,7 +398,7 @@ Time Time Iteration FSI Iteration q1 qdot1 qddot1 q2 qdo
The first column contains the physical time (please note that we started the fluid-structure coupling after 99 time iterations), the second one contains the time iteration, the third one the number of FSI iterations required for convergence, then we have the time histories of the modes.
401
+
The first column contains the physical time (please note that we started the fluid-structure coupling after 99 time iterations), the second one contains the time iteration, the third one the number of FSI iterations required for convergence, then we have the time histories of the modes and their derivatives.
402
402
403
403
For many applications this may be already the desired output. However, in this case, we actually want the physical rotation and displacement of the point at the rotation axis. A post processing step must be performed to multiply the mode shapes for their amplitude. This can be done with the provided matlab file. You only need to run the Main_compare.m file and it will take care of all the required operations.
404
404
@@ -410,7 +410,7 @@ At the end of the matlab run, you will see outputs as the ones reported below.
You can see how the frquency merging is nicely captured; after the flutter point the two frequencies are coincident and nonlinear effects are presents. Thus, comparing the Theodorsen theory and SU2 is not fully meaningful.
413
+
You can see how the frequency merging is well captured; after the flutter point the two frequencies are coincident and nonlinear effects are present. Thus, comparing the Theodorsen theory and SU2 is not fully meaningful.
0 commit comments