Week 12 - Validation studies of Symmetry BC vs Wedge BC in OpenFOAM vs Analytical H.P equation
OBJECTIVE.
To simulate an axis-symmetric laminar flow through the constant cross-sectional of the pipe by applying the symmetry boundary condition.
To simulating for the mentioned angles i.e for 10, 25, 45 degrees using both symmetry and wedge boundary conditions and validate them with HP
equations.
ASSUMPTIONS
flow is steady, incompressible, and laminar.
flow is two dimensional.
fluid properties are constant(viscosity ,density ,etc..)
PROCEDURE.
1. Will start with copying the cavity file from the tutorial to the FOAM_RUN folder.
2. In the run folder only we are going to simulate and whatever we want to do the changes in the blockMeshDict file and pressure and velocity files and controlDict files we will be doing here.
3. Creating the block in the OpenFoam here we are creating the wedge after making the required changes in the blockMeshDict file to check the geometry run the blockMesh command.
4. After creating the wedge assign the boundary conditions, and also sitting the simulation end time and time-step in such a way that the courant number
should be less than 0.5 and also in the transportProperties enter the kinematic viscosity.
5.Run the simulation using the icoFoam solver after calculating the time needed for the fluid to travel from inlet to outlet
6. After the simulation, use paraFoam to view the flow inside the wedge and use plot over line command to plot the velocity and shear stress changes at a
point after the hydrodynamical entry region so that we analyse the fully developed region of the fluid.
7. Use Matlab to parse the blockMeshDict so that the same file can be used for any wedge values.
case-1 MATLAB CODE for wedge boundary condition of BLOKMESHDICT
clear all
close all
clc
% inputs
% assumptions made the fluid is assumed as water
Re=2100; % given reynolds number
rho=997; % density of the water
D=0.02; % diiameter of the pipe
r=D/2; % radius of the pipe
mu=0.89*10^-3; % dynamic viscosity of the water at 25 degree celcius
v=0.88927*10^-6; % kinematic viscosity of the water at 25 degree celcius
theta=input('Enter the value of the wedge angle= ')
L_h=0.06*Re*D; % hydrodynamic lenght
L=L_h+0.5;
% Analytical solutions
V_avg=(Re*mu)/(rho*D); % average velocity
V_max=2*V_avg; % maximum velocity
P_drop=(32*mu*L*V_avg)/D^2; % pressure drop
P_kinematic=(P_drop)/rho; % kinematic pressure drop
% vertices
v0=[0 0 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)]
% PRINTING THE blockMeshDict FILE
H1='/*--------------------------------*- C++ -*----------------------------------*';
H2=' ========= |';
H3=' \ / F ield | OpenFOAM: The Open Source CFD Toolbox';
H4=' \ / O peration | Website: https://openfoam.org';
H5=' \ / A nd | Version: 8';
H6=' \/ M anipulation |';
H7='*---------------------------------------------------------------------------*/';
H8='FoamFile';
H9='{'
H10=' version 2.0;';
H11=' format ascii;';
H12=' class dictionary;';
H13=' object blockMeshDict;';
H14='}'
H15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //';
% opening the file
f1=fopen('blockMeshDict_parsedNEW.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',H7);
fprintf(f1,'%s n',H8);
fprintf(f1,'%s n',H9);
fprintf(f1,'%s n',H10);
fprintf(f1,'%s n',H11);
fprintf(f1,'%s n',H12);
fprintf(f1,'%s n',H13);
fprintf(f1,'%s n',H14);
fprintf(f1,'%s n',H15);
fprintf(f1,'n');
fprintf(f1,'%s n','convertToMeters 1;');
fprintf(f1,'%s n','vertices');
fprintf(f1,'%s n','(');
fprintf(f1,'%s (%f %f %f) n',blanks(5),v0(1),v0(2),v0(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v1(1),v1(2),v1(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v2(1),v2(2),v2(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v3(1),v3(2),v3(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v4(1),v4(2),v4(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v5(1),v5(2),v5(3));
fprintf(f1,'%s n',');');
fprintf(f1,'%s n','blocks');
fprintf(f1,'%s n','(');
fprintf(f1,'%s %s n',blanks(5),'hex (0 2 1 0 3 5 4 3) (20 1 200) simpleGrading (1 1 1)');
fprintf(f1,'%s n',');');
fprintf(f1,'%s n','edges');
fprintf(f1,'%s 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,'%s n','boundary');
fprintf(f1,'( n');
fprintf(f1,'%s %s n',blanks(5),'inlet');
fprintf(f1,'%s %s n',blanks(5),'{');
fprintf(f1,'%s %s n',blanks(10),'type patch;');
fprintf(f1,' %s n','faces');
fprintf(f1,' %s n','(');
fprintf(f1,' (%d %d %d %d)n',0, 1, 2, 0);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','outlet');
fprintf(f1,' {n');
fprintf(f1,' %sn','type patch;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',3, 4, 5, 3);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','wedge_front');
fprintf(f1,' {n');
fprintf(f1,' %sn','type wedge;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',2, 5, 3, 0);
fprintf(f1,'n');
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','wedge_Back');
fprintf(f1,' {n');
fprintf(f1,'%sn',' type wedge;');
fprintf(f1,'%sn',' faces');
fprintf(f1,' (n');
fprintf(f1,'n');
fprintf(f1,' (%d %d %d %d)n',0, 3, 4, 1);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','top');
fprintf(f1,' {n');
fprintf(f1,' %sn','type wall;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',1, 4, 5, 2);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','axis');
fprintf(f1,' {n');
fprintf(f1,' %sn','type empty;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',0, 3, 3, 0);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' );n');
fprintf(f1,'n');
fprintf(f1,' %sn','mergePatchPairs');
fprintf(f1,'(n');
fprintf(f1,' );n');
fprintf(f1,'n');
fprintf(f1,' // ************************************************************************* //n');
fclose(f1);
case-2 MATLAB CODE for symmetry boundary condition of BLOKMESHDICT
clear all
close all
clc
% inputs
% assumptions made the fluid is assumed as water
Re=2100; % given reynolds number
rho=997; % density of the water
D=0.02; % diiameter of the pipe
r=D/2; % radius of the pipe
mu=0.89*10^-3; % dynamic viscosity of the water at 25 degree celcius
v=0.88927*10^-6; % kinematic viscosity of the water at 25 degree celcius
theta=input('Enter the value of the wedge angle= ')
L_h=0.06*Re*D; % hydrodynamic lenght
L=L_h+0.5;
% Analytical solutions
V_avg=(Re*mu)/(rho*D); % average velocity
V_max=2*V_avg; % maximum velocity
P_drop=(32*mu*L*V_avg)/D^2; % pressure drop
P_kinematic=(P_drop)/rho; % kinematic pressure drop
% vertices
v0=[0 0 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)]
% PRINTING THE blockMeshDict FILE
H1='/*--------------------------------*- C++ -*----------------------------------*';
H2=' ========= |';
H3=' \ / F ield | OpenFOAM: The Open Source CFD Toolbox';
H4=' \ / O peration | Website: https://openfoam.org';
H5=' \ / A nd | Version: 8';
H6=' \/ M anipulation |';
H7='*---------------------------------------------------------------------------*/';
H8='FoamFile';
H9='{'
H10=' version 2.0;';
H11=' format ascii;';
H12=' class dictionary;';
H13=' object blockMeshDict;';
H14='}'
H15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //';
% opening the file
f1=fopen('blockMeshDict_parsedNEW.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',H7);
fprintf(f1,'%s n',H8);
fprintf(f1,'%s n',H9);
fprintf(f1,'%s n',H10);
fprintf(f1,'%s n',H11);
fprintf(f1,'%s n',H12);
fprintf(f1,'%s n',H13);
fprintf(f1,'%s n',H14);
fprintf(f1,'%s n',H15);
fprintf(f1,'n');
fprintf(f1,'%s n','convertToMeters 1;');
fprintf(f1,'%s n','vertices');
fprintf(f1,'%s n','(');
fprintf(f1,'%s (%f %f %f) n',blanks(5),v0(1),v0(2),v0(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v1(1),v1(2),v1(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v2(1),v2(2),v2(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v3(1),v3(2),v3(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v4(1),v4(2),v4(3));
fprintf(f1,'%s (%f %f %f) n',blanks(5),v5(1),v5(2),v5(3));
fprintf(f1,'%s n',');');
fprintf(f1,'%s n','blocks');
fprintf(f1,'%s n','(');
fprintf(f1,'%s %s n',blanks(5),'hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)');
fprintf(f1,'%s n',');');
fprintf(f1,'%s n','edges');
fprintf(f1,'%s 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,'%s n','boundary');
fprintf(f1,'( n');
fprintf(f1,'%s %s n',blanks(5),'inlet');
fprintf(f1,'%s %s n',blanks(5),'{');
fprintf(f1,'%s %s n',blanks(10),'type patch;');
fprintf(f1,' %s n','faces');
fprintf(f1,' %s n','(');
fprintf(f1,' (%d %d %d %d)n',0, 1, 2, 0);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','outlet');
fprintf(f1,' {n');
fprintf(f1,' %sn','type patch;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',3, 4, 5, 3);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','wedge_front');
fprintf(f1,' {n');
fprintf(f1,' %sn','type symmetry;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',2, 5, 3, 0);
fprintf(f1,'n');
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','wedge_back');
fprintf(f1,' {n');
fprintf(f1,'%sn',' type symmetry;');
fprintf(f1,'%sn',' faces');
fprintf(f1,' (n');
fprintf(f1,'n');
fprintf(f1,' (%d %d %d %d)n',0, 3, 4, 1);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','top');
fprintf(f1,' {n');
fprintf(f1,' %sn','type wall;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',1, 4, 5, 2);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' %sn','axis');
fprintf(f1,' {n');
fprintf(f1,' %sn','type empty;');
fprintf(f1,' %sn','faces');
fprintf(f1,' (n');
fprintf(f1,' (%d %d %d %d)n',0, 3, 3, 0);
fprintf(f1,' );n');
fprintf(f1,' }n');
fprintf(f1,' );n');
fprintf(f1,'n');
fprintf(f1,' %sn','mergePatchPairs');
fprintf(f1,'(n');
fprintf(f1,' );n');
fprintf(f1,'n');
fprintf(f1,' // ************************************************************************* //n');
fclose(f1);
OPENFOAM FILES
Case-1 For wedge boundary conditions.
1.For the wedge angle 10 degrees
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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0.000000 0.000000 0.000000)
(0.000000 0.009962 0.000872)
(0.000000 0.009962 -0.000872)
(3.020000 0.000000 0.000000)
(3.020000 0.009962 0.000872)
(3.020000 0.009962 -0.000872)
);
blocks
(
hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0.000000 0.010000 0.000000)
arc 4 5 (3.020000 0.010000 0.000000)
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 0)
);
}
outlet
{
type patch;
faces
(
(3 4 5 3)
);
}
wedge_front
{
type wedge;
faces
(
(2 5 3 0)
);
}
wedge_back
{
type wedge;
faces
(
(0 3 4 1)
);
}
top
{
type wall;
faces
(
(1 4 5 2)
);
}
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 10;
deltaT 0.005;
writeControl timeStep;
writeInterval 20;
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];
internalFielduniform 0;
boundaryField
{
inlet
{
type
zeroGradient;
}
outlet
{
typefixedValue;
valueuniform 0;
}
wedge_front
{
type
wedge;
}
wedge_back
{
typewedge;
typezeroGradient;
}
top
{
}
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];
internalFielduniform (0 0 0);
boundaryField
{
inlet
{
typefixedValue;
valueuniform (0.09373 0 0);
}
outlet
{
typezeroGradient;
typenoSlip;
}
top
{
}
wedge_front
{
type
wedge;
}
wedge_back
{
type
wedge;
}
axis
{
type
empty;
}
}
// ************************************************************************* //
output


2.For the angle 25 degrees
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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0.000000 0.000000 0.000000)
(0.000000 0.009763 0.002164)
(0.000000 0.009763 -0.002164)
(3.020000 0.000000 0.000000)
(3.020000 0.009763 0.002164)
(3.020000 0.009763 -0.002164)
);
blocks
(
hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0.000000 0.010000 0.000000)
arc 4 5 (3.020000 0.010000 0.000000)
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 0)
);
}
outlet
{
type patch;
faces
(
(3 4 5 3)
);
}
wedge_front
{
type wedge;
faces
(
(2 5 3 0)
);
}
wedge_back
{
type wedge;
faces
(
(0 3 4 1)
);
}
top
{
type wall;
faces
(
(1 4 5 2)
);
}
axis
{
type empty;
faces
(
(0 3 3 0)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
outputs


3.For the angle 45 degrees
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0.000000 0.000000 0.000000)
(0.000000 0.009239 0.003827)
(0.000000 0.009239 -0.003827)
(3.020000 0.000000 0.000000)
(3.020000 0.009239 0.003827)
(3.020000 0.009239 -0.003827)
);
blocks
(
hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0.000000 0.010000 0.000000)
arc 4 5 (3.020000 0.010000 0.000000)
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 0)
);
}
outlet
{
type patch;
faces
(
(3 4 5 3)
);
}
wedge_front
{
type wedge;
faces
(
(2 5 3 0)
);
}
wedge_back
{
type wedge;
faces
(
(0 3 4 1)
);
}
top
{
type wall;
faces
(
(1 4 5 2)
);
}
axis
{
type empty;
faces
(
(0 3 3 0)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
output


Case-2For symmetry boundary conditions
1.For angle 10 degrees
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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0.000000 0.000000 0.000000)
(0.000000 0.009962 0.000872)
(0.000000 0.009962 -0.000872)
(3.020000 0.000000 0.000000)
(3.020000 0.009962 0.000872)
(3.020000 0.009962 -0.000872)
);
blocks
(
hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0.000000 0.010000 0.000000)
arc 4 5 (3.020000 0.010000 0.000000)
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 0)
);
}
outlet
{
type patch;
faces
(
(3 4 5 3)
);
}
wedge_front
{
type symmetry;
faces
(
(2 5 3 0)
);
}
wedge_back
{
type symmetry;
faces
(
(0 3 4 1)
);
}
top
{
type wall;
faces
(
(1 4 5 2)
);
}
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 30;
deltaT 0.005;
writeControl timeStep;
writeInterval 20;
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];
internalFielduniform 0;
boundaryField
{
inlet
{
type
zeroGradient;
}
outlet
{
typefixedValue;
valueuniform 0;
}
wedge_front
{
type
symmetry;
}
wedge_back
{
typesymmetry;
typezeroGradient;
}
top
{
}
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];
internalFielduniform (0 0 0);
boundaryField
{
inlet
{
typefixedValue;
valueuniform (0.09373 0 0);
}
outlet
{
typezeroGradient;
typenoSlip;
}
top
{
}
wedge_front
{
type
symmetry;
}
wedge_back
{
type
symmetry;
}
axis
{
type
empty;
}
}
// ************************************************************************* //
output


2.For angle 25 degrees
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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0.000000 0.000000 0.000000)
(0.000000 0.009763 0.002164)
(0.000000 0.009763 -0.002164)
(3.020000 0.000000 0.000000)
(3.020000 0.009763 0.002164)
(3.020000 0.009763 -0.002164)
);
blocks
(
hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0.000000 0.010000 0.000000)
arc 4 5 (3.020000 0.010000 0.000000)
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 0)
);
}
outlet
{
type patch;
faces
(
(3 4 5 3)
);
}
wedge_front
{
type symmetry;
faces
(
(2 5 3 0)
);
}
wedge_back
{
type symmetry;
faces
(
(0 3 4 1)
);
}
top
{
type wall;
faces
(
(1 4 5 2)
);
}
axis
{
type empty;
faces
(
(0 3 3 0)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
output


3.For angle 45 degrees
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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1;
vertices
(
(0.000000 0.000000 0.000000)
(0.000000 0.009239 0.003827)
(0.000000 0.009239 -0.003827)
(3.020000 0.000000 0.000000)
(3.020000 0.009239 0.003827)
(3.020000 0.009239 -0.003827)
);
blocks
(
hex (0 2 1 0 3 5 4 3) (40 1 500) simpleGrading (1 1 1)
);
edges
(
arc 1 2 (0.000000 0.010000 0.000000)
arc 4 5 (3.020000 0.010000 0.000000)
);
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 0)
);
}
outlet
{
type patch;
faces
(
(3 4 5 3)
);
}
wedge_front
{
type symmetry;
faces
(
(2 5 3 0)
);
}
wedge_back
{
type symmetry;
faces
(
(0 3 4 1)
);
}
top
{
type wall;
faces
(
(1 4 5 2)
);
}
axis
{
type empty;
faces
(
(0 3 3 0)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //
output


CONCLUSION.
1.From the above analysis it is clear that 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.
2.Also, 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