Challenge

Week 11 - Simulation of Flow through a pipe in OpenFoam

Aim:

To simulate an axi-symmetric flow by applying the wedge boundary condition. The flow is laminar and flows through a constant cross-section pipe at an inlet Reynold's number of 2100. You can do a transient or steady state simulation and you will validate your results with the Hagen- Poiseuille's equations for the fully developed flow.

Objective:

  1. Validate Hydro-dynamic length with the numerical result
  2. Validate the fully developed flow velocity profile with its analytical profile
  3. Validate maximum velocity and pressured drop for fully developed flow
  4. Post-process Shear stress and validate wall shear stress for fully developed flow

Blockmesh:

  1. /*--------------------------------*- 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;
        object      blockMeshDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    // blockMesh parameterization   
    
    /* Geometrical Info */
    
    D	0.004;                      // Diameter 
    r #calc "0.5*$D";                   // Radius
    angle	5;                          // Angle in degrees
    theta   #calc "degToRad($angle)";   // Angle in radians
    Re 100;          		    // Reynolds Number
    Le #calc "0.06*$Re*$D";             // Entrance Length
    L  #calc "0.2 + $Le";		    // Total length of pipe
    
    /* Vertices Info */
    
    xmin	0;    
    xmax	$L;   
    ymax	#calc "$r*cos($theta)";
    zmax	#calc "$r*sin($theta)";
    zmin    #calc "-$r*sin($theta)"; 
    
    /* Mesh Info */
    
    nx	10;	// Cells along local X  
    ny	1;	// Cells along local Y  
    nz	50;	// Cells along local Z  
    gx	0.2;	// SG along local X  
    gy	1;	// SG along local Y
    gz	1;	// SG along local Z 
    
    
    convertToMeters 1;
    
    vertices
    (
        ($xmin 0 0)		 //0
        ($xmin $ymax $zmax)	 //1
        ($xmin $ymax $zmin)	 //2
        ($xmax 0 0)		 //3
        ($xmax $ymax $zmax)	 //4
        ($xmax $ymax $zmin)	 //5
    
    );
    
    blocks
    (
        hex (0 2 1 0 3 5 4 3) ($nx $ny $nz) simpleGrading ($gx $gy $gz)
    );
    
    edges
    (
    );
    
    boundary
    (
        inlet
        {
            type patch;
            faces
            (
                (0 1 2 0)
            );
        }
        outlet
        {
            type patch;
            faces
            (
                (3 5 4 3)
            );
        }
        front
        {
            type wedge;
            faces
            (
                (0 3 4 1)
            );
        } 
        back
        {
            type wedge;    // symmetry
            faces
            (
                (0 2 5 3)
            );
        } 
        wall
        {
            type wall;    // symmetry
            faces
            (
                (2 1 4 5)
            );
        } 
        axis
        {
            type empty;
            faces
            (
                (0 3 3 0)
            );
        }     
        
    );
    
    mergePatchPairs
    (
    );
    
    // ************************************************************************* //​

Controldict:

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

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


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

pressure:

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

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

internalField   uniform 0;

boundaryField
{
    inlet
    {
	type            zeroGradient;
    }

    outlet
    {
        
        type            fixedValue;
        value           uniform 0;       
    }

    front
    {
        type            wedge;   // symmetry
    }
    
    back
    {
        type            wedge;   // symmetry
    }  
 
    wall
    {
        type            zeroGradient;
    }   
    
    axis
    {
        type            empty;
    }
}

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

Velocity:

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


dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform (0.0223169508525577 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }

    front
    {
        type            wedge;   // symmetry
    }
    
    back
    {
        type            wedge;   // symmetry
    }  
 
    wall
    {
        type            noSlip;
    }   
    
    axis
    {
        type            empty;
    }
    
}

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

Pressure :

Velocity at entrance length:

Calculate the tau analytical and tau magnitude:

Shear stress plot:

Boundary layer formation:

Conclution:

Finally we canclude the Validate Hydro-dynamic length with the numerical result and find the fully developed flow velocity profile with its analytical profile then Validate maximum velocity and pressured drop for fully developed flow then Post-process Shear stress and validate wall shear stress for fully developed flow.

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.