Challenge

Week 12 - Validation studies of Symmetry BC vs Wedge BC in OpenFOAM vs Analytical H.P equation

Hagen-Poiseullie flow:

In nonideal fluid dynamics, the Hagen–Poiseuille equation, also known as the Hagen–Poiseuille law, Poiseuille law or Poiseuille equation, is a physical law that gives the pressure drop in an incompressible and Newtonian fluid in laminar flow flowing through a long cylindrical pipe of constant cross section.

`DeltaP=(32muLV_(avg))/D^2`

Where,

`DeltaP` is the pressure drop

`mu`is the dynamic viscosity

L is the length of the pipe

V is the velocity

Average Velocity `V_(avg)=(Re⋅μ)/(ρ⋅D)=0.09375m/s`

The maximum velocity is computed from the expression

`Vmax=2.Vavg=0.1875m/s`

The pressure drop across the pipe is computed from the Hagen poiseuillie equations as follows.

`ΔP=(32μLV_(avg))/D^2=18.2Pa`

Since openFoam deals with the kinematic quantities, the kinematic pressure drop is calculated as follows

`ΔP_(ke)=(ΔP)/P=0.018m`

Variables:

1. Re =2100(laminar flow)

2. Working fluid water : Kinematic viscosity = `1e−06m^2/s` (at 20 deg)

3. Dynamic viscosity at the water: `μ=0.89⋅10^(−3)Pa.s`

4. Density of water = `1000(kg)/m^3`

5. Diameter of the pipe D = 0.02(Assumption)

6. The average velocity for the corresponding values of Re and D is found out from the expressions.

Code for Wedge BC:

clear all 
close all
clc

Re = 2100;%Reynolds number for laminar flow
rho = 1000;%in kg/m^3
D = 0.02;%in meters
R=D/2;
L_ent = 0.06*Re*D;
mu = 0.00089;%viscosity of water in pa.s
nu = mu/rho; %kinematic viscosity
theta = 10;%in degrees(Assumption)

%Boundary conditions[
v_avg = Re*nu/D;
v_max = 2*v_avg;
L=L_ent+0.3;
deltap = (8*v_avg*mu*L)/R^2;


%Vertices co-ordinate
v0 = [0 0 0]%For point 0 
v1 = [0 R*cosd(theta/2) -R*sind(theta/2)]
v2 = [0 R*cosd(theta/2) R*sind(theta/2)]
v3 = [L 0 0]
v4 = [L R*cosd(theta/2) -R*sind(theta/2)]
v5 = [L R*cosd(theta/2) R*sind(theta/2)]

grading = 0.2;
b1 =50;
b2 = 1;
b3 = 200;

%Creating blockmesh dict file for OpenFoam


h1='/*--------------------------------*- C++ -*----------------------------------*\';
h2='|  =========                 |                                                |';
h3='|  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox          |';    
h4='|   \\    /   O peration     | Website:  https://openfoam.org                 |';     
h5='|    \\  /    A nd           | Version:  9                                    |'; 
h6='|     \\/     M anipulation  |                                                |';
h7='\*---------------------------------------------------------------------------*/';

h8='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //';

f1 = fopen('blockMeshDict.txt','wt')
fprintf(f1,'%s\n',h1);
fprintf(f1,'%s\n',h2);
fprintf(f1,'%s\n',h3);
fprintf(f1,'%s\n',h4);
fprintf(f1,'%s\n',h5);
fprintf(f1,'%s\n',h6);
fprintf(f1,'%s\n \n',h7);

fprintf(f1,'FoamFile \n {\n')
fprintf(f1,'%16s %10s\n','version','2.0;')
fprintf(f1,'%16s %12s\n','format','ascii;')
fprintf(f1,'%16s %17s\n','class','dictionary;')
fprintf(f1,'%16s %20s\n','object','blockMeshDict;')
fprintf(f1,'%2s\n','}')

fprintf(f1,'%2s\n\n','//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */')
fprintf(f1,'%2s\n\n','converTometers 1;')
fprintf(f1,'vertices \n (\n')
fprintf(f1,'\t(%d %d %d)\n',v0)
fprintf(f1,'\t(%d %d %d)\n',v1)
fprintf(f1,'\t(%d %d %d)\n',v2)
fprintf(f1,'\t(%d %d %d)\n',v3)
fprintf(f1,'\t(%d %d %d)\n',v4)
fprintf(f1,'\t(%d %d %d)\n',v5)
fprintf(f1,'%2s\n\n',');')

fprintf(f1,'blocks \n (\n')
fprintf(f1,'\t %s (%d %d %d) %s (%d 1 1) \n','hex (0 1 2 0 3 4 5 3)',b1,b2,b3,'simpleGrading',grading)
fprintf(f1,' %2s\n\n',');')

fprintf(f1,'edges \n (\n')
fprintf(f1,'\t %s (0 %d 0)\n','arc 1 2',R)
fprintf(f1,'\t %s (%d %d 0)\n','arc 4 5',L,R)
fprintf(f1,'%2s\n\n',');')

fprintf(f1,'boundary \n (\n')
fprintf(f1,' \t %5s \n','axis','{')
fprintf(f1,'\t %13s %s\n','type','empty;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 3 3 0)',');',')')

fprintf(f1,' \t %5s \n','wall','{')
fprintf(f1,'\t %13s %s\n','type','wall;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(2 5 4 1)',');','}')

fprintf(f1,'\t %5s \n','inlet','{')
fprintf(f1,'\t %13s %s\n','type','patch;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 0 2 1)',');','}')

fprintf(f1,'\t %5s \n','outlet','{')
fprintf(f1,'\t %13s %s\n','type','patch;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(3 4 5 3)',');','}')

fprintf(f1,'\t %5s \n','wedgeFront','{')
fprintf(f1,'\t %13s %s\n','type','wedge;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 3 5 2)',');','}')

fprintf(f1,'\t %5s \n','wedgeBack','{')
fprintf(f1,'\t %13s %s\n','type','wedge;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 1 4 3)',');','}',');')


fprintf(f1,'mergePatchPairs \n (\n);\n')
fprintf(f1,'%2s\n\n','// * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //')
fclose(f1);

BlockMeshDict:

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

converTometers 1;

vertices 
 (
	(0 0 0)
	(0 9.961947e-03 -8.715574e-04)
	(0 9.961947e-03 8.715574e-04)
	(2.820000e+00 0 0)
	(2.820000e+00 9.961947e-03 -8.715574e-04)
	(2.820000e+00 9.961947e-03 8.715574e-04)
);

blocks 
 (
	 hex (0 1 2 0 3 4 5 3) (50 1 200) simpleGrading (2.000000e-01 1 1) 
 );

edges 
 (
	 arc 1 2 (0 1.000000e-02 0)
	 arc 4 5 (2.820000e+00 1.000000e-02 0)
);

boundary 
 (
 	  axis 
 	     { 
	          type empty;
	          faces
                  (
	 	       (0 3 3 0)
                  );

              )

 	  wall 
 	     { 
	          type wall;
	          faces
                  (
	 	       (2 5 4 1)
                  );

              }

	 inlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (0 0 2 1)
                  );

              }

	 outlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (3 4 5 3)
                  );

              }

	 wedgeFront 
	     { 
	          type wedge;
	          faces
                  (
	 	       (0 3 5 2)
                  );

              }

	 wedgeBack 
	     { 
	          type wedge;
	          faces
                  (
	 	       (0 1 4 3)
                  );

              }

	 	              );
 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         50;

deltaT          0.01;

writeControl    timeStep;

writeInterval   200;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


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

Initial 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.0937312 0 0);

boundaryField
{
    axis
    {
        type            empty;
    }

    inlet
    {
        type            fixedValue;
        value           uniform (0.0937312 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }
    
    wall
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    
    wedgeFront
    {
        type            wedge;
    }
    
    wedgeBack
    {
        type            wedge;
    }
              
}
//* * * * * *  * * * *  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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
{
    axis
    {
        type            empty;
    }

    inlet
    {
        type            zeroGradient;
    }

    outlet
    {
        type            fixedValue;
        value           uniform 0.018;  
    }
    
    wall
    {
        type            zeroGradient;
    }
    
    wedgeFront
    {
        type            wedge;
    }
    
    wedgeBack
    {
        type            wedge;
    }             
}

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

Mesh for wedge angle 10:

Blockmesh file for wedge angle 25:

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

converTometers 1;

vertices 
 (
	(0 0 0)
	(0 9.762960e-03 -2.164396e-03)
	(0 9.762960e-03 2.164396e-03)
	(2.820000e+00 0 0)
	(2.820000e+00 9.762960e-03 -2.164396e-03)
	(2.820000e+00 9.762960e-03 2.164396e-03)
);

blocks 
 (
	 hex (0 1 2 0 3 4 5 3) (50 1 200) simpleGrading (2.000000e-01 1 1) 
 );

edges 
 (
	 arc 1 2 (0 1.000000e-02 0)
	 arc 4 5 (2.820000e+00 1.000000e-02 0)
);

boundary 
 (
 	  axis 
 	     { 
	          type empty;
	          faces
                  (
	 	       (0 3 3 0)
                  );

              )

 	  wall 
 	     { 
	          type wall;
	          faces
                  (
	 	       (2 5 4 1)
                  );

              }

	 inlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (0 0 2 1)
                  );

              }

	 outlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (3 4 5 3)
                  );

              }

	 wedgeFront 
	     { 
	          type wedge;
	          faces
                  (
	 	       (0 3 5 2)
                  );

              }

	 wedgeBack 
	     { 
	          type wedge;
	          faces
                  (
	 	       (0 1 4 3)
                  );

              }

	 	              );
 mergePatchPairs 
 (
);
// * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

mesh for wedge angle 25:

Blockmesh for wedge angle 45:

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

converTometers 1;

vertices 
 (
	(0 0 0)
	(0 9.238795e-03 -3.826834e-03)
	(0 9.238795e-03 3.826834e-03)
	(2.820000e+00 0 0)
	(2.820000e+00 9.238795e-03 -3.826834e-03)
	(2.820000e+00 9.238795e-03 3.826834e-03)
);

blocks 
 (
	 hex (0 1 2 0 3 4 5 3) (50 1 200) simpleGrading (2.000000e-01 1 1) 
 );

edges 
 (
	 arc 1 2 (0 1.000000e-02 0)
	 arc 4 5 (2.820000e+00 1.000000e-02 0)
);

boundary 
 (
 	  axis 
 	     { 
	          type empty;
	          faces
                  (
	 	       (0 3 3 0)
                  );

              )

 	  wall 
 	     { 
	          type wall;
	          faces
                  (
	 	       (2 5 4 1)
                  );

              }

	 inlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (0 0 2 1)
                  );

              }

	 outlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (3 4 5 3)
                  );

              }

	 wedgeFront 
	     { 
	          type wedge;
	          faces
                  (
	 	       (0 3 5 2)
                  );

              }

	 wedgeBack 
	     { 
	          type wedge;
	          faces
                  (
	 	       (0 1 4 3)
                  );

              }

	 	              );
 mergePatchPairs 
 (
);
// * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

Mesh for wedge angle 45:

Code for symmetry BC:

clear all 
close all
clc

Re = 2100;%Reynolds number for laminar flow
rho = 1000;%in kg/m^3
D = 0.02;%in meters
R=D/2;
L_ent = 0.06*Re*D;
mu = 0.00089;%viscosity of water in pa.s
nu = mu/rho; %kinematic viscosity
theta = 45;%in degrees(Assumption)

%Boundary conditions[
v_avg = Re*nu/D;
v_max = 2*v_avg;
L=L_ent+0.3;
deltap = (8*v_avg*mu*L)/R^2;


%Vertices co-ordinate
v0 = [0 0 0]%For point 0 
v1 = [0 R*cosd(theta/2) R*sind(theta/2)]
v2 = [0 R*cosd(theta/2) -R*sind(theta/2)]
v3 = [L 0 0]
v4 = [L R*cosd(theta/2) R*sind(theta/2)]
v5 = [L R*cosd(theta/2) -R*sind(theta/2)]

grading = 0.2;
b1 = 40;
b2 = 1;
b3 = 500;

%Creating blockmesh dict file for OpenFoam


h1='/*--------------------------------*- C++ -*----------------------------------*\';
h2='|  =========                 |                                                |';
h3='|  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox          |';    
h4='|   \\    /   O peration     | Website:  https://openfoam.org                 |';     
h5='|    \\  /    A nd           | Version:  9                                    |'; 
h6='|     \\/     M anipulation  |                                                |';
h7='\*---------------------------------------------------------------------------*/';

h8='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //';

f1 = fopen('blockMeshDict.txt','wt')
fprintf(f1,'%s\n',h1);
fprintf(f1,'%s\n',h2);
fprintf(f1,'%s\n',h3);
fprintf(f1,'%s\n',h4);
fprintf(f1,'%s\n',h5);
fprintf(f1,'%s\n',h6);
fprintf(f1,'%s\n \n',h7);

fprintf(f1,'FoamFile \n {\n')
fprintf(f1,'%16s %10s\n','version','2.0;')
fprintf(f1,'%16s %12s\n','format','ascii;')
fprintf(f1,'%16s %17s\n','class','dictionary;')
fprintf(f1,'%16s %20s\n','object','blockMeshDict;')
fprintf(f1,'%2s\n','}')

fprintf(f1,'%2s\n\n','//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */')
fprintf(f1,'%2s\n\n','converTometers 1;')
fprintf(f1,'vertices \n (\n')
fprintf(f1,'\t(%d %d %d)\n',v0)
fprintf(f1,'\t(%d %d %d)\n',v1)
fprintf(f1,'\t(%d %d %d)\n',v2)
fprintf(f1,'\t(%d %d %d)\n',v3)
fprintf(f1,'\t(%d %d %d)\n',v4)
fprintf(f1,'\t(%d %d %d)\n',v5)
fprintf(f1,'%2s\n\n',');')

fprintf(f1,'blocks \n (\n')
fprintf(f1,'\t %s (%d %d %d) %s (%d 1 1) \n','hex (0 2 1 0 3 5 4 3)',b1,b2,b3,'simpleGrading',grading)
fprintf(f1,' %2s\n\n',');')

fprintf(f1,'edges \n (\n')
fprintf(f1,'arc 1 2 (%f %f %f) \n',0,R,0)
fprintf(f1,'arc 4 5 (%f %f %f) \n',L,R,0)
fprintf(f1,'%s \n',');')

fprintf(f1,'boundary \n (\n')
fprintf(f1,' \t %5s \n','axis','{')
fprintf(f1,'\t %13s %s\n','type','empty;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 3 3 0)',');',')')

fprintf(f1,'\t %5s \n','inlet','{')
fprintf(f1,'\t %13s %s\n','type','patch;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 1 2 0)',');','}')

fprintf(f1,'\t %5s \n','outlet','{')
fprintf(f1,'\t %13s %s\n','type','patch;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(3 4 5 3)',');','}')

fprintf(f1,'\t %5s \n','front','{')
fprintf(f1,'\t %13s %s\n','type','symmetry;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(2 5 3 0)',');','}')

fprintf(f1,'\t %5s \n','back','{')
fprintf(f1,'\t %13s %s\n','type','symmetry;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(0 4 3 1)',');','}')

fprintf(f1,'\t %5s \n','top','{')
fprintf(f1,'\t %13s %s\n','type','wall;')
fprintf(f1,'\t %14s\n %18s\n','faces','(')
fprintf(f1,'\t \t %15s\n %19s\n\n %14s\n\n','(1 4 5 2)',');','}',');')

fprintf(f1,'mergePatchPairs \n (\n);\n')
fprintf(f1,'%2s\n\n','// * * * * * * * * * * * * * * *  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //')
fclose(f1);

Blockmesh for angle 45

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

converTometers 1;

vertices 
 (
	(0 0 0)
	(0 9.238795e-03 3.826834e-03)
	(0 9.238795e-03 -3.826834e-03)
	(2.820000e+00 0 0)
	(2.820000e+00 9.238795e-03 3.826834e-03)
	(2.820000e+00 9.238795e-03 -3.826834e-03)
);

blocks 
 (
	 hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (2.000000e-01 1 1) 
 );

edges 
 (
   arc 1 2 (0.000000 0.010000 0.000000) 
   arc 4 5 (2.820000 0.010000 0.000000)   
); 
boundary 
 (
 	  axis 
 	     { 
	          type empty;
	          faces
                  (
	 	       (0 3 3 0)
                  );

              )

	 inlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (0 1 2 0)
                  );

              }

	 outlet 
	     { 
	          type patch;
	          faces
                  (
	 	       (3 4 5 3)
                  );

              }

	 front 
	     { 
	          type symmetry;
	          faces
                  (
	 	       (2 5 3 0)
                  );

              }

	  back 
	     { 
	          type symmetry;
	          faces
                  (
	 	       (0 4 3 1)
                  );

              }

	   top 
	     { 
	          type wall;
	          faces
                  (
	 	       (1 4 5 2)
                  );

              }

	 	              );
 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         30;

deltaT          0.005;

writeControl    timeStep;

writeInterval   20;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


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

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

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

internalField   uniform 0;

boundaryField
{
    axis
    {
        type            empty;
    }    

    inlet
    {
        type            zeroGradient;
    }

    outlet
    {
        type            fixedValue;
        value           uniform 0;  
    }
    
    front
    {
        type            symmetry;
    }
    
    back
    {
        type            symmetry;
    }    
    
    top
    {
        type            zeroGradient;
    }             
        
}
// ************************************************************************* //

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

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

internalField   uniform (0.0937312 0 0);

boundaryField
{
    axis
    {
        type            empty;
    }
    
    
    inlet
    {
        type            fixedValue;
        value           uniform (0.0937312 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }
    
    front
    {
        type            symmetry;
    }
    
    back
    {
        type            symmetry;
    }
    
    top
    {
        type            noSlip;
    }
              
}
//* * * * * *  * * * *  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

Mesh for angle 45:

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.