Challenge

Week 11 - Simulation of Flow through a pipe in OpenFoam

Simulation of Flow through a pipe:

Assume that water at temperature 303K, flowing through a pipe of 10mm diameter with a laminar flow of Re=2000. we need to find the entrance lenght(le), lenght of pipe(l), average velocity(Vavg) and pressure drop using Hagen poiseuille's equation.

Entrance lenght(le) = 0.06*Re*D

Entrance lenght(le) = 1.2 m.

therefore, lenght of the pipe = le + tolerance

asuuming tolerance = 0.05m

lenght of the pipe = 1.25m.

With the lenght and diamter, the geometry file for 4degree wedge is made using the matlab program.

matlab Program:

clear all
close all
clc

f1 = fopen('blockMeshDict.txt','w')
L1 = ('/*--------------------------------*- C++ -*----------------------------------*\')
L2 = ('  =========                 |')
L3 = ('  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox')
L4 = ('   \\    /   O peration     | Website:  https://openfoam.org')
L5 = ('    \\  /    A nd           | Version:  7')
L6 = ('     \\/     M anipulation  |')
L7 = ('\*---------------------------------------------------------------------------*/')
L8 = ('FoamFile')
L9 = ('{')
L10 = ('    version     2.0;')
L11 = ('    format      ascii;')
L12 = ('    class       dictionary;')
L13 = ('    object      blockMeshDict;')
L14 = ('}')
L15 = ('// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //')
L16 = ('convertToMeters 0.001;')
L17 = ('vertices')
L18 = ('(')
L19 = ('    (0 0 0)         //0')
L20 = ('    (0.17 4.996 0)      //1')
L21 = ('    (-0.17 4.996 0)     //2')
L22 = ('    (0 0 1250)      //3 ')
L23 = ('    (0.17 4.996 1250)   //4')
L24 = ('    (-0.17 4.996 1250)  //5')
L25 = (');')
L26 = ('blocks')
L27 = ('(')
L28 = ('    hex (0 1 2 0 3 4 5 3) (10 1 300) simpleGrading (1 1 1)')
L29 = (');')
L30 = ('edges')
L31 = ('(')
L32 = ('   arc 2 1 (0 5 0)')
L33 = ('   arc 5 4 (0 5 1250)')
L34 = (');')
L35 = ('boundary')
L36 = ('(')
L37 = ('      inlet')
L38 = ('    {')
L39 = ('        type patch;')
L40 = ('        faces')
L41 = ('        (')
L42 = ('            (0 1 2 0)')
L43 = ('        );')
L44 = ('    }')
L45 = ('    outlet')
L46 = ('    {')
L47 = ('        type patch;')
L48 = ('        faces')
L49 = ('        (')
L50 = ('            (3 5 4 3)')
L51 = ('        );')
L52 = ('    }')
L53 = ('    pipeWall')
L54 = ('    {')
L55 = ('        type wall;')
L56 = ('        faces')
L57 = ('        (')
L58 = ('            (2 1 4 5)')
L59 = ('        );')
L60 = ('    }')
L61 = ('    leftsides')
L62 = ('    {')
L63 = ('        type wedge;')
L64 = ('        faces')
L65 = ('        (')
L66 = ('            (3 0 2 5)')
L67 = ('        );')
L68 = ('    }')
L69 = ('    rightsides')
L70 = ('    {')
L71 = ('        type wedge;')
L72 = ('        faces')
L73 = ('        (')
L74 = ('            (0 3 4 1)')
L75 = ('        );')
L76 = ('    }')
L77 = ('    axis')
L78 = ('    {')
L79 = ('        type empty;')
L80 = ('        faces')
L81 = ('        (')
L82 = ('            (0 3 3 0)')
L83 = ('        );')
L84 = ('    }')
L85 = (');')
L86 = ('mergePatchPairs')
L87 = ('(')
L88 = (');')
L89 = ('// ************************************************************************* //')



fprintf(f1, '%s',L1)

fprintf(f1,'\n')
fprintf(f1, '%s',L2)

fprintf(f1,'\n')
fprintf(f1, '%s',L3)

fprintf(f1,'\n')
fprintf(f1, '%s',L4)

fprintf(f1,'\n')
fprintf(f1, '%s',L5)

fprintf(f1,'\n')
fprintf(f1, '%s',L6)

fprintf(f1,'\n')
fprintf(f1, '%s',L7)

fprintf(f1,'\n')
fprintf(f1, '%s',L8)

fprintf(f1,'\n')
fprintf(f1, '%s',L9)

fprintf(f1,'\n')
fprintf(f1, '%s',L10)

fprintf(f1,'\n')
fprintf(f1, '%s',L11)

fprintf(f1,'\n')
fprintf(f1, '%s',L12)

fprintf(f1,'\n')
fprintf(f1, '%s',L13)

fprintf(f1,'\n')
fprintf(f1, '%s',L14)

fprintf(f1,'\n')
fprintf(f1, '%s',L15)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L16)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L17)

fprintf(f1,'\n')
fprintf(f1, '%s',L18)

fprintf(f1,'\n')
fprintf(f1, '%s',L19)

fprintf(f1,'\n')
fprintf(f1, '%s',L20)

fprintf(f1,'\n')
fprintf(f1, '%s',L21)

fprintf(f1,'\n')
fprintf(f1, '%s',L22)

fprintf(f1,'\n')
fprintf(f1, '%s',L23)

fprintf(f1,'\n')
fprintf(f1, '%s',L24)

fprintf(f1,'\n')
fprintf(f1, '%s',L25)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L26)

fprintf(f1,'\n')
fprintf(f1, '%s',L27)

fprintf(f1,'\n')
fprintf(f1, '%s',L28)

fprintf(f1,'\n')
fprintf(f1, '%s',L29)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L30)

fprintf(f1,'\n')
fprintf(f1, '%s',L31)

fprintf(f1,'\n')
fprintf(f1, '%s',L32)

fprintf(f1,'\n')
fprintf(f1, '%s',L33)

fprintf(f1,'\n')
fprintf(f1, '%s',L34)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L35)

fprintf(f1,'\n')
fprintf(f1, '%s',L36)

fprintf(f1,'\n')
fprintf(f1, '%s',L37)

fprintf(f1,'\n')
fprintf(f1, '%s',L38)

fprintf(f1,'\n')
fprintf(f1, '%s',L39)

fprintf(f1,'\n')
fprintf(f1, '%s',L40)

fprintf(f1,'\n')
fprintf(f1, '%s',L41)

fprintf(f1,'\n')
fprintf(f1, '%s',L42)

fprintf(f1,'\n')
fprintf(f1, '%s',L43)

fprintf(f1,'\n')
fprintf(f1, '%s',L44)

fprintf(f1,'\n')
fprintf(f1, '%s',L45)

fprintf(f1,'\n')
fprintf(f1, '%s',L46)

fprintf(f1,'\n')
fprintf(f1, '%s',L47)

fprintf(f1,'\n')
fprintf(f1, '%s',L48)

fprintf(f1,'\n')
fprintf(f1, '%s',L49)

fprintf(f1,'\n')
fprintf(f1, '%s',L50)

fprintf(f1,'\n')
fprintf(f1, '%s',L51)

fprintf(f1,'\n')
fprintf(f1, '%s',L52)

fprintf(f1,'\n')
fprintf(f1, '%s',L53)

fprintf(f1,'\n')
fprintf(f1, '%s',L54)

fprintf(f1,'\n')
fprintf(f1, '%s',L55)

fprintf(f1,'\n')
fprintf(f1, '%s',L56)

fprintf(f1,'\n')
fprintf(f1, '%s',L57)

fprintf(f1,'\n')
fprintf(f1, '%s',L58)

fprintf(f1,'\n')
fprintf(f1, '%s',L59)

fprintf(f1,'\n')
fprintf(f1, '%s',L60)

fprintf(f1,'\n')
fprintf(f1, '%s',L61)

fprintf(f1,'\n')
fprintf(f1, '%s',L62)

fprintf(f1,'\n')
fprintf(f1, '%s',L63)

fprintf(f1,'\n')
fprintf(f1, '%s',L64)

fprintf(f1,'\n')
fprintf(f1, '%s',L65)

fprintf(f1,'\n')
fprintf(f1, '%s',L66)

fprintf(f1,'\n')
fprintf(f1, '%s',L67)

fprintf(f1,'\n')
fprintf(f1, '%s',L68)

fprintf(f1,'\n')
fprintf(f1, '%s',L69)

fprintf(f1,'\n')
fprintf(f1, '%s',L70)

fprintf(f1,'\n')
fprintf(f1, '%s',L71)

fprintf(f1,'\n')
fprintf(f1, '%s',L72)

fprintf(f1,'\n')
fprintf(f1, '%s',L73)

fprintf(f1,'\n')
fprintf(f1, '%s',L74)

fprintf(f1,'\n')
fprintf(f1, '%s',L75)

fprintf(f1,'\n')
fprintf(f1, '%s',L76)

fprintf(f1,'\n')
fprintf(f1, '%s',L77)

fprintf(f1,'\n')
fprintf(f1, '%s',L78)

fprintf(f1,'\n')
fprintf(f1, '%s',L79)

fprintf(f1,'\n')
fprintf(f1, '%s',L80)

fprintf(f1,'\n')
fprintf(f1, '%s',L81)

fprintf(f1,'\n')
fprintf(f1, '%s',L82)

fprintf(f1,'\n')
fprintf(f1, '%s',L83)

fprintf(f1,'\n')
fprintf(f1, '%s',L84)

fprintf(f1,'\n')
fprintf(f1, '%s',L85)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L86)

fprintf(f1,'\n')
fprintf(f1, '%s',L87)

fprintf(f1,'\n')
fprintf(f1, '%s',L88)

fprintf(f1,'\n \n')
fprintf(f1, '%s',L89)


fclose(f1)

viscosity of water at 303K

kinematic viscosity(ν) = 0.801e-6 (m^2)/s

dynamic viscosity(μ) = 0.798e-3Ns/(m^2)

density = 995kg/(m^3)

Vavg = v*Re/D

Vavg = 0.1602 m/s

Vmax = 2*Vavg

Vmax = 0.3204

Hagen poiseuille's equation:

ΔP = 32*μ*Vavg*L/(D^2) or ΔP = 0.5*ρ*Vmax^2

ΔP = 51013 N/m^2.

blockMeshDict program:

/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 0.001;

vertices
(
    (0 0 0)         //0
    (0.17 4.996 0)      //1
    (-0.17 4.996 0)     //2
    (0 0 1250)      //3   
    (0.17 4.996 1250)   //4
    (-0.17 4.996 1250)  //5 
);

blocks
(
    hex (0 1 2 0 3 4 5 3) (10 1 300) simpleGrading (1 1 1)
);

edges
(
   arc 2 1 (0 5 0)
   arc 5 4 (0 5 1250)
);

boundary
(
      inlet
    {
        type patch;
        faces
        (
            (0 1 2 0)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (3 5 4 3)
        );
    }
    pipeWall
    {
        type wall;
        faces
        (
            (2 1 4 5)
        );
    }
    leftsides
    {
        type wedge;
        faces
        (
            (3 0 2 5)            
        );    
    }
    rightsides
    {
        type wedge;
        faces
        (
            (0 3 4 1)            
        );
    }
    axis
    {
        type empty;
        faces
        (
            (0 3 3 0)            
        );
    } 
);

mergePatchPairs
(
);

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

Velocity pragram:

/*--------------------------------*- 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 (0.1602 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }
    pipeWall
    {
        type            noSlip;
    }
    leftsides
    {
        type            wedge;
    }
    rightsides
    {
        type            wedge;
    }

    axis
    {
        type            empty;
    }
}

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

pressure program:

/*--------------------------------*- 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;
    }
    pipeWall
    {
        type            zeroGradient;
    }
    leftsides
    {
        type            wedge;
    }
    rightsides
    {
        type            wedge;
    }

    axis
    {
        type            empty;
    }
}

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

controlDict program:

/*--------------------------------*- 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.5;

deltaT          0.0001;

writeControl    timeStep;

writeInterval   20;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


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

Result:

The velocity and pressure of the geometry in front view.

velocity:

pressure:

velocity graph along y axis:

pressure graph along Y axis:

tau graph along Y axis:

Therefore, The results are found for the flow of water through a pipe in asymentric method using the wedge as geometry instead of whole pipe. thus the velocity profile is shown along with shear stress.

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.

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.