Challenge

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

Objective:

To study the effect of the wedge angle and the Boundary Conditions on the simulation of an axisymmetric laminar flow in a cylindrical pipe.

The given wedge angles in degrees are-

  • 10
  • 25
  • 45

Axi-symmetric flow:

Flow pattern is axisymmetric when it is identical in every plane that passes through a certain straight line. The Related Courses straight line is the symmetry aids. Every longitudinal plane through the axis would exhibit the some streamline pattern.

Hagen Poiseuille’S Equation:

In non-ideal fluid dynamics, the Hagen-Poiseuille equation is a physical law that gives the pressure drop in an incompressible and Newtonian fluid in laminar flow flawing through a long cylindrical pipe of a constant cross section.

Fluid properties are constant (viscosity, density, etc)

Given:

  1. Reynolds number 2100
  2. Working fluid Water
  3. Fluid temperature: 250C
  4. Diameter of the pipe, D = 0.02 m
  5. Dynamic viscosity, (µ) =0.89 * 10-3 pa - s
  6. L = 2.52m
  7. D2

Average Velocity = / * D) = 0.09373 m/s

Maximum velocity = 0.18746 m/s

Pressure drop = 32 * 0.89*10-3 * 2.52/(0.02)2 = 16.187 mpa

The coding is

% Mat lab code for generating the block mesh dict file

% Wedge Boundary Condition

% Wedge angles = 10, 25, 65 degrees

clear all

close all

cic

% Inputs

% Wedge angle

% Take angle as input from 10, 25, degrees

Theta= input(‘Enter the value of wedge angle = ‘)

% Reynolds number

Re =2100;

% Diameter

D = 0.02;

% Length

L = 0.06 * Re * D;

% Radius

R = D/2;

% Dynamic viscosity

mu = 0.89e-3;

% Density

rho= 997.0;

%Kinematic viscosity

nu = mu/rho;

% pressure and velocity

V _ avg = Re * mu /( D * rho);

V _ max = 2* v_avg;

del _ P = (32 *mu*V_ avg*L) / D2);

Kin _p = del _pho/rho;

n1 = 50;

n2 = 1;

n3 = 300;

g factor = 0.5;

% Vertices of the wedge

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 contents of block mesh file

string1=’/*

string2=’== string3=’

string 4 = ‘

string5=’

string6=’

string7 = ‘*

string8=’FoamFile’;

string9=’{‘;

string10=’

string11=’

string12=’

string13=’

string14=’}’;

string 15 = ‘//

string 16 = ‘//

fpointer = fopen(‘blockMeshDict.txt’, ‘wt’ );

fprintf(fpointer,’%sn’, string1);

fprintf(fpointer,’%sn’,string2); fprintf(fpointer,’%sn’,string3);

fprintf(fpointer,’%sn’,string4); fprintf(fpointer,’%sn’,string5);

fprintf(fpointer,’%sn’,string6);

fprintf(fpointer,’%sn n’,string7);

fprintf(fpointer,’%sn’, string8);

fprintf(fpointer,’%sn’,string9); fprintf(fpointer,’%sn’,string10);

fprintf(fpointer,’%sn’,string11); fprintf(fpointer,’%sn’,string12);

fprintf(fpointer,’%sn’,string13);

fprintf(fpointer,’%sn’,string14);

fprintf(fpointer,’%sn n’,string15);

fprintf(fpointer, ‘%sn’,’convert to meters :,’);

f printf(f pointer,’%sn’,’vertices’,);

f print f(fpointer, ‘%sn’, ‘(‘);

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V0(1), V0(2), V0(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V1(1), V1(2), V1(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V2(1), V2(2), V2(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V3(1), V3(2), V3(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V4(1), V4(2), V4(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V5(1), V5(2), V5(3)));

f printf(f pointer,’%sn’,’);’);

f printf(f pointer,’n’);

fprintf(fpointer, ‘%sn’, ‘blacks’);

fprintf(fpointer, ‘%sn,’ ‘(‘);

fprintf(fpointer,’%s %s n’, blanks(5),’hex (0 1 2 0 3 4 5 3 ) (50 1 200) simple grading (0.5 1 1)’);

fprinsf(fpointer,’%sn’,’);’);

f printf(fpointer,’n’);

fprintf( fpointer,’%sn’, ‘edges’);

fprintf(fpointer,’%sn’,’(‘); fprintf(fpointer, '%s arc 1 2 (%f %f %f )n’, blanks(5),0,R,0);

fprintf(fpointer,’%s arc 4 5 (%f %f %f )n’, blanks(5),0,R,0);

fprintf(fpointer, ‘%sn’,’);’);

fprintf(fpointer, ‘n’);

fprintf(fpointer, ‘%sn’,’boundary’);

fprintf(fpointer,’%sn’,’(‘); fprintf(fpointer,’%s %sn’, blanks(5),’inlet’);

fprintf(fpointer,’%s %sn’, blanks(10),’type pitch;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0120)’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’out let ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type pitch;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (3 4 5 3)’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’front ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type wedge;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0 3 5 2 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’back ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type wedge;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0 143 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’pipe ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type wall;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (1 4 5 2 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’axis’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type empty;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0 3 3 0 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer, ‘%sn’,’);’);

fprintf(fpointer, ‘n’);

fprintf(fpointer, ‘%sn’, ‘ merge patch pairs’);

fprintf(fpointer, ‘%sn’,’(‘);

fprintf(fpointer, ‘%sn’,’);’);

fprintf(fpointer, ‘n’);

fprintf(fpointer, ‘%sn’, ‘ string 16 ’);

f close (f pointer );

Foam file

{

version 2.0:

format ascii;

class dictionary;

object blockMeshDict;

}

Convert to meters 1;

vertices

(

(0.000000 0.000000 0.000000)

(0.000000 0.009239 -0.003827)

(0.000000 0.009239 0.003827)

(2.520000 0.000000 0.000000)

(2.520000 0.009239 -0.003827)

(2.520000 0.009239 0.003827)

);

blocks

(

hex(0 1 2 0 3 4 5 3) (50 1 200) simple grading (0.5 1 1)

);

Edges;

(

arc 1 2 (0.0000000 0.010000 0.000000)

arc 4 5 (0.000000 0.010000 0.000000)

);

Boundary

(

Inelt

{

Type of patch ;

Faces

(

(0 1 2 0);

);

}

Outlet

{

Type patch;

Faces

(

(3 4 5 3);

);

}

Front

{

Type wedge:

Face

(

(0 1 4 3);

);

}

Pipe

{

Type wall:

Faces

(

(0 3 3 0);

);

}

);

merge patch pairs

(

);

Control Dict file for wedge boundary condition

Foam file

{

version 2.0:

format ascii;

class dictionary;

object blockMeshDict;

}

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

application icoFoam;

startFrom startTimed ;

startTime 0;

stopat endTime;

end time 10;

deltaT 0.001;

writeControl time step;

writeInterval 20;

purgewrite 0;

writeFonnat ascii;

writeCompression off;

time format general;

time precision 6;

run time modifiable true;

Pressure file for wedge boundary condition

Foam file

{

format ascii;

class volscalarfield;

object p;

}

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

Dimension [0 2 -2 0 0 0 0];

Internal field uniform 0 ;

Boundary field;

{

Inlet

{

Type zero gradient;

}

Outlet

{

Type fixed value;

Value uniform 0.0168682;

}

Axis

{

Type empty;

}

Pipe

{

Type zero gradient;

}

Front

{

Type wedge:

}

Back

{

Type wedge;

}

}

Velocity file for wedge boundary condition

Foam file

{

format ascii;

class vol vectorfield;

object u;

}

Dimension [0 1 -1 0 0 0 0];

Internal field uniform [0 0 0];

boundary field;

{

inlet

{

Type fixed value;

Value uniform (0.0937312 0 0);

}

outlet

{

Type zero gradient;

}

Axis

{

Type empty:

}

Pipe

{

Type no slip;

}

Front

{

type wedge:

}

Back

{

Type wedge;

}

}

Transport properties file for wedge boundary condition;

Foam file

{

format ascii;

class dictionary;

location constant;

object transport properties;

}

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

Nu = [0 -2 1 0 0 0 0] 8.927e- 07;

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

The code for symmetry boundary condition

% Matlab code for generating the block mesh dict file

% Wedge Boundary Condition

% Wedge angles = 10, 25, 45 degrees

clear all

close all

cic

% Inputs

% Wedge angle

% Take angle as input from 10, 25, degrees

Theta= input(‘Enter the value of wedge angle = ‘)

% Reynolds number

Re =2100;

% Diameter

D = 0.02;

% Length

L = 0.06 * Re * D;

% Radius

R = D/2;

% Dynamic viscosity

mu = 0.89e-3;

% Density

rho= 997.0;

%Kinematic viscosity

nu = mu/rho;

% pressure and velocity

V _ avg = Re * mu /( D * rho);

V _ max = 2* v_avg;

del _ P = (32 *mu*V_ avg*L) / D2);

Kin _p = del _pho/rho;

n1 = 50;

n2 = 1;

n3 = 300;

g factor = 0.5;

% Vertices of the wedge

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 contents of block mesh file

string1=’/*

string2=’== string3=’

string 4 = ‘

string5=’

string6=’

string7 = ‘*

string8=’FoamFile’;

string9=’{‘;

string10=’

string11=’

string12=’

string13=’

string14=’}’;

string 15 = ‘//

string 16 = ‘//

fpointer = fopen(‘blockMeshDict.txt’, ‘wt’ );

fprintf(fpointer,’%sn’, string1);

fprintf(fpointer,’%sn’,string2); fprintf(fpointer,’%sn’,string3);

fprintf(fpointer,’%sn’,string4); fprintf(fpointer,’%sn’,string5);

fprintf(fpointer,’%sn’,string6);

fprintf(fpointer,’%sn n’,string7);

fprintf(fpointer,’%sn’, string8);

fprintf(fpointer,’%sn’,string9); fprintf(fpointer,’%sn’,string10);

fprintf(fpointer,’%sn’,string11); fprintf(fpointer,’%sn’,string12);

fprintf(fpointer,’%sn’,string13);

fprintf(fpointer,’%sn’,string14);

fprintf(fpointer,’%sn n’,string15);

fprintf(fpointer, ‘%sn’,’convert to meters 1:,’);

f printf(f pointer,’%sn’,’vertices’,);

f print f(fpointer, ‘%sn’, ‘(‘);

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V0(1), V0(2), V0(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V1(1), V1(2), V1(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V2(1), V2(2), V2(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V3(1), V3(2), V3(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V4(1), V4(2), V4(3)));

f print f(f pointer, ‘%s (%f %f %f )n’, blanks(5), V5(1), V5(2), V5(3)));

f printf(f pointer,’%sn’,’);’);

f printf(f pointer,’n’);

fprintf(fpointer, ‘%sn’, ‘blacks’);

fprintf(fpointer, ‘%sn,’ ‘(‘);

fprintf(fpointer,’%s %s n’, blanks(5),’hex (0 1 2 0 3 4 5 3 ) (50 1 200) simple grading (0.5 1 1)’);

fprinsf(fpointer,’%sn’,’);’);

f printf(fpointer,’n’);

fprintf( fpointer,’%sn’, ‘edges’);

fprintf(fpointer,’%sn’,’(‘); fprintf(fpointer, '%s arc 1 2 (%f %f %f )n’, blanks(5),0,R,0);

fprintf(fpointer,’%s arc 4 5 (%f %f %f )n’, blanks(5),0,R,0);

fprintf(fpointer, ‘%sn’,’);’);

fprintf(fpointer, ‘n’);

fprintf(fpointer, ‘%sn’,’boundary’);

fprintf(fpointer,’%sn’,’(‘); fprintf(fpointer,’%s %sn’, blanks(5),’inlet’);

fprintf(fpointer,’%s %sn’, blanks(10),’type pitch;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0120)’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’out let ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type pitch;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (3 4 5 3)’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’front ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type wedge;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0 3 5 2 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’back ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type wedge;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0 143 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’pipe ’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type wall;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (1 4 5 2 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer,’%s %sn’, blanks(5),’axis’);

fprintf(fpointer,’%s %sn’, blanks(5),’{’);

fprintf(fpointer,’%s %sn’, blanks(10),’type empty;’);

fprintf(fpointer,’%s %sn’, blanks(10),’faces’);

fprintf(fpointer,’%s %sn’, blanks(10),’(‘);

fprintf(fpointer,’%s %sn’, blanks(15),’ (0 3 3 0 )’);

fprintf(fpointer,’%s %sn’, blanks(10),’);’);

fprintf(fpointer,’%s %sn’, blanks(5),’}’);

fprintf(fpointer, ‘%sn’,’);’);

fprintf(fpointer, ‘n’);

fprintf(fpointer, ‘%sn’, ‘ merge patch pairs’);

fprintf(fpointer, ‘%sn’,’(‘);

fprintf(fpointer, ‘%sn’,’);’);

fprintf(fpointer, ‘n’);

fprintf(fpointer, ‘%sn’, ‘ string 16 ’);

f close (f pointer );

Symmetry boundary at 45 degrees condition:

Foam file

{

version 2.0:

format ascii;

class dictionary;

object blockMeshDict;

}

Convert to meters 1;

vertices

(

(0.000000 0.000000 0.000000)

(0.000000 0.009239 -0.003827)

(0.000000 0.009239 0.003827)

(2.520000 0.000000 0.000000)

(2.520000 0.009239 -0.003827)

(2.520000 0.009239 0.003827)

);

blocks

(

hex(0 1 2 0 3 4 5 3) (50 1 200) simple grading (0.5 1 1)

);

Edges;

(

arc 1 2 (0.0000000 0.010000 0.000000)

arc 4 5 (0.000000 0.010000 0.000000)

);

Boundary

(

Inelt

{

Type of patch ;

Faces

(

(0 1 2 0);

);

}

Outlet

{

Type patch;

Faces

(

(3 4 5 3);

);

}

Front

{

Type symmetry faces:

(

(0 1 4 3);

);

}

back

{

Type Symmetry faces;

(

(0 1 4 3 );

)

}

Pipe

{

Type wall faces;

(

(1 4 52);

}

axis

{

Type wall:

Faces

(

(0 3 3 0);

);

}

);

merge patch pairs

(

);

Symmetry boundary condition at 25 degres

Foam file

{

version 2.0:

format ascii;

class dictionary;

object blockMeshDict;

}

Convert to meters 1;

vertices

(

(0.000000 0.000000 0.000000)

(0.000000 0.009763 -0.002164)

(0.000000 0.009239 0.002164)

(2.520000 0.000000 0.000000)

(2.520000 0.009239 -0.002164)

(2.520000 0.009239 0.002164)

);

blocks

(

hex(0 1 2 0 3 4 5 3) (50 1 200) simple grading (0.5 1 1)

);

Edges;

(

arc 1 2 (0.0000000 0.010000 0.000000)

arc 4 5 (0.000000 0.010000 0.000000)

);

Boundary

(

Inelt

{

Type of patch ;

Faces

(

(0 1 2 0);

);

}

Outlet

{

Type patch;

Faces

(

(3 4 5 3);

);

}

Front

{

Type symmetry faces:

(

(0 1 4 3);

);

}

back

{

Type Symmetry faces;

(

(0 1 4 3 );

)

}

Pipe

{

Type wall faces;

(

(1 4 52);

}

axis

{

Type wall:

Faces

(

(0 3 3 0);

);

}

);

merge patch pairs

(

);

Symmetry boundary condition at 10 degrees

Foam file

{

version 2.0:

format ascii;

class dictionary;

object blockMeshDict;

}

Convert to meters 1;

vertices

(

(0.000000 0.000000 0.000000)

(0.000000 0.009239 -0.000872)

(0.000000 0.009239 0.000872)

(2.520000 0.000000 0.000000)

(2.520000 0.009239 -0.000872)

(2.520000 0.009239 0.000872)

);

blocks

(

hex(0 1 2 0 3 4 5 3) (50 1 200) simple grading (0.5 1 1)

);

Edges;

(

arc 1 2 (0.0000000 0.010000 0.000000)

arc 4 5 (0.000000 0.010000 0.000000)

);

Boundary

(

Inelt

{

Type of patch ;

Faces

(

(0 1 2 0);

);

}

Outlet

{

Type patch;

Faces

(

(3 4 5 3);

);

}

Front

{

Type symmetry faces:

(

(0 1 4 3);

);

}

back

{

Type Symmetry faces;

(

(0 1 4 3 );

)

}

Pipe

{

Type wall faces;

(

(1 4 52);

}

axis

{

Type wall:

Faces

(

(0 3 3 0);

);

}

);

merge patch pairs

(

);

Pressure file symmetry boundary condition:

Foam file

{

format ascii;

class volscalarfield;

object p;

}

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

Dimension [0 2 -2 0 0 0 0];

Internal field uniform 0 ;

Boundary field;

{

Inlet

{

Type zero gradient;

}

Outlet

{

Type fixed value;

Value uniform 0.0168682;

}

Axis

{

Type empty;

}

Pipe

{

Type zero gradient;

}

Front

{

Type wedge:

}

Back

{

Type wedge;

}

}

Velocity file for symmetry boundary condition

Foam file

{

format ascii;

class vol vectorfield;

object u;

}

Dimension [0 1 -1 0 0 0 0];

Internal field uniform [0 0 0];

boundary field;

{

inlet

{

Type fixed value;

Value uniform (0.0937312 0 0);

}

outlet

{

Type zero gradient;

}

Axis

{

Type empty:

}

Pipe

{

Type no slip;

}

Front

{

type wedge:

}

Back

{

Type symmetry;

}

}

Output (velocity profile);

pressure profile :

velocity graph :

pressure graph :

shear stress graph :

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.