Challenge

Week 8 - Simulation of a backward facing step in OpenFOAM

Simulation of a backward facing step in OpenFOAM

OBJECTIVE:

Case 1 - Simulate the flow without using any grading factor (i.e., GF = 1)

Case 2 - Simulate the flow with grading factor of 0.2. The cells should be finer near the walls (includig the step wall).

Domain specification

Steps:

open the terminal from Ubuntu (CTRL+ALT+T)

enter the script foam > ls

change the directory cd tutorials > ls

select the incompressible directory cd incompressibe > ls

select icofoam directory using the script cd icofoam > ls

copy the cavity folder to foam run cp -r cavity $FOAM_RUN/cavity_test

change the directory to cd $FOAM_RUN

change to the system directory and edit the block mesh using the script gedit blockMeshDict

change the vertices and the block

similarly check the gedit controlDict

change the physical properties of nu to 1e-5;

navigate to 0 folder and change the pressure p and U velocity using gedit p and gedit U

To run the mesh blockMesh

To check the Mesh checkMesh

To run the case use solver name in this case it is icoFoam

then run the simulation and plot the results using paraFoam

blockMeshDict file for grading factor 0.2

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

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.001)  //11
    (0.08 0 0.001)  //12
    (0.08 0.005 0.001)   //13
    (0 0.005 0.001)  //14
    (0.08 0.01 0.001) //15
    (0 0.01 0.001)  //16
    (0.2 0.01 0.001)  //17
    (0.2 0.005 0.001)  //18
    (0.2 0 0.001)  //19
    (0.2 -0.01 0.001) //20
    (0.08 -0.01 0.001)  //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 (1 8 7 2 12 19 18 13) (120 5 1) simpleGrading (5 5 1)

    hex (2 7 6 4 13 18 17 15) (120 5 1) simpleGrading (5 0.2 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)
        );
    }
    upperwall
    {
        type wall;
        faces
        (
            (5 16 15 4)
            (4 15 17 6)
        );
    }
    lowerwall
    {
        type wall;
        faces
        (
            (0 1 12 11)
            (10 9 20 21)
            (10 21 12 1)
        );
    }
    FrontandBack
    {
        type empty;
        faces
        (
            (0 3 2 1)
            (3 5 4 2)
            (10 1 8 9)
            (1 2 7 8)
            (2 4 6 7)
            (11 12 13 14)
            (14 13 15 16)
            (15 13 18 17)
            (13 12 19 18)
            (12 21 20 19)
        );
    }

    outlet
    {
        type patch;
        faces
        (
            (7 6 17 18)
            (8 7 18 19)
            (9 8 19 20)
        );
    }
);

mergePatchPairs
(
);

// ************************************************************************* //

controlDict file: (Defining the timesteps)

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     icoFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         5;

deltaT          0.001;

writeControl    timeStep;

writeInterval   20;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


// ************************************************************************* //

change the physical properties

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "constant";
    object      transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

nu              [0 2 -1 0 0 0 0] 1e-5;


// ************************************************************************* //

change the p pressure values

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    inlet
    {
        type            zeroGradient;
    }

    upperwall
    {
        type            zeroGradient;
    }

    lowerwall
    {
        type            zeroGradient;
    }

    FrontandBack
    {
        type            empty;
    }

    outlet
    {
        type            fixedValue;
        value           uniform 0;
    }
}

// ************************************************************************* //

change the U velocity values

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    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 (0.1 0 0);
    }

    upperwall
    {
        type            noSlip;
    }

    lowerwall
    {
        type            noSlip;
    }

    FrontandBack
    {
        type            empty;
    }

    outlet
    {
        type            zeroGradient;
    }
}

// ************************************************************************* //

Mesh for Grading Factor 0.2

blockMeshDict file for grading factor 1

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  10
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

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.001)  //11
    (0.08 0 0.001)  //12
    (0.08 0.005 0.001)   //13
    (0 0.005 0.001)  //14
    (0.08 0.01 0.001) //15
    (0 0.01 0.001)  //16
    (0.2 0.01 0.001)  //17
    (0.2 0.005 0.001)  //18
    (0.2 0 0.001)  //19
    (0.2 -0.01 0.001) //20
    (0.08 -0.01 0.001)  //21
);

blocks
(
    hex (0 1 2 3 11 12 13 14) (80 5 1) simpleGrading (1  1)

    hex (3 2 4 5 14 13 15 16) (80 5 1) simpleGrading (1 1 1)

    hex (1 8 7 2 12 19 18 13) (120 5 1) simpleGrading (1 1 1)

    hex (2 7 6 4 13 18 17 15) (120 5 1) simpleGrading (1 1 1)

    hex (10 9 8 1 21 20 19 12) (120 10 1) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 11 14 3)
            (3 14 16 5)
        );
    }
    upperwall
    {
        type wall;
        faces
        (
            (5 16 15 4)
            (4 15 17 6)
        );
    }
    lowerwall
    {
        type wall;
        faces
        (
            (0 1 12 11)
            (10 9 20 21)
            (10 21 12 1)
        );
    }
    FrontandBack
    {
        type empty;
        faces
        (
            (0 3 2 1)
            (3 5 4 2)
            (10 1 8 9)
            (1 2 7 8)
            (2 4 6 7)
            (11 12 13 14)
            (14 13 15 16)
            (15 13 18 17)
            (13 12 19 18)
            (12 21 20 19)
        );
    }

    outlet
    {
        type patch;
        faces
        (
            (7 6 17 18)
            (8 7 18 19)
            (9 8 19 20)
        );
    }
);

mergePatchPairs
(
);

// ************************************************************************* //

Mesh for Grading Factor 1;

Velocity plot for Grading Factor 1:

Velocity plot for Grading Factor 0.2:

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.