Challenge

Week 11 - Simulation of Flow through a pipe in OpenFoam

AIM:

To campare the plots velocity,tau,analytical

Formulae:

CODE:

blockmeshdict:

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

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

physicalproperties:

/*--------------------------------*- 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] 8.9267803410231e-07;


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

OUTPUTS:

MESH:

VELOCITY:

TAU_MAGNITUDE:

Comparison between tau and analytical:

CONCLUSION:

We can observe there is no much change in the maximum velocities. The only difference observed is execution time a little high than type-wedge. While the angle increases the error in the maximum velocity is decreased. Though there is not much difference between analytical and numerical results and also with increasing the angle of the wedge, The Courant number is slightly increasing. we can say that the symmetric boundary condition plays an important role in terms of accuracy in the result.

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.