In this repository we attempt to control the flow around three cylinders placed as fluidic pinball setup [Pastur et al.].
Click to expand!
-
Singularity Container
For the simulation setup in OpenFOAM, the base case for the simulation may be found in
./test_cases/base_case
. For more info see here.To Built the singularity image follow the instruction given here. The singularity image file (.sif) should be in parent directory.
This base case is executable with singularity image as,
singuarity run of2006-py1.6-cpu.sif ./Allrun ./test_cases/base_case/
-
Flow Setup
-
Geometry
The computational domain is formed as explained in Pastur et al. The left most cylinder is considered as cylinder A, Top cylinder as cylinder B and Bottom cylinder as cylinder C.
-
Meshing
Meshing of the computational domain is achieved by the blockMesh functionality in OpenFOAM in which the domain is divided in N numbers of hexahedron blocks. The mesh cells are hexahedron. The blockMesh is significantly faster than snappyHexMesh.
For implementation refer this file.
-
Boundary Conditions
The inlet boundary condition is applied to the left, top and bottom sides of the rectangle containing cylinders. The inlet boundary condition is applied for uniform velocity BC. The outlet boundary condition is applied to right side of the rectangle as
ZeroGradient
. ThenoSlip
boundary condition is applied to the all cylinders. For more details see this, this and this files. -
cL
The Reynolds number () is computed as :
Where, is free stream velocity, is diameter of cylinder and is kinematic viscosity.
Coefficient of lift () is calculated as :
Where, is lift force. is area enclosed by single cylinder. Here where, is cell thickness in -direction as the simulation setup is quasi 2D and containing only one cell in -direction.
The is calculated for each individual cylinder. i.e. refers to for cylinder A. The results are compared with Bieker et al.
-
-
Mesh Dependency study
The meshing of domain is achieved by using blockMesh functionality of OpenFOAM.
Meshing level (L) for blockmesh is set to specific numbers of cells in all block and the base mesh level is considered as mentioned in
mesh_o2_i2
case. Then, the mesh is refined as 75%L (mesh_o1_i1
) and 125%L (mesh_o3_i3
). Where, in 75%L the mesh is 25% coarse and in 125%L the mesh is 25% finer than base mesh.For mesh dependency study, execute the shell file as,
- Locally - (./test_cases/mesh_dependency_study/)
$ bash local_mesh_dependency_study.sh
- On cluster (./test_cases/mesh_dependency_study/)
$ bash cluster_mesh_dependency_study.sh
The simulations for different mesh will generate in
./test_case/run/mesh_dependency_study/
.To check consider the mean and standard deviation of cL, the convergence of mean and standard deviation of mean over the time is plotted and the appropriate time-period is selected to compute mean and standard deviation of cL.
Result of Mesh dependency study :
Hence, the mesh-level 125%L is considered for the rest of the flow simulations.
-
Flow Simulation on different Reynolds numbers
For Flow Simulation on different Reynolds number, execute the shell file as,
- Locally - (
./test_cases/RE_vary/
)
$ bash local_different_REs.sh
- On cluster (
./test_cases/RE_vary/
)
$ bash cluster_different_REs.sh
The Reynolds number is varied as 10, 20, 30, ..., 200.
-
Click to see figure for Mean and standard deviation comparisoin with referance by varying Reynolds number.
Referance can be found here. Where, is absoulate value of mean of mean-lift for each cylinder. is sum of standard deviation for each cylinder. , , and represents lift for cylinder A, B and C respectively. , and denotes mean of lift over soecified timestep for cylinder A, B and C respectively. , , and represents standard deviation of lift for cylinder A, B and C respectively.
- Locally - (