Week 12 - Validation studies of Symmetry BC vs Wedge BC in OpenFOAM vs Analytical H.P equation
Validation studies of Symmetry BC vs Wedge BC in OpenFOAM vs Analytical H.P equation:
Validate Hydro-dynamic length with the numerical result:
close all
clear all
clc
% inputs
% Reynaulds number
re = 2100;
% Diameter of the pipe in meters
d = 0.1;
% Dynamic viscosity
nu = 0.000889;
% Density
rho = 997;
mu = nu*rho
% hydrodynamic length
le = 0.06*re*d;
%length of the pipe
L = le+0.7;
% radial distance
R = linspace(-0.01,0.01,1000);
% Hagen-poiseuille laws
velocity_avg = (re*nu)/(rho*d);
velocity_max = 2*velocity_avg;
del_P = (8*nu*L*velocity_avg)/(d/2)^2;
del_Pk = (del_P/rho);
% calculation of shear stress
for i = 1:length(R)
tow(i) = 2*mu*velocity_max*(abs(R(i)))/(d/2)^2
end
plot(R,tow)
xlabel('Radius')
ylabel('shear_stress')
legend('Shere_stress')
grid on

Coding of blockMeshDict file created by Matlab at wedge BC at an angle of 10 :
close all
clear all
clc
f1 = fopen("blockMeshDict","w")
h1="/*--------------------------------*- C++ -*----------------------------------*\";
h2="| ========= | |";
h3="| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |";
h4="| \\ / O peration | Version: 4.0 |";
h5="| \\ / A nd | Web: www.OpenFOAM.org |";
h6="| \\/ M anipulation | |";
h7="\*---------------------------------------------------------------------------*/";
h = "FoamFile";
h8 = "{";
h9 ="version 2.0;";
h10 = "format ascii;";
h11 = "class dictionary;";
h12 = "object blockMeshDict;";
h13 = "}";
h14 = "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //";
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",h);
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);
con = "convertToMeters 1;";
ver = "vertices";
fprintf(f1,"%s \n",con);
fprintf(f1,"%s \n",ver);
s1 = blanks(4);
s2 = blanks(8);
s3 = blanks(12);
r = 0.01;
theta = 10; % in degres
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 = [1 0 0];
v4 = [1 r*cosd(theta/2) r*sind(theta/2)];
v5 = [1 r*cosd(theta/2) -r*sind(theta/2)];
fprintf(f1,"%s \n","(");
fprintf(f1,"%s (%d %d %d)\n",s1,v0);
fprintf(f1,"%s (%d %d %d)\n",s1,0,r*cosd(theta/2),r*sind(theta/2));
fprintf(f1,"%s (%d %d %d)\n",s1,v2);
fprintf(f1,"%s (%d %d %d)\n",s1,v3);
fprintf(f1,"%s (%d %d %d)\n",s1,v4);
fprintf(f1,"%s (%d %d %d)\n",s1,v5);
fprintf(f1,"%s \n",");");
fprintf(f1,"%s \n","blocks");
fprintf(f1,"%s \n","(");
fprintf(f1,"%s hex (0 3 5 2 0 3 4 1)(%d %d %d) SimpleGrading (%d %d %d)\n",s1,300,30,1,1,0.1,1);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"edges");
fprintf(f1,"%s \n",s1,"(");
fprintf(f1,"%s arc 1 2 (%d %d %d)\n",s1,1,0.2,1);
fprintf(f1,"%s arc 4 5 (%d %d %d)\n",s1,1.2,2,0);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"boundary");
fprintf(f1, '(\n');
fprintf(f1, '\t inlet \n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 1 2 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t outlet\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (3 5 4 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t top\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wall;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (1 4 5 2)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t front\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wedge;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 4 1)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t back\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wedge;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 2 5 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t axis\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type empty;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 3 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '); \n\n');
fprintf(f1, 'mergePatchPairs\n');
fprintf(f1, '(\n');
fprintf(f1, ');\n');
header15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //'
fprintf(f1, '%s\n',header15);
fclose(f1);
Coding of blockMeshDict file created by Matlab at wedge BC at an angle of 25 :
close all
clear all
clc
f1 = fopen("blockMeshDict","w")
h1="/*--------------------------------*- C++ -*----------------------------------*\";
h2="| ========= | |";
h3="| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |";
h4="| \\ / O peration | Version: 4.0 |";
h5="| \\ / A nd | Web: www.OpenFOAM.org |";
h6="| \\/ M anipulation | |";
h7="\*---------------------------------------------------------------------------*/";
h = "FoamFile";
h8 = "{";
h9 ="version 2.0;";
h10 = "format ascii;";
h11 = "class dictionary;";
h12 = "object blockMeshDict;";
h13 = "}";
h14 = "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //";
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",h);
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);
con = "convertToMeters 1;";
ver = "vertices";
fprintf(f1,"%s \n",con);
fprintf(f1,"%s \n",ver);
s1 = blanks(4);
s2 = blanks(8);
s3 = blanks(12);
r = 0.01;
theta = 25; % in degres
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 = [1 0 0];
v4 = [1 r*cosd(theta/2) r*sind(theta/2)];
v5 = [1 r*cosd(theta/2) -r*sind(theta/2)];
fprintf(f1,"%s \n","(");
fprintf(f1,"%s (%d %d %d)\n",s1,v0);
fprintf(f1,"%s (%d %d %d)\n",s1,0,r*cosd(theta/2),r*sind(theta/2));
fprintf(f1,"%s (%d %d %d)\n",s1,v2);
fprintf(f1,"%s (%d %d %d)\n",s1,v3);
fprintf(f1,"%s (%d %d %d)\n",s1,v4);
fprintf(f1,"%s (%d %d %d)\n",s1,v5);
fprintf(f1,"%s \n",");");
fprintf(f1,"%s \n","blocks");
fprintf(f1,"%s \n","(");
fprintf(f1,"%s hex (0 3 5 2 0 3 4 1)(%d %d %d) SimpleGrading (%d %d %d)\n",s1,300,30,1,1,0.1,1);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"edges");
fprintf(f1,"%s \n",s1,"(");
fprintf(f1,"%s arc 1 2 (%d %d %d)\n",s1,1,0.2,1);
fprintf(f1,"%s arc 4 5 (%d %d %d)\n",s1,1.2,2,0);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"boundary");
fprintf(f1, '(\n');
fprintf(f1, '\t inlet \n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 1 2 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t outlet\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (3 5 4 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t top\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wall;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (1 4 5 2)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t front\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wedge;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 4 1)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t back\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wedge;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 2 5 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t axis\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type empty;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 3 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '); \n\n');
fprintf(f1, 'mergePatchPairs\n');
fprintf(f1, '(\n');
fprintf(f1, ');\n');
header15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //'
fprintf(f1, '%s\n',header15);
fclose(f1);
Coding of blockMeshDict file created by Matlab at wedge BC at an angle of 45 :
close all
clear all
clc
f1 = fopen("blockMeshDict","w")
h1="/*--------------------------------*- C++ -*----------------------------------*\";
h2="| ========= | |";
h3="| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |";
h4="| \\ / O peration | Version: 4.0 |";
h5="| \\ / A nd | Web: www.OpenFOAM.org |";
h6="| \\/ M anipulation | |";
h7="\*---------------------------------------------------------------------------*/";
h = "FoamFile";
h8 = "{";
h9 ="version 2.0;";
h10 = "format ascii;";
h11 = "class dictionary;";
h12 = "object blockMeshDict;";
h13 = "}";
h14 = "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //";
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",h);
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);
con = "convertToMeters 1;";
ver = "vertices";
fprintf(f1,"%s \n",con);
fprintf(f1,"%s \n",ver);
s1 = blanks(4);
s2 = blanks(8);
s3 = blanks(12);
r = 0.01;
theta = 45; % in degres
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 = [1 0 0];
v4 = [1 r*cosd(theta/2) r*sind(theta/2)];
v5 = [1 r*cosd(theta/2) -r*sind(theta/2)];
fprintf(f1,"%s \n","(");
fprintf(f1,"%s (%d %d %d)\n",s1,v0);
fprintf(f1,"%s (%d %d %d)\n",s1,0,r*cosd(theta/2),r*sind(theta/2));
fprintf(f1,"%s (%d %d %d)\n",s1,v2);
fprintf(f1,"%s (%d %d %d)\n",s1,v3);
fprintf(f1,"%s (%d %d %d)\n",s1,v4);
fprintf(f1,"%s (%d %d %d)\n",s1,v5);
fprintf(f1,"%s \n",");");
fprintf(f1,"%s \n","blocks");
fprintf(f1,"%s \n","(");
fprintf(f1,"%s hex (0 3 5 2 0 3 4 1)(%d %d %d) SimpleGrading (%d %d %d)\n",s1,300,30,1,1,0.1,1);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"edges");
fprintf(f1,"%s \n",s1,"(");
fprintf(f1,"%s arc 1 2 (%d %d %d)\n",s1,1,0.2,1);
fprintf(f1,"%s arc 4 5 (%d %d %d)\n",s1,1.2,2,0);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"boundary");
fprintf(f1, '(\n');
fprintf(f1, '\t inlet \n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 1 2 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t outlet\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (3 5 4 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t top\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wall;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (1 4 5 2)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t front\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wedge;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 4 1)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t back\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wedge;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 2 5 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t axis\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type empty;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 3 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '); \n\n');
fprintf(f1, 'mergePatchPairs\n');
fprintf(f1, '(\n');
fprintf(f1, ');\n');
header15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //'
fprintf(f1, '%s\n',header15);
fclose(f1);
Coding of blockMeshDict file created by Matlab at symmetry BC at an angle of 10 :
close all
clear all
clc
f1 = fopen("blockMeshDict","w")
h1="/*--------------------------------*- C++ -*----------------------------------*\";
h2="| ========= | |";
h3="| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |";
h4="| \\ / O peration | Version: 4.0 |";
h5="| \\ / A nd | Web: www.OpenFOAM.org |";
h6="| \\/ M anipulation | |";
h7="\*---------------------------------------------------------------------------*/";
h = "FoamFile";
h8 = "{";
h9 ="version 2.0;";
h10 = "format ascii;";
h11 = "class dictionary;";
h12 = "object blockMeshDict;";
h13 = "}";
h14 = "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //";
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",h);
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);
con = "convertToMeters 1;";
ver = "vertices";
fprintf(f1,"%s \n",con);
fprintf(f1,"%s \n",ver);
s1 = blanks(4);
s2 = blanks(8);
s3 = blanks(12);
r = 0.01;
theta = 10; % in degres
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 = [1 0 0];
v4 = [1 r*cosd(theta/2) r*sind(theta/2)];
v5 = [1 r*cosd(theta/2) -r*sind(theta/2)];
fprintf(f1,"%s \n","(");
fprintf(f1,"%s (%d %d %d)\n",s1,v0);
fprintf(f1,"%s (%d %d %d)\n",s1,0,r*cosd(theta/2),r*sind(theta/2));
fprintf(f1,"%s (%d %d %d)\n",s1,v2);
fprintf(f1,"%s (%d %d %d)\n",s1,v3);
fprintf(f1,"%s (%d %d %d)\n",s1,v4);
fprintf(f1,"%s (%d %d %d)\n",s1,v5);
fprintf(f1,"%s \n",");");
fprintf(f1,"%s \n","blocks");
fprintf(f1,"%s \n","(");
fprintf(f1,"%s hex (0 3 5 2 0 3 4 1)(%d %d %d) SimpleGrading (%d %d %d)\n",s1,300,30,1,1,0.1,1);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"edges");
fprintf(f1,"%s \n",s1,"(");
fprintf(f1,"%s arc 1 2 (%d %d %d)\n",s1,1,0.2,1);
fprintf(f1,"%s arc 4 5 (%d %d %d)\n",s1,1.2,2,0);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"boundary");
fprintf(f1, '(\n');
fprintf(f1, '\t inlet \n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 1 2 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t outlet\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (3 5 4 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t top\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wall;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (1 4 5 2)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t front\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type symmetry;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 4 1)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t back\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type symmetry;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 2 5 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t axis\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type empty;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 3 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '); \n\n');
fprintf(f1, 'mergePatchPairs\n');
fprintf(f1, '(\n');
fprintf(f1, ');\n');
header15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //'
fprintf(f1, '%s\n',header15);
fclose(f1);
Coding of blockMeshDict file created by Matlab at symmetry BC at an angle of 25 :
close all
clear all
clc
f1 = fopen("blockMeshDict","w")
h1="/*--------------------------------*- C++ -*----------------------------------*\";
h2="| ========= | |";
h3="| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |";
h4="| \\ / O peration | Version: 4.0 |";
h5="| \\ / A nd | Web: www.OpenFOAM.org |";
h6="| \\/ M anipulation | |";
h7="\*---------------------------------------------------------------------------*/";
h = "FoamFile";
h8 = "{";
h9 ="version 2.0;";
h10 = "format ascii;";
h11 = "class dictionary;";
h12 = "object blockMeshDict;";
h13 = "}";
h14 = "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //";
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",h);
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);
con = "convertToMeters 1;";
ver = "vertices";
fprintf(f1,"%s \n",con);
fprintf(f1,"%s \n",ver);
s1 = blanks(4);
s2 = blanks(8);
s3 = blanks(12);
r = 0.01;
theta = 25; % in degres
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 = [1 0 0];
v4 = [1 r*cosd(theta/2) r*sind(theta/2)];
v5 = [1 r*cosd(theta/2) -r*sind(theta/2)];
fprintf(f1,"%s \n","(");
fprintf(f1,"%s (%d %d %d)\n",s1,v0);
fprintf(f1,"%s (%d %d %d)\n",s1,0,r*cosd(theta/2),r*sind(theta/2));
fprintf(f1,"%s (%d %d %d)\n",s1,v2);
fprintf(f1,"%s (%d %d %d)\n",s1,v3);
fprintf(f1,"%s (%d %d %d)\n",s1,v4);
fprintf(f1,"%s (%d %d %d)\n",s1,v5);
fprintf(f1,"%s \n",");");
fprintf(f1,"%s \n","blocks");
fprintf(f1,"%s \n","(");
fprintf(f1,"%s hex (0 3 5 2 0 3 4 1)(%d %d %d) SimpleGrading (%d %d %d)\n",s1,300,30,1,1,0.1,1);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"edges");
fprintf(f1,"%s \n",s1,"(");
fprintf(f1,"%s arc 1 2 (%d %d %d)\n",s1,1,0.2,1);
fprintf(f1,"%s arc 4 5 (%d %d %d)\n",s1,1.2,2,0);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"boundary");
fprintf(f1, '(\n');
fprintf(f1, '\t inlet \n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 1 2 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t outlet\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (3 5 4 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t top\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wall;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (1 4 5 2)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t front\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type symmetry;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 4 1)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t back\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type symmetry;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 2 5 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t axis\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type empty;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 3 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '); \n\n');
fprintf(f1, 'mergePatchPairs\n');
fprintf(f1, '(\n');
fprintf(f1, ');\n');
header15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //'
fprintf(f1, '%s\n',header15);
fclose(f1);
Coding of blockMeshDict file created by Matlab at symmetry BC at an angle of 45 :
close all
clear all
clc
f1 = fopen("blockMeshDict","w")
h1="/*--------------------------------*- C++ -*----------------------------------*\";
h2="| ========= | |";
h3="| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |";
h4="| \\ / O peration | Version: 4.0 |";
h5="| \\ / A nd | Web: www.OpenFOAM.org |";
h6="| \\/ M anipulation | |";
h7="\*---------------------------------------------------------------------------*/";
h = "FoamFile";
h8 = "{";
h9 ="version 2.0;";
h10 = "format ascii;";
h11 = "class dictionary;";
h12 = "object blockMeshDict;";
h13 = "}";
h14 = "// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //";
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",h);
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);
con = "convertToMeters 1;";
ver = "vertices";
fprintf(f1,"%s \n",con);
fprintf(f1,"%s \n",ver);
s1 = blanks(4);
s2 = blanks(8);
s3 = blanks(12);
r = 0.01;
theta = 45; % in degres
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 = [1 0 0];
v4 = [1 r*cosd(theta/2) r*sind(theta/2)];
v5 = [1 r*cosd(theta/2) -r*sind(theta/2)];
fprintf(f1,"%s \n","(");
fprintf(f1,"%s (%d %d %d)\n",s1,v0);
fprintf(f1,"%s (%d %d %d)\n",s1,0,r*cosd(theta/2),r*sind(theta/2));
fprintf(f1,"%s (%d %d %d)\n",s1,v2);
fprintf(f1,"%s (%d %d %d)\n",s1,v3);
fprintf(f1,"%s (%d %d %d)\n",s1,v4);
fprintf(f1,"%s (%d %d %d)\n",s1,v5);
fprintf(f1,"%s \n",");");
fprintf(f1,"%s \n","blocks");
fprintf(f1,"%s \n","(");
fprintf(f1,"%s hex (0 3 5 2 0 3 4 1)(%d %d %d) SimpleGrading (%d %d %d)\n",s1,300,30,1,1,0.1,1);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"edges");
fprintf(f1,"%s \n",s1,"(");
fprintf(f1,"%s arc 1 2 (%d %d %d)\n",s1,1,0.2,1);
fprintf(f1,"%s arc 4 5 (%d %d %d)\n",s1,1.2,2,0);
fprintf(f1,"%s \n",s1,");");
fprintf(f1,"%s \n",s1,"boundary");
fprintf(f1, '(\n');
fprintf(f1, '\t inlet \n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 1 2 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t outlet\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type patch;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (3 5 4 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t top\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type wall;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (1 4 5 2)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t front\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type symmetry;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 4 1)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t back\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type symmetry;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 2 5 3)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '\t axis\n');
fprintf(f1, '\t {\n');
fprintf(f1, '\t\t type empty;\n');
fprintf(f1, '\t\t faces\n');
fprintf(f1, '\t\t (\n');
fprintf(f1, '\t\t\t (0 3 3 0)\n');
fprintf(f1, '\t\t );\n');
fprintf(f1, '\t }\n');
fprintf(f1, '); \n\n');
fprintf(f1, 'mergePatchPairs\n');
fprintf(f1, '(\n');
fprintf(f1, ');\n');
header15='// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //'
fprintf(f1, '%s\n',header15);
fclose(f1);
Velocity profiles for wedge and symmetry Bc :
At an angle 10 for both wedge and symmetry

For an angle 25 degree both wedge and symmetry;


For an angle 45 degree both wedge and symmetry:


Shear stress for wedge and symmetry bc for diff angles like 10, 25, 45:
At an angle 10


At angle 25


At an angle of 45


conclusion:
This challenge would help me to understand the difference between the two boundary conditions and how to simulate them according to the problem statement.
We understand the results should not change due to the change in the Boundary conditions, and this is because the Physics of
the problem does not change and remains the same.
simulation across the arc of the wedge is not done, but whereas in the case of Symmetry Boundary Condition, the calculation across the arc of the wedge is done