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
+82-7Lines changed: 82 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,7 @@ a point when the aeroelastic system will be unstable. The classical pitch-plunge
19
19
20
20
The considered case has been presented in $$^1$$, the reader is encouraged to refer to that reference for further details on the problem.
21
21
22
-
The structual solver used in this example loosely couples SU2 with the commercial code Nastran, keeping the results of general interest. Indeed, linear strctures of arbitrary
22
+
The structual solver used in this example couples SU2 with the commercial code Nastran, keeping the results of general interest. Indeed, linear strctures of arbitrary
23
23
complexity can be analysed with the same workflow.
24
24
25
25
Summarizing, this document will cover:
@@ -29,11 +29,11 @@ Summarizing, this document will cover:
29
29
30
30
A sketch of the problem at hand is presented below:
You can find the resources for this tutorial in [this folder](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python) of the [Tutorials repository](https://github.com/su2code/Tutorials). There is a [matlab file](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python/FlatPlateModel.m) that can be used to produce validation data with Theodorsen theory and the [mesh file](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python/airfoil.su2).
36
+
You can find the resources for this tutorial in [this folder](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python) of the [Tutorials repository](https://github.com/su2code/Tutorials). There is a [matlab file](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python/Main_Compare.m) that can be used to produce validation data with Theodorsen theory and the [mesh file](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python/airfoil.su2).
37
37
38
38
In the [main directory](https://github.com/su2code/Tutorials/tree/master/multiphysics/unsteady_fsi_python), there are other 5 subdirectories containing the configuration files and structural models for the different Mach numbers. Please do not mix those files as the structural models and configurations are different at the different aerodynamic conditions.
39
39
@@ -50,7 +50,7 @@ Different Mach numbers will be considered, namely $$M=[0.1, 0.2, 0.3, 0.357, 0.3
50
50
51
51
The strctural 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
@@ -108,7 +108,7 @@ In this particular case, it may look excessively complicated, but it allows to s
108
108
The fluid domain is discretised with 133k nodes, with refining close to the airfoil surface, in order to correctly represent the turbulent boundary layer. The first cell
109
109
is placed at a height of $$y+\approx 1$$. A close up view of the mesh is pictured below:
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
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.
@@ -121,7 +121,9 @@ between the strctural and fluid meshes, RBF will be used. The limitation of this
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.
Substituting X with the appropriate number of cores.
337
339
338
-
Generate validation data running the matlab script. This will produce the required database containing the time history of angle of attack and vertical displacement.
340
+
You will see, after the ussual preprocessing steps, the following output:
341
+
342
+
```
343
+
**********************************
344
+
* Begin unsteady FSI computation *
345
+
**********************************
346
+
347
+
Setting FSI initial conditions
348
+
Checking f/s interface conservation...
349
+
Solid side (Wx, Wy, Wz) = (0.0, 0.0, 0.0)
350
+
Fluid side (Wx, Wy, Wz) = (0.0, 0.0, 0.0)
351
+
352
+
Performing static mesh deformation (ALE) of initial mesh...
353
+
354
+
355
+
FSI initial conditions are set
356
+
Beginning time integration
357
+
```
358
+
359
+
In these steps, an initial deformation is imposed, if required, and the mesh is deformed accordingly. Afterwords, the computation can start:
360
+
361
+
```
362
+
>>>> Time iteration 0 / FSI iteration 0 <<<<
363
+
Checking f/s interface conservation...
364
+
Solid side (Wx, Wy, Wz) = (0.0, 0.0, 0.0)
365
+
Fluid side (Wx, Wy, Wz) = (0.0, 0.0, 0.0)
366
+
367
+
Performing dynamic mesh deformation (ALE)...
368
+
369
+
CSysSolve::FGMRES(): system solved by initial guess.
370
+
371
+
Launching fluid solver for one single dual-time iteration...
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.
386
+
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
+
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.
390
+
391
+
```
392
+
Time Time Iteration FSI Iteration q1 qdot1 qddot1 q2 qdot2 qddot2
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.
402
+
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
+
405
+
Please note that those files are absolutely general. Thus, feel free to reuse them for other models.
406
+
407
+
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.
414
+
The time histories also match nicely.
340
415
341
416
### References
342
417
$$^1$$ Sanchez, R. (2018), A coupled adjoint method for optimal design in fluid-structure interaction problems with large displacements, _PhD thesis, Imperial College London_, DOI: [10.25560/58882](https://doi.org/10.25560/58882)
0 commit comments