# Difference between revisions of "Inline oscillating cylinder by Michael Alletto"

Jozsef Nagy (talk | contribs) |
|||

(12 intermediate revisions by 2 users not shown) | |||

Line 3: | Line 3: | ||

* '''affiliation''': WRD MS | * '''affiliation''': WRD MS | ||

* '''contact''': <mail address='michael.alletto@gmx.de' description='author'>click here for email address</mail> | * '''contact''': <mail address='michael.alletto@gmx.de' description='author'>click here for email address</mail> | ||

− | * '''OpenFOAM versions''': | + | * '''OpenFOAM versions''': v2112 |

* '''Published under''': CC BY-NC-ND license ([https://creativecommons.org/licenses creative commons licenses]) | * '''Published under''': CC BY-NC-ND license ([https://creativecommons.org/licenses creative commons licenses]) | ||

Line 10: | Line 10: | ||

Go back to [https://wiki.openfoam.com/Meshing Meshing]. | Go back to [https://wiki.openfoam.com/Meshing Meshing]. | ||

− | + | =[https://github.com/jnmlujnmlu/OpenFOAMTeaching/blob/master/MichaelAlletto Inline oscillating cylinder]= | |

− | |||

− | |||

− | =[https://github.com/jnmlujnmlu/OpenFOAMTeaching/blob/master/MichaelAlletto | ||

You can download the case file [https://github.com/jnmlujnmlu/OpenFOAMTeaching/blob/master/MichaelAlletto/OscillatingCylinderSend.tar.gz OscillatingCylinderSend.tar.gz] here. | You can download the case file [https://github.com/jnmlujnmlu/OpenFOAMTeaching/blob/master/MichaelAlletto/OscillatingCylinderSend.tar.gz OscillatingCylinderSend.tar.gz] here. | ||

Line 19: | Line 16: | ||

==Introduction== | ==Introduction== | ||

− | In this tutorial we will examine the inline oscillatory motion of a cylinder in a uniform | + | In this tutorial we will examine the inline oscillatory motion of a cylinder in a uniform flow. Inline means that the cylinder is oscillating parallel to the incoming flow. This kind of configuration is often used to validate solvers |

aiming to simulate large body motions (see e.g. [1, 4, 5]). The reason is that that despite its simplicity this configuration is associated with a variety of complex physical phenomena. | aiming to simulate large body motions (see e.g. [1, 4, 5]). The reason is that that despite its simplicity this configuration is associated with a variety of complex physical phenomena. | ||

Line 25: | Line 22: | ||

Another interesting phenomena is the increase of the lift coefficient C<sub>l</sub> when the cylinder is oscillating at 2f<sub>st</sub> [6]. For frequencies which are either lower or higher than 2f<sub>st</sub> C<sub>l</sub> is much lower [6]. [3] made simulations with an in line oscillating cylinder at a Reynolds number of Re = 175. For this Re number the ow around a fixed cylinder is two dimensional. For an oscillation frequency f<sub>c</sub> of 2f<sub>st</sub> and an amplitude of 65% of the cylinder diameter the frequency spectrum of the lift force increases considerably. For lower amplitudes of the oscillation only a few peaks are present in the frequency spectrum. | Another interesting phenomena is the increase of the lift coefficient C<sub>l</sub> when the cylinder is oscillating at 2f<sub>st</sub> [6]. For frequencies which are either lower or higher than 2f<sub>st</sub> C<sub>l</sub> is much lower [6]. [3] made simulations with an in line oscillating cylinder at a Reynolds number of Re = 175. For this Re number the ow around a fixed cylinder is two dimensional. For an oscillation frequency f<sub>c</sub> of 2f<sub>st</sub> and an amplitude of 65% of the cylinder diameter the frequency spectrum of the lift force increases considerably. For lower amplitudes of the oscillation only a few peaks are present in the frequency spectrum. | ||

− | In order to simulate this kind of | + | In order to simulate this kind of flow configurations, OpenFOAM offers two different approaches: the overset methodology and the morphing mesh method. The latter can be used if the cylinder motion is not too large to deteriorate the mesh quality. Regarding the overset method we have one or more meshes which displace relative to a background mesh. The coupling between the moving meshes and the background mesh is achieved via interpolation of the |

ow quantities. Regarding the morphing mesh, the connectivity between the cells remain unchanged.However the position of the points building a cell can move relative to each other. | ow quantities. Regarding the morphing mesh, the connectivity between the cells remain unchanged.However the position of the points building a cell can move relative to each other. | ||

Line 32: | Line 29: | ||

==Set up== | ==Set up== | ||

− | The | + | The figure below shows the setup of the simulation: At the inflow a uniform velocity of U<sub>inf</sub> = 1 m/s in x-direction is applied. The pressure is set to zero gradient at this boundary. At the top and bottom walls a slip boundary condition is applied. At the outlet the pressure is to be set equal to zero and for the velocity a zero gradient boundary condition is applied. The kinematic viscosity ν = 0.01 m^2/s is set in order that the Reynolds number Re = U<sub>inf</sub> D / ν based on the cylinder diameter D = 1 m is equal to Re = 100. For this Reynolds number the flow over a stationary cylinder is two dimensional. For this reason the flow is assumed to be two dimensional. This is imposed by using only one cell in span wise direction and setting both boundary conditions in this direction to the type empty. At the cylinder wall a no slip boundary condition is applied for the velocity and zero gradient for the pressure. The cylinder oscillates in x-direction with a prescribed sinosoidal motion: x<sub>c</sub> = A sin(2π f<sub>c</sub> t) = A sin (ω t). Four different frequencies are computed: f<sub>c</sub> = 0, 0.16, 0.33, 0.66 s^(-1). The amplitude is set to A = 0.14m. The purpose of this tutorial was to check whether the increase of the lift at f<sub>c</sub> = 2f<sub>st</sub> can be captured and if both techniques to simulate moving bodies deliver comparable results. |

− | + | [[File:Setup_alettoinline.png|450px|center|setup of the simulation]] | |

− | + | == Mesh generation == | |

− | + | The mesh used for the overset mesh simulation is shown in the figure below. We can see that it is formed by the mesh surrounding the cylinder and the background mesh. The mesh surrounding the cylinder is generated by simply stretching the circular form of the cylinder outward. The background mesh consist of a rectangular block mesh with different refinement zones. In the outer part of the rectangle where the gradients of the flow field are smaller, a coarser mesh is used. Closer to the region surrounding the cylinder the mesh is finer. Note that when generating an overset mesh, it has to be paid attention that the cells at the intersection of the moving and the background mesh should have roughly the same size to minimize the interpolation errors. | |

− | + | [[File:meshOverset2p_alettoinline.png|900px|center|mesh used for the overset method]] | |

− | + | The figure below shows the morphing mesh. It is generated using the utility blockMesh. Note that the dictionary for the generation of the mesh was taken from [https://curiosityfluids.com/2016/07/19/oscillating-cylinder-in-crossflow-pimpledymfoam/ here] and slightly modified in order to adept it to the present test case. It is evident that the constitution of the mesh is much more complex compared to the overset mesh. The number of cells of both meshes are similar: roughly 10 000 for the overset mesh and roughly 12 000 for the morphing mesh. | |

− | [[File: | + | [[File:meshMorphing2_alettoinline.png|900px|center|mesh used for the with the morphing mesh method]] |

− | + | == Simulation set up == | |

− | |||

+ | Since the procedure how to set up a overset mesh is described in other tutorials, here we will concentrate on the difference on how to describe the body motion between the overset mesh and the morphing mesh. | ||

+ | Regarding the overset mesh the solid body motion has to be prescribed in the constant/dynamicMeshDict: | ||

− | <TT>dynamicFvMesh dynamicOversetFvMesh; | + | <TT>motionSolverLibs ( "libfvMotionSolvers.so" ); |

+ | solver displacementLaplacian; | ||

+ | displacementLaplacianCoeffs | ||

+ | { | ||

+ | diffusivity uniform 1; | ||

+ | } | ||

+ | dynamicFvMesh dynamicOversetFvMesh; | ||

+ | dynamicOversetFvMeshCoeffs | ||

+ | { | ||

+ | // layerRelax 0.3; | ||

+ | } | ||

solver multiSolidBodyMotionSolver; | solver multiSolidBodyMotionSolver; | ||

multiSolidBodyMotionSolverCoeffs | multiSolidBodyMotionSolverCoeffs | ||

{ | { | ||

− | + | movingzone | |

+ | { | ||

+ | solidBodyMotionFunction oscillatingLinearMotion; | ||

+ | oscillatingLinearMotionCoeffs | ||

+ | { | ||

+ | amplitude ( -0.14 0 0); | ||

+ | omega 1.04; | ||

+ | } | ||

+ | } | ||

+ | } | ||

+ | </TT> | ||

+ | |||

+ | The type of motion and the mesh zone which has to perform this prescribed motion has to be specified. In our case the mesh zone named movingzone has to describe an oscillatory motion in x-direction with an amplitude of A = 0.14 m and a frequency of ω = 1.04 rad/s. | ||

+ | |||

+ | Regarding the morphing mesh, the displacement is described via the boundary condition of the field pointDisplacement: | ||

+ | |||

+ | <TT> | ||

+ | dimensions [0 1 0 0 0 0 0]; | ||

+ | internalField uniform (0 0 0); | ||

+ | boundaryField | ||

+ | { | ||

+ | topAndBottom | ||

{ | { | ||

− | + | type uniformFixedValue; | |

− | + | uniformValue (0 0 0); | |

− | |||

} | } | ||

+ | inlet | ||

+ | { | ||

+ | type uniformFixedValue; | ||

+ | uniformValue (0 0 0); | ||

+ | } | ||

+ | outlet | ||

+ | { | ||

+ | type uniformFixedValue; | ||

+ | uniformValue (0 0 0); | ||

+ | } | ||

+ | cylinder | ||

+ | { | ||

+ | type oscillatingDisplacement; | ||

+ | amplitude ( -0.14 0 0 ); | ||

+ | omega 1.04; | ||

+ | value uniform (0 0 0); | ||

+ | } | ||

+ | frontAndBack | ||

+ | { | ||

+ | type empty; | ||

+ | } | ||

+ | } | ||

+ | </TT> | ||

+ | |||

+ | We see that the in this case the displacement of the cylinder is imposed by specifying the type of motion the boundary patch named cylinder has to perform. All other boundary patches do not move and hence the value of the field pointDisplacement is set to uniform (0 0 0). | ||

+ | |||

+ | The method used to relax the cylinder movement towards the fixed outer boundary is specified in the constant/dynamicMeshDict: | ||

+ | |||

+ | <TT> | ||

+ | dynamicFvMesh dynamicMotionSolverFvMesh; | ||

+ | motionSolverLibs ( "libfvMotionSolvers.so" ); | ||

+ | solver displacementLaplacian; | ||

+ | displacementLaplacianCoeffs | ||

+ | { | ||

+ | diffusivity inverseDistance 1(cylinder); | ||

} | } | ||

</TT> | </TT> | ||

− | [[File: | + | == Results == |

+ | |||

+ | The table below shows the comparison between the present simulations and reference simulation and experiments for a fixed cylinder. The variables which are compared are the Strouhal number, the mean drag coefficient C<sub>d,mean</sub> and the maximum lift coefficient C<sub>l,max</sub>. The Strouhal number is computed by analyzing the signal of the lift (force in z-direction). Since the purpose of this tutorial is to evaluate the capability of OpenFOAM to simulate an oscillating cylinder, the first necessary step is to check the quality of the simulations for a fixed cylinder. It is evident that the agreement is reasonable. The results of the overset mesh and the mesh generated with blockMesh are very close. This means that the overset interpolation does not deteriorate the quality of the results for this case. The results shown are computed with a python script which analyzes the forces computed around the cylinder. Of course the python script is also provided within the downloadable files. | ||

+ | |||

+ | [[File:table1_alettoinline.png|500px|center|Comparison of the Strouhal number, the mean drag coefficient C<sub>d,mean</sub> and the maximum lift coefficient C<sub>l,max</sub> with experiments (exp) and other simulation (sim) ]] | ||

+ | |||

+ | The next table below shows the comparison of the mean drag coefficient C<sub>d,mean</sub> and the maximum lift coefficient C<sub>l,max</sub> with other simulation (sim) for different oscillation frequencies f<sub>c</sub>. For the present simulations also the Strouhal number computed with the frequency of the lift signal with the maximum power is shown. It can see seen that both mean drag coefficient C<sub>d,mean</sub> and the maximum lift coefficient C<sub>l,max</sub> have a maximum at a frequency twice the shedding frequency of a fixed cylinder f<sub>c</sub> = 2 f<sub>st</sub>. The difference between the morphing mesh and the overset mesh are marginal and the agreement with the reference simulations are reasonable. All simulation (the one of this tutorials and also the reference simulations) report an almost tripling of the lift coefficient with respect to the stationary cylinder (see table above). The Strouhal number computed with the frequency with the maximum power of the lift signal remains unchanged when the oscillation frequency f<sub>c</sub> is increased. | ||

− | + | [[File:table2_alettoinline.png|350px|center|Comparison of the mean drag coefficient C<sub>d,mean</sub> and the maximum lift coefficient C<sub>l,max</sub> with other simulation (sim) for different oscillation frequencies f<sub>c</sub>]] | |

− | + | The figure below shows the comparison of the temporal evolution of drag coefficient in the last 20 s of the simulation. It is evident that for increasing frequency f<sub>c</sub> the amplitude of the drag coefficient increases since the velocity at which the cylinder is displacing through the fluid increases. The results of the morphing mesh and the overset mesh are very close. | |

− | + | [[File:cdall_alettoinline.png|900px|center|comparison of the drag coeffcient of the morphing mesh (left) and overset mesh (right)]] | |

− | = | + | The figure below shows the comparison of the temporal evolution of lift coefficient. It is obvious that for a frequency of f<sub>c</sub> = 2 f<sub>st</sub> the amplitude of the lift coefficient is highest. Again the results of the morphing mesh and the overset mesh are very similar. |

− | + | [[File:clall_alettoinline.png|900px|center|comparison of the liftcoeffcient of the morphing mesh (left) and overset mesh (right)]] | |

− | + | The figure below shows the power spectrum of the lift for the four oscillation frequencies f<sub>c</sub> analyzed and both mesh types. The results of both mesh types are again very similar. The amount of peaks increase with increasing f<sub>c</sub>. | |

− | + | [[File:frall_alettoinline.png|900px|center|comparison of the power spectrum of lift for the morphing mesh (left) and the overset mesh (right)]] | |

− | + | A final remark should be made regarding the computational time. For the fixed cylinder and the case with a oscillation frequency f<sub>c</sub> = 0.16, the simulations with the morphing mesh are much faster. For increasing frequency however, the maximum Courant number Co<sub>max</sub> had to be decreased from 0.75 for f<sub>c</sub> = 0.16 to Co<sub>max</sub> = 0.5 for f<sub>c</sub> = 0.3 and Co<sub>max</sub> = 0.25 for f<sub>c</sub> = 0.66 for the morphing mesh. The purpose was to avoid nonphysical pressure peaks which occurred for higher Co<sub>max</sub>. For this reason the simulation time for the cases with the highest frequency was comparable between both mesh types. For the overset mesh the maximum Courant number Co<sub>max</sub> = 0.75 was the same for all frequencies. | |

==References== | ==References== |

## Latest revision as of 08:32, 12 January 2022

**contributor**: Michael Alletto**affiliation**: WRD MS**contact**: click here for email address**OpenFOAM versions**: v2112**Published under**: CC BY-NC-ND license (creative commons licenses)

Go back to Collection by authors.

Go back to Meshing.

## Contents

# Inline oscillating cylinder

You can download the case file OscillatingCylinderSend.tar.gz here.

## Introduction

In this tutorial we will examine the inline oscillatory motion of a cylinder in a uniform flow. Inline means that the cylinder is oscillating parallel to the incoming flow. This kind of configuration is often used to validate solvers aiming to simulate large body motions (see e.g. [1, 4, 5]). The reason is that that despite its simplicity this configuration is associated with a variety of complex physical phenomena.

One of this phenomena are frequency lock in: When the frequency of the oscillating cylinder is close to twice the shedding frequency of the stationary cylinder f_{st}, the frequency of the vortices shed became equal to the one of the cylinder. The amplitude of the cylinder motion which is required to maintain the lock in regime is increasing with departure from twice the shedding frequency of a fixed cylinder [2].

Another interesting phenomena is the increase of the lift coefficient C_{l} when the cylinder is oscillating at 2f_{st} [6]. For frequencies which are either lower or higher than 2f_{st} C_{l} is much lower [6]. [3] made simulations with an in line oscillating cylinder at a Reynolds number of Re = 175. For this Re number the ow around a fixed cylinder is two dimensional. For an oscillation frequency f_{c} of 2f_{st} and an amplitude of 65% of the cylinder diameter the frequency spectrum of the lift force increases considerably. For lower amplitudes of the oscillation only a few peaks are present in the frequency spectrum.
In order to simulate this kind of flow configurations, OpenFOAM offers two different approaches: the overset methodology and the morphing mesh method. The latter can be used if the cylinder motion is not too large to deteriorate the mesh quality. Regarding the overset method we have one or more meshes which displace relative to a background mesh. The coupling between the moving meshes and the background mesh is achieved via interpolation of the
ow quantities. Regarding the morphing mesh, the connectivity between the cells remain unchanged.However the position of the points building a cell can move relative to each other.

Since both methods described above can be used to simulate the flow of an inline oscillating cylinder, both methods can be compared against each other besides the validation against experiments and other simulations. The comparison of this two methods and the validation against experiments is the purpose of this tutorial.

## Set up

The figure below shows the setup of the simulation: At the inflow a uniform velocity of U_{inf} = 1 m/s in x-direction is applied. The pressure is set to zero gradient at this boundary. At the top and bottom walls a slip boundary condition is applied. At the outlet the pressure is to be set equal to zero and for the velocity a zero gradient boundary condition is applied. The kinematic viscosity ν = 0.01 m^2/s is set in order that the Reynolds number Re = U_{inf} D / ν based on the cylinder diameter D = 1 m is equal to Re = 100. For this Reynolds number the flow over a stationary cylinder is two dimensional. For this reason the flow is assumed to be two dimensional. This is imposed by using only one cell in span wise direction and setting both boundary conditions in this direction to the type empty. At the cylinder wall a no slip boundary condition is applied for the velocity and zero gradient for the pressure. The cylinder oscillates in x-direction with a prescribed sinosoidal motion: x_{c} = A sin(2π f_{c} t) = A sin (ω t). Four different frequencies are computed: f_{c} = 0, 0.16, 0.33, 0.66 s^(-1). The amplitude is set to A = 0.14m. The purpose of this tutorial was to check whether the increase of the lift at f_{c} = 2f_{st} can be captured and if both techniques to simulate moving bodies deliver comparable results.

## Mesh generation

The mesh used for the overset mesh simulation is shown in the figure below. We can see that it is formed by the mesh surrounding the cylinder and the background mesh. The mesh surrounding the cylinder is generated by simply stretching the circular form of the cylinder outward. The background mesh consist of a rectangular block mesh with different refinement zones. In the outer part of the rectangle where the gradients of the flow field are smaller, a coarser mesh is used. Closer to the region surrounding the cylinder the mesh is finer. Note that when generating an overset mesh, it has to be paid attention that the cells at the intersection of the moving and the background mesh should have roughly the same size to minimize the interpolation errors.

The figure below shows the morphing mesh. It is generated using the utility blockMesh. Note that the dictionary for the generation of the mesh was taken from here and slightly modified in order to adept it to the present test case. It is evident that the constitution of the mesh is much more complex compared to the overset mesh. The number of cells of both meshes are similar: roughly 10 000 for the overset mesh and roughly 12 000 for the morphing mesh.

## Simulation set up

Since the procedure how to set up a overset mesh is described in other tutorials, here we will concentrate on the difference on how to describe the body motion between the overset mesh and the morphing mesh.

Regarding the overset mesh the solid body motion has to be prescribed in the constant/dynamicMeshDict:

motionSolverLibs ( "libfvMotionSolvers.so" ); solver displacementLaplacian; displacementLaplacianCoeffs { diffusivity uniform 1; } dynamicFvMesh dynamicOversetFvMesh; dynamicOversetFvMeshCoeffs { // layerRelax 0.3; } solver multiSolidBodyMotionSolver; multiSolidBodyMotionSolverCoeffs { movingzone { solidBodyMotionFunction oscillatingLinearMotion; oscillatingLinearMotionCoeffs { amplitude ( -0.14 0 0); omega 1.04; } } }

The type of motion and the mesh zone which has to perform this prescribed motion has to be specified. In our case the mesh zone named movingzone has to describe an oscillatory motion in x-direction with an amplitude of A = 0.14 m and a frequency of ω = 1.04 rad/s.

Regarding the morphing mesh, the displacement is described via the boundary condition of the field pointDisplacement:

dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { topAndBottom { type uniformFixedValue; uniformValue (0 0 0); } inlet { type uniformFixedValue; uniformValue (0 0 0); } outlet { type uniformFixedValue; uniformValue (0 0 0); } cylinder { type oscillatingDisplacement; amplitude ( -0.14 0 0 ); omega 1.04; value uniform (0 0 0); } frontAndBack { type empty; } }

We see that the in this case the displacement of the cylinder is imposed by specifying the type of motion the boundary patch named cylinder has to perform. All other boundary patches do not move and hence the value of the field pointDisplacement is set to uniform (0 0 0).

The method used to relax the cylinder movement towards the fixed outer boundary is specified in the constant/dynamicMeshDict:

dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs ( "libfvMotionSolvers.so" ); solver displacementLaplacian; displacementLaplacianCoeffs { diffusivity inverseDistance 1(cylinder); }

## Results

The table below shows the comparison between the present simulations and reference simulation and experiments for a fixed cylinder. The variables which are compared are the Strouhal number, the mean drag coefficient C_{d,mean} and the maximum lift coefficient C_{l,max}. The Strouhal number is computed by analyzing the signal of the lift (force in z-direction). Since the purpose of this tutorial is to evaluate the capability of OpenFOAM to simulate an oscillating cylinder, the first necessary step is to check the quality of the simulations for a fixed cylinder. It is evident that the agreement is reasonable. The results of the overset mesh and the mesh generated with blockMesh are very close. This means that the overset interpolation does not deteriorate the quality of the results for this case. The results shown are computed with a python script which analyzes the forces computed around the cylinder. Of course the python script is also provided within the downloadable files.

The next table below shows the comparison of the mean drag coefficient C_{d,mean} and the maximum lift coefficient C_{l,max} with other simulation (sim) for different oscillation frequencies f_{c}. For the present simulations also the Strouhal number computed with the frequency of the lift signal with the maximum power is shown. It can see seen that both mean drag coefficient C_{d,mean} and the maximum lift coefficient C_{l,max} have a maximum at a frequency twice the shedding frequency of a fixed cylinder f_{c} = 2 f_{st}. The difference between the morphing mesh and the overset mesh are marginal and the agreement with the reference simulations are reasonable. All simulation (the one of this tutorials and also the reference simulations) report an almost tripling of the lift coefficient with respect to the stationary cylinder (see table above). The Strouhal number computed with the frequency with the maximum power of the lift signal remains unchanged when the oscillation frequency f_{c} is increased.

The figure below shows the comparison of the temporal evolution of drag coefficient in the last 20 s of the simulation. It is evident that for increasing frequency f_{c} the amplitude of the drag coefficient increases since the velocity at which the cylinder is displacing through the fluid increases. The results of the morphing mesh and the overset mesh are very close.

The figure below shows the comparison of the temporal evolution of lift coefficient. It is obvious that for a frequency of f_{c} = 2 f_{st} the amplitude of the lift coefficient is highest. Again the results of the morphing mesh and the overset mesh are very similar.

The figure below shows the power spectrum of the lift for the four oscillation frequencies f_{c} analyzed and both mesh types. The results of both mesh types are again very similar. The amount of peaks increase with increasing f_{c}.

A final remark should be made regarding the computational time. For the fixed cylinder and the case with a oscillation frequency f_{c} = 0.16, the simulations with the morphing mesh are much faster. For increasing frequency however, the maximum Courant number Co_{max} had to be decreased from 0.75 for f_{c} = 0.16 to Co_{max} = 0.5 for f_{c} = 0.3 and Co_{max} = 0.25 for f_{c} = 0.66 for the morphing mesh. The purpose was to avoid nonphysical pressure peaks which occurred for higher Co_{max}. For this reason the simulation time for the cases with the highest frequency was comparable between both mesh types. For the overset mesh the maximum Courant number Co_{max} = 0.75 was the same for all frequencies.

## References

[1] Dominic D Chandar, Bharathi Boppana, and Vasanth Kumar. A comparative study of different overset grid solvers between openfoam, star-ccm+ and ansys-fluent. In 2018 AIAA Aerospace Sciences Meeting, page 1564, 2018.

[2] Owen M Griffn and MS Hall. Vortex shedding lock-on and flow control in bluff body wakes. 1991.

[3] Justin S Leontini, David Lo Jacono, and Mark C Thompson. A numerical study of an inline oscillating cylinder in a free stream. Journal of Fluid Mechanics, 688:551-568, 2011.

[4] Chuan-Chieh Liao, Yu-Wei Chang, Chao-An Lin, and JM McDonough. Simulating flows with moving rigid boundary using immersed-boundary method. Computers & Fluids, 39(1):152-167, 2010. 11

[5] Shen-Wei Su, Ming-Chih Lai, and Chao-An Lin. An immersed boundary technique for simulating complex flows with rigid boundary. Computers & Fluids, 36(2):313-324, 2007.

[6] Y Tanida, A Okajima, and Y Watanabe. Stability of a circular cylinder oscillating in uniform ow or in a wake. Journal of Fluid Mechanics, 61(4):769-784, 1973.

[7] Charles HK Williamson. Vortex dynamics in the cylinder wake. Annual review of Fluid mechanics, 28(1):477-539, 1996.