https://github.com/krproject-tech/fsi_by_fem_and_uvlm
Fluid-Structure Interaction Analysis Using FEM and UVLM
https://github.com/krproject-tech/fsi_by_fem_and_uvlm
absolute-nodal-coordinate-formulation aerodynamics ancf fem finite-element-method fluid-simulation fluid-structure-interaction matlab vlm vortex-lattice
Last synced: 6 months ago
JSON representation
Fluid-Structure Interaction Analysis Using FEM and UVLM
- Host: GitHub
- URL: https://github.com/krproject-tech/fsi_by_fem_and_uvlm
- Owner: KRproject-tech
- License: mit
- Created: 2022-09-28T09:53:16.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-21T11:13:34.000Z (6 months ago)
- Last Synced: 2024-11-21T12:18:01.480Z (6 months ago)
- Topics: absolute-nodal-coordinate-formulation, aerodynamics, ancf, fem, finite-element-method, fluid-simulation, fluid-structure-interaction, matlab, vlm, vortex-lattice
- Language: MATLAB
- Homepage:
- Size: 29.3 MB
- Stars: 17
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

#FSI_by_FEM_and_UVLM

![]()
**Language**
![]()
__Strong-coupled Fluid-Structure Interaction Analysis (FSI) Using FEM and UVLM to analyze the flapping sheet under the post-flutter [^1][^2][^3]:
source code for Matlab (Windows): FSI analysis for the flapping sheet under the post-flutter (This code is validated with MATLAB R2007b or later versions)__## Overview
This is the numerical simulation code for a limit cycle oscillation of a rectangular sheet flapping in a three-dimensional flow.
Fluid flow is modeled using the unsteady vortex lattice method (UVLM) [^7]. A flexible sheet is modeled using the finite element method (FEM) with absolute nodal coordinate formulation (ANCF) for the shell element [^6]. This is done to reproduce the deformation of a plate while considering the spanwise deformation and geometrical nonlinearity. Robust FSI analysis under a large mass ratio is achieved by the strong coupling between the fluid solver and the structure solver by introducing the explicit added mass calculation.Strong coupled FSI can achieve more robust numerical analysis under large fluid density than a loose coupling scheme.
[](https://www.youtube.com/watch?v=heaMrV6I3RQ)
Numerical instability under large fluid density with a loose coupling scheme is caused by added mass term (artificial added mass instability [^5]).
To avoid this problem, the added mass term is included in the structure model [^1][^2][^3].
Artificial added mass instability

Proposed fast strong coupling scheme [^4]

Comparisons of energy of the sheet between loose coupling and strong coupling FSI analysis
## Publications
If you use this work in an academic context, please cite the following publication(s):
* Influence of the aspect ratio of the sheet for an electric generator utilizing the rotation of a flapping sheet, Mechanical Engineering Journal, Vol. 8, No. 1 (2021).
https://doi.org/10.1299/mej.20-00459````
@article{Akio YAMANO202120-00459,
title={Influence of the aspect ratio of the sheet for an electric generator utilizing the rotation of a flapping sheet},
author={Akio YAMANO and Hiroshi IJIMA and Atsuhiko SHINTANI and Chihiro NAKAGAWA and Tomohiro ITO},
journal={Mechanical Engineering Journal},
volume={8},
number={1},
pages={20-00459-20-00459},
year={2021},
doi={10.1299/mej.20-00459}
}
````* Flow-induced vibration and energy-harvesting performance analysis for parallelized two flutter-mills considering span-wise plate deformation with geometrical nonlinearity and three-dimensional flow, International Journal of Structural Stability and Dynamics, Vol. 22, No. 14, (2022).
https://doi.org/10.1142/S0219455422501632````
@article{doi:10.1142/S0219455422501632,
author = {Yamano, Akio and Chiba, Masakatsu},
title = {Flow-Induced Vibration and Energy-Harvesting Performance Analysis for Parallelized Two Flutter-Mills Considering Span-Wise Plate Deformation with Geometrical Nonlinearity and Three-Dimensional Flow},
journal = {International Journal of Structural Stability and Dynamics},
volume = {22},
number = {14},
pages = {2250163},
year = {2022},
doi = {10.1142/S0219455422501632}
}
````* Influence of boundary conditions on a flutter-mill, Journal of Sound and Vibration, Vol. 478, No. 21 (2020).
https://doi.org/10.1016/j.jsv.2020.115359````
@article{YAMANO2020115359,
title = {Influence of boundary conditions on a flutter-mill},
journal = {Journal of Sound and Vibration},
volume = {478},
pages = {115359},
year = {2020},
doi = {https://doi.org/10.1016/j.jsv.2020.115359},
author = {A. Yamano and A. Shintani and T. Ito and C. Nakagawa and H. Ijima}
}
````## Directory
├─double_sheets
│ ├─cores
│ │ ├─functions
│ │ │ ├─fluid
│ │ │ └─structure
│ │ └─solver
│ │ ├─fluid
│ │ └─structure
│ ├─save
│ │ └─fig
│ │ └─modes
│ └─ToolBoxes
└─single_sheet
├─functions
│ ├─fluid
│ └─structure
├─save
│ └─fig
│ └─modes
├─solver
│ ├─fluid
│ └─structure
└─ToolBoxes
## Preparation before analysis
__[Step 1] Install the ToolBoxes__The following ToolBoxes in “./XXXX/ToolBoxes/” ("XXXX" is "double_sheets" and "single_sheet") are required,
__For numerical analysis:__
* __“Meshing a plate using four noded elements”__ by KSSV:
https://jp.mathworks.com/matlabcentral/fileexchange/33731-meshing-a-plate-using-four-noded-elements* __“Sparse sub access”__ by Bruno Luong:
https://jp.mathworks.com/matlabcentral/fileexchange/23488-sparse-sub-access* __“Vectorized Multi-Dimensional Matrix Multiplication”__ by Darin Koblick:
https://jp.mathworks.com/matlabcentral/fileexchange/47092-vectorized-multi-dimensional-matrix-multiplication?s_tid=prof_contriblnk__For plotting results:__
* __“TriStream”__ by Matthew Wolinsky:
https://jp.mathworks.com/matlabcentral/fileexchange/11278-tristream* __“mmwrite”__ by Micah Richert:
https://jp.mathworks.com/matlabcentral/fileexchange/15881-mmwrite* __“Quiver 5”__ by Bertrand Dano:
https://jp.mathworks.com/matlabcentral/fileexchange/22351-quiver-5?s_tid=FX_rc3_behav__[Step 1.2] Add path to installed ToolBoxes__
Modify "add_pathes.m" to add path to abovementined installed ToolBoxes as follows,
````
addpath ./ToolBoxes/XX;
````
where `XX` is the name of folder of the installed ToolBox.__[Step 1.3] Modify the source code in the “TriStream” ToolBox__
"TriStream.m" must be modified to plot the stram line Line.
````
Line 49: x=x(:)'; y=y(:)'; x0=x0(:)'; y0=y0(:)'; u=u(:)'; v=v(:)';
````
→
````
x=x(:)'; y=y(:)'; x0=x0(:)'; y0=y0(:)'; u=double(u(:)'); v=double(v(:)');
````
and
````
line 63: TRI = tsearch(x,y,tri',Xbeg,Ybeg);
````
→
````
TRI = tsearchn([x.' y.'], tri',[Xbeg.' Ybeg.']);
````__[Step 2] Start GUI form__
Open the “GUI.fig” from MATLAB.

__[Step 2.1] Pre-setting__
Push the "Parameters" buttun and edit parameters.
__[Step 3] Start analysis__
Push the “exe” button and wait until the finish of the analysis.
__[Step 4] Plot results__
Push the “plot” button.
__[Step 5] View plotted results__Results (figures and movie) plotted by [Step 4] are in "./XXXX/save" directory.
## Parameters
Analytical condisions are in "./XXXX/save/param_setting.m"
````
%% Analytical conditions
End_Time = 20; %% Nondimensional analysis time [-]
d_t = 1.0e-3; %% Nondimensional step time [-]
core_num = 6; %% Core number [-]
speed_check = 0; %% 1:ON, 0:OFF [-]
alpha_v = 0.5; %% 1:implicit solver,0:explicit solver [-]Ma = 1.0; %% Mass ratio [-]
Ua = 15.0; %% Nondimensional flow velocity [-]
theta_a_vec = 0e-1*[ 0 10]; %% Nondimensional material damping [-]
````* __Mass ratio $M^*$__ is the density ratio of the fluid and sheet, which is defined by,
$$M^* := \dfrac{1}{\mu} = \dfrac{\rho_f L}{\rho_m h},$$
where $\rho_f$ and $\rho_m$ are the density of fluid and sheet, respectively. $L$ is the total length of sheet, and $h$ is the thickness of sheet.
* __Nondimensional flow velocity $U^*$__ represents the free-stream velocity nondimensionalized by the flag rigidity and inertia [^1][^2][^3],
$$U^* := \sqrt{ \dfrac{\mu}{\eta}} = \sqrt{ \dfrac{ \rho_m h L^2 H U^2_\infty }{ EI }}, $$where $H$ is the width, $E$ is the Young's modulus, and $I := Hh^3/12$ is second moment of area of the sheet, respectively.
Initial disturbances on two sheets to break the trivial equilibrium are written as,
````
q_in_norm = @( time)( 0.5*sin( pi*time/0.2).*( time < 0.2 ) ); %% Initial disturbance (upper sheet)
q_in_norm_1 = @( time)( 0.0*sin( pi*time/0.2).*( time < 0.2 ) ); %% Initial disturbance (lower sheet)
q_in_vec = [ 0 0 1].'; %% Force direction [-]
````Dimensions of sheets are defined by,
````
Length = 1.0; %% (Nondimensional) length [-]
Width = 1.0; %% aspect ratio [-]
Height = 2.0; %% distance between two sheets [-]
thick = 1e-3; %% thickness [-]````
where the aspect ratio `Width` is $H^* := H/L$, the nondimensional thickness `thick` is $h^* := h/L$, and the nondimensional distance between two sheets `Height` is $D^* := D/L$.
Boundary conditions for two sheets are written as,
* __Clamped at the leading-edge__
````
%% Boundary conditions for two sheets%%[0] Upper sheet
node_r_0 = [ 1:Ny+1 ]; %% Node number giving the displacement constraint [-]
node_dxr_0 = [ 1:Ny+1 ]; %% Node number giving x-directional gradient constraint [-]
node_dyr_0 = [ 1:Ny+1 ]; %% Node number giving y-directional gradient constraint [-]%%[1] Lower sheet
node_r_0_1 = [ 1:Ny+1 ]; %% Node number giving the displacement constraint [-]
node_dxr_0_1 = [ 1:Ny+1 ]; %% Node number giving x-directional gradient constraint [-]
node_dyr_0_1 = [ 1:Ny+1 ]; %% Node number giving y-directional gradient constraint [-]````
* __Pinned at the leading-edge__
````
%% Boundary conditions for two sheets%%[0] Upper sheet
node_r_0 = [ 1:Ny+1 ]; %% Node number giving the displacement constraint [-]
node_dxr_0 = [ ]; %% Node number giving x-directional gradient constraint [-]
node_dyr_0 = [ 1:Ny+1 ]; %% Node number giving y-directional gradient constraint [-]%%[1] Lower sheet
node_r_0_1 = [ 1:Ny+1 ]; %% Node number giving the displacement constraint [-]
node_dxr_0_1 = [ ]; %% Node number giving x-directional gradient constraint [-]
node_dyr_0_1 = [ 1:Ny+1 ]; %% Node number giving y-directional gradient constraint [-]````
where index in vector shows the node index around a plate element to apply boundary conditions.
(b) Shell elements on a plate. A flexible sheet is partitioned by shell elements when the number of elements is $N_{elem} := N_x N_y$ [^2].## Gallery

__Streamlines around flapping sheets (not streaklines)__
__Flow velocity distributions__
__Wake behind sheets__
__Snapshot of two flapping sheets__
__Comparisons of snapshot of a flapping sheet under various $U^*$ between numerical results (above) [^3] and experimental results (below) [^8]__## Demonstration movie
[](https://youtu.be/9FOBByPBSeA)
## Stargazers over time
[](https://starchart.cc/KRproject-tech/FSI_by_FEM_and_UVLM)## License
MIT License
## Contributing
Issue reports and pull requests are highly welcomed.
### References
[^1]: Influence of the aspect ratio of the sheet for an electric generator utilizing the rotation of a flapping sheet, Mechanical Engineering Journal, Vol. 8, No. 1 (2021).
[OA: https://doi.org/10.1299/mej.20-00459][^2]: Flow-induced vibration and energy-harvesting performance analysis for parallelized two flutter-mills considering span-wise plate deformation with geometrical nonlinearity and three-dimensional flow, International Journal of Structural Stability and Dynamics, Vol. 22, No. 14, (2022).
[https://doi.org/10.1142/S0219455422501632][^3]: Influence of boundary conditions on a flutter-mill, Journal of Sound and Vibration, Vol. 478, No. 21 (2020).
[https://doi.org/10.1016/j.jsv.2020.115359][^4]: Fast and Robust Staggered Approach for Fluid-Structure Interaction Simulation in a Thin Flapping Plate, The 12th International Conference on Computational Fluid Dynamics (ICCFD12), Kobe city (Kobe International Conference Center), Japan, July 2024.
[https://confit.atlas.jp/guide/event/iccfd12/session/31002-04/tables][^5]: C. Förster, W. A. Wall, E. Ramm, Artificial added mass instabilities in sequential staggered coupling of nonlinear structures and incompressible viscous flows, Computer Methods in Applied Mechanics and Engineering, Vol. 196, No. 7, 2007.
[^6]: A. Shabana, Computational Continuum Mechanics, Chap. 6 (Cambridge University Press, 2008), pp. 231–285.
[^7]: J. Katz and A. Plotkin, Low-Speed Aerodynamics, (Cambridge University Press, New York, 2001).
[^8]: M. Chen, L. Jia, Y. Wu, X. Yin, Y. Ma, Bifurcation and chaos of a flag in an inviscid flow, J. Fluid Struct. 45 (2014b) 124-137.