Challenge

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

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.