Simulating the Flow over backward facing step using icoFoam solver
We shall modify the cavity tutorial folder of icoFoam solver to solve the given problem.
The files are modified as shown below
control/
blockMeshDict file:
/*--------------------------------*- C++ -*----------------------------------*\\
========= |
\\\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\\\ / O peration | Website: https://openfoam.org
\\\\ / A nd | Version: 7
\\\\/ M anipulation |
\\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
vertices
(
(0 0 0)//0
(0.08 0 0)//1
(0.08 0.005 0)//2
(0 0.005 0)//3
(0.08 0.01 0)//4
(0 0.01 0)//5
(0.2 0.01 0)//6
(0.2 0.005 0)//7
(0.2 0 0)//8
(0.2 -0.01 0)//9
(0.08 -0.01 0)//10
(0 0 0.002)//11
(0.08 0 0.002)//12
(0.08 0.005 0.002)//13
(0 0.005 0.002)//14
(0.08 0.01 0.002)//15
(0 0.01 0.002)//16
(0.2 0.01 0.002)//17
(0.2 0.005 0.002)//18
(0.2 0 0.002)//19
(0.2 -0.01 0.002)//20
(0.08 -0.01 0.002)//21
);
blocks
(
hex (0 1 2 3 11 12 13 14) (80 5 1) simpleGrading (0.2 5 1)
hex (3 2 4 5 14 13 15 16) (80 5 1) simpleGrading (0.2 0.2 1)
hex (2 7 6 4 13 18 17 15) (120 5 1) simpleGrading (5 0.2 1)
hex (1 8 7 2 12 19 18 13) (120 5 1) simpleGrading (5 5 1)
hex (10 9 8 1 21 20 19 12) (120 10 1) simpleGrading (5 5 1)
);
edges
(
);
boundary
(
inlet
{
type patch;
faces
(
(0 11 14 3)
(3 14 16 5)
);
}
outlet
{
type patch;
faces
(
(9 8 19 20)
(8 7 18 19)
(7 6 17 18)
);
}
walls
{
type wall;
faces
(
(5 16 15 4)
(4 15 17 6)
(11 0 1 12)
(21 10 9 20)
(1 10 21 12)
);
}
frontAndBack
{
type empty;
faces
(
(0 3 2 1)
(3 5 4 2)
(2 4 6 7)
(1 2 7 8)
(10 1 8 9)
(11 12 13 14)
(14 13 15 16)
(13 18 17 15)
(12 19 18 13)
(21 20 19 12)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
controlDict file:
deltaT should be chosen such that the courant number would not go above 1 over the entire simulation.
Courant number is given by
`C=U*(∆t)/(∆x+∆y)`
/*--------------------------------*- C++ -*----------------------------------*\\
========= |
\\\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\\\ / O peration | Website: https://openfoam.org
\\\\ / A nd | Version: 7
\\\\/ M anipulation |
\\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location \"system\";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;
deltaT 0.0001;
writeControl timeStep;
writeInterval 1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //
Initial conditions are located in 0/
p file: (Kinematic pressure)
/*--------------------------------*- C++ -*----------------------------------*\\
========= |
\\\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\\\ / O peration | Website: https://openfoam.org
\\\\ / A nd | Version: 7
\\\\/ M anipulation |
\\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
walls
{
type zeroGradient;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
U file: (Velocity)
/*--------------------------------*- C++ -*----------------------------------*\\
========= |
\\\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\\\ / O peration | Website: https://openfoam.org
\\\\ / A nd | Version: 7
\\\\/ M anipulation |
\\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (1 0 0);
}
outlet
{
type zeroGradient;
}
walls
{
type noSlip;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //
./Allrun command in the terminal solves the problem
We also need to post-process the results using paraFoam command
OUTPUT:
Velocity contours for different grading factors near walls
Grading factor = 0.2
Grading factor = 0.5
Grading factor = 0.8
- Flow seperation at the step is smooth for grading factor 0.8 than 0.5 than 0.2
- This may be due to the fact that grading 0.2 at the bottom wall increased the size of the cell near the step in Y direction
- Grading factor of 1 would have given even better results
Velocity profile plots at x = 0.085 for various grading factors:
- Velocity profile for grading factor of 0.8 is smooth because the cells are finer than those in other cases
- Grading should be done in such a way that the cells surrounding the step are finer
- Velocity at the surface of walls is zero