Skip to content

Commit 0bd84ef

Browse files
authored
Typos
1 parent ad963fa commit 0bd84ef

File tree

1 file changed

+28
-28
lines changed

1 file changed

+28
-28
lines changed

_tutorials/multiphysics/Unsteady_FSI_Python/Dynamic_FSI_Python.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ follows: Static_FSI
1313
---
1414
### Goals
1515

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,
1717
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
1818
a point when the aeroelastic system will be unstable. The classical pitch-plunge flutter will then be visible.
1919

@@ -24,7 +24,7 @@ complexity can be analysed with the same workflow.
2424

2525
Summarizing, this document will cover:
2626
- 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
2828
- Important keywords for the fsi and solid solver config files
2929

3030
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
4848

4949
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.
5050

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.
5252
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
5353
analytically and read:
5454

@@ -69,9 +69,9 @@ In this context $$\Csi=0.25$$, $$r_{\alpha}=0.5$$, $$\bar{\omega}=0.3185$$ and $
6969
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
7070
varied accordingly.
7171

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.
7373

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.
7575
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
7676
integrate a set of ODEs for the modes of the structure.
7777

@@ -84,7 +84,7 @@ DISPLACEMENT(PRINT,PUNCH)=ALL
8484
A real egeinvalue analysis will then be performed.
8585
This will produce, in the f06 file, an equivalent, ordered, model that will
8686
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,
8888
are stored.
8989

9090
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
110110

111111
![CFD_Mesh](../../tutorials_files/multiphysics/unsteady_fsi_python/images/CFD_Mesh.png)
112112

113-
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.
115115
The master node only has two degrees of freedom: pitch and plunge.
116116

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.
118118

119119
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
121121
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
122122
FEM mesh for Nastran as shown below:
123123

124124
![FEM_Mesh](../../tutorials_files/multiphysics/unsteady_fsi_python/images/nastran_model.png)
125125

126-
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.
127127

128128
#### Configuration File for the fluid zone
129129

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
132132
solver, it will only see the points on the aerodynamic mesh changing positions.
133133

134134
For this reason, the solver keyword is set as:
@@ -165,10 +165,10 @@ TIME_DOMAIN = YES
165165
TIME_STEP= 1e-3
166166
```
167167

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.
170170

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
172172
residuals are already quite low. For this reason we will use:
173173

174174
```
@@ -186,15 +186,15 @@ The solver can work in two ways:
186186
1) It can impose the movement of a mode, with prescribed law, to provide forced
187187
response analysis
188188

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
190190
structural deformations when the body is surrounded by the flow
191191

192192
Available keyword for the config file:
193193

194194
NMODES (int): number of modes to use in the analysis. If n modes are available in
195195
the punch file, but only the first m<n are required, set this to m
196196

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
198198

199199
RESTART_ITER (int): if restart is used, this specifies the iteration to restart
200200

@@ -217,7 +217,7 @@ PUNCH_FILE (string): path to the pch file
217217
RESTART_SOL (string): YES or NO
218218

219219
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"
221221

222222
IMPOSED_VEL (string): analytical differentiation of above
223223

@@ -245,7 +245,7 @@ RHO = 0.5
245245
INITIAL_MODES = {0:-0.1061,1:-0.1657}
246246
```
247247

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.
249249

250250
#### Configuration File for the interface
251251

@@ -277,13 +277,13 @@ UNST_TIME (float): Physical simulation time for unsteady problems
277277
FSI_TOLERANCE (float): Tolerance for inner loop convergence between fluid and structure. This is the maximum average structural displacements, between two inner iterations,
278278
that can be accepted
279279

280-
CFD_CONFIG_FILE_NAME (string): Path of fluid cfg file
280+
CFD_CONFIG_FILE_NAME (string): Path to the fluid cfg file
281281

282282
CSD_SOLVER (string): Behaviour of the structural solver to be used. AEROELASTIC if
283283
the structural equation of motions must be solved, IMPOSED if
284284
a movement of the structure is imposed
285285

286-
CSD_CONFIG_FILE_NAME (string): Path to solid cfg file
286+
CSD_CONFIG_FILE_NAME (string): Path to the solid cfg file
287287

288288
RESTART_SOL (string): YES or NO
289289

@@ -337,7 +337,7 @@ $ mpirun -np X python3 /your/path/to/fsi_computation.py --parallel -f fsi.cfg
337337

338338
Substituting X with the appropriate number of cores.
339339

340-
You will see, after the ussual preprocessing steps, the following output:
340+
You will see, after the usual preprocessing steps, the following output:
341341

342342
```
343343
**********************************
@@ -356,7 +356,7 @@ FSI initial conditions are set
356356
Beginning time integration
357357
```
358358

359-
In these steps, an initial deformation is imposed, if required, and the mesh is deformed accordingly. Afterwords, the computation can start:
359+
In these steps, an initial deformation is imposed, if required, and the mesh is deformed accordingly. Afterwards, the computation can start:
360360

361361
```
362362
>>>> Time iteration 0 / FSI iteration 0 <<<<
@@ -382,11 +382,11 @@ Launching fluid solver for one single dual-time iteration...
382382
| 0| 7| 1.732970| -3.321408| -3.551232| -0.778728|
383383
```
384384

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 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.
386386

387387
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.
388388

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.
390390

391391
```
392392
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
398398
0.104 104 1 -0.1493 0.2931 56.9690 -0.2265 3.0535 592.1878
399399
0.105 105 1 -0.1490 0.3493 55.3371 -0.2232 3.6407 582.3177
400400
```
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.
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.
402402

403403
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.
404404

@@ -410,7 +410,7 @@ At the end of the matlab run, you will see outputs as the ones reported below.
410410
![H_Ma01](../../tutorials_files/multiphysics/unsteady_fsi_python/images/h_Ma=0.1.png)
411411
![Alpha_Ma01](../../tutorials_files/multiphysics/unsteady_fsi_python/images/alpha_Ma=0.1.png)
412412

413-
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.
414414
The time histories also match nicely.
415415

416416
### References

0 commit comments

Comments
 (0)