Challenge

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

AIM:

To simulate an axi-symmetric flow by applying the wedge boundary condition.

Code Explanation:

  • First We are creating Topology of Geometry. In order create a Topology we need Vertices, Hexa Blocks, Boundarys of the Geometry.
  • A point is a location in 3-D space, defined by a vector in units of metres (). The points are compiled into a list and each point is referred to by a label, which represents its position in the list, starting from zero.
  • A face is an ordered list of points, where a point is referred to by its label. The ordering of point labels in a face is such that each two neighbouring points are connected by an edge,Faces are compiled into a list and each face is referred to by its label, representing its position in the list. The direction of the face normal vector is defined by the right-hand rule.
  • Internal faces, which connect two cells (and it can never be more than two). For each internal face, the ordering of the point labels is such that the face normal points into the cell with the larger label
  • Boundary faces, which belong to one cell since they coincide with the boundary of the domain. A boundary face is therefore addressed by one cell(only) and a boundary patch.

CELL:

A cell is a list of faces in arbitrary order. Cells must have the properties listed below.

  • The cells must be contiguous,i.e. completely cover the computational domain and must not overlap one another.
  • Every cell must be closed geometrically, such that when all face area vectors are oriented to point outwards of the cell, their sum should equal the zero vector to machine accuracy;
  • Every cell must be closed topologically such that all the edges in a cell are used by exactly two faces of the cell in question.

BLOCKMESH:

  • The mesh is generated from a dictionary file named blockMeshDict located in the system (or constant/polyMesh) directory of a case. blockMesh reads this dictionary, generates the mesh and writes out the mesh data to points and faces, cells and boundary files in the same directory.
  • The principle behind blockMesh is to decompose the domain geometry into a set of 1 or more three dimensional, hexahedral blocks.
  • Each block of the geometry is defined by 8 vertices, one at each corner of a hexahedron. The vertices are written in a list so that each vertex can be accessed using its label
  • Each vertex numbered according to the list,that the first element of the list has label ‘0’
  • Each block has a local coordinate system(x1,x2,x3) that must be right-handed. A right-handed set of axes is defined such that to an observer looking down the Oz axis, with" O 'nearest them, the arc from a point on the 'Ox' axis to a point on the 'Oy' axis is in a clockwise sense.

The local coordinate system is defined by the order in which the vertices are presented in the block definition according to:

  • the axis origin is the first entry in the block definition, vertex 0 in our example;
  • the x1 direction is described by moving from vertex 0 to vertex 1;
  • the x2 direction is described by moving from vertex 1 to vertex 2;
  • vertices 0, 1, 2, 3 define the plane x3=0;
  • vertex 4 is found by moving from vertex 0 in the x3 direction;
  • vertices 5,6 and 7 are similarly found by moving in the x3 direction from vertices 1,2 and 3 respectively.

ConvertToMeters :0.001,

  • The convertToMeters keyword specifies a scaling factor by which all vertex coordinates in the mesh description are multiplied.
  • means that all coordinates are multiplied by 0.001

The vertices: Example:

vertices
(
( 0 0 0 ) // vertex number 0
( 1 0 0.1) // vertex number 1
( 1.1 1 0.1) // vertex number 2
( 0 1 0.1) // vertex number 3
(-0.1 -0.1 1 ) // vertex number 4
( 1.3 0 1.2) // vertex number 5
( 1.4 1.1 1.3) // vertex number 6
( 0 1 1.1) // vertex number 7
)

The edges:

  • Each edge joining 2 vertex points is assumed to be straight by default. However any edge may be specified to be curved by entries in a list named edges.
  • Each entry for a curved edge begins with a keyword specifying the type of curve from those listed below.

    • arc: a circular arc with a single interpolation point or angle + axis (see below).
    • spline: spline curve using a list of interpolation points
    • polyLine: a set of lines with list of interpolation points
    • BSpline: a B-spline curve with list of interpolation points
    • line: a straight line, the default which requires no edge specification
    • edges
      (
      arc 1 5 (1.1 0.0 0.5)
      );

The blocks:

The block definitions are contained in a list named blocks

blocks
(
hex (0 1 2 3 4 5 6 7) // vertex numbers
(10 10 10) // numbers of cells in each direction
simpleGrading (1 2 3) // cell expansion ratios
);

  • The first entry is the shape identifier of the block,The shape is always hex since the blocks are always hexahedra.
  • The second entry gives the number of cells in each of the x1 x2 and x3 directions for that block.
  • The third entry gives the cell expansion ratios for each direction in the block,The expansion ratio enables the mesh to be graded, or refined, in specified directions. The ratio is that of the width of the end cell along one edge of a block to the width of the start cell along that edge, as shown
  • Expansion ratio===/.
  • The simple grading option specifies uniform expansions in the local x1 x2 and x3 directions respectively with only 3 expansion ratios, e.g.
    simpleGrading (1 2 3).

POLYMESH:

  • A polygonal mesh is a collection of vertices and their connectivity that models the surface a polyhedral object.

The constant directory contains a full description of the case polyMesh in a subdirectory polyMesh. The polyMesh description is based around faces and, as already discussed, internal faces connect 2 cells and boundary faces address a cell and a boundary patch. Each face is therefore assigned an ‘owner’ cell and ‘neighbour’ cell so that the connectivity across a given face can simply be described by the owner and neighbour cell labels. In the case of boundaries, the connected cell is the owner and the neighbour is assigned the label ‘1’.

points,
a list of vectors describing the cell vertices, where the first vector in the list represents vertex 0, the second vector represents vertex 1, etc.
faces,
a list of faces, each face being a list of indices to vertices in the points list, where again, the first entry in the list represents face 0, etc.
owner,
a list of owner cell labels, the index of entry relating directly to the index of the face, so that the first entry in the list is the owner label for face 0, the second entry is the owner label for face 1, etc;
neighbour,
a list of neighbour cell labels
boundary,
a list of patches, containing a dictionary entry for each patch, declared using the patch name.

SYMMETRY'S= for 10 ,25, 45.

/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Geometric parameterization //

D 	0.004;                                     //diameter of pipe//
r 	#calc "0.5*$D";                            //radius of pipe//
Re 	2100;                                     //reynolds Number//
Le 	#calc "0.06*$Re*$D" ;                    //Entrance Length//
L 	#calc "$Le+0.5" ;                        //Total length of pipe//
angle 	10;                                      // angle in degress//
theta 	#calc "degToRad($angle)"; 	        // angle in radians//
py 	#calc "$r*cos(0.5*$theta)" ;              // component1//
pz 	#calc "$r*sin(0.5*$theta)" ;             // component2//
nz 	#calc "-1*$r*sin(0.5*$theta)";           // component3//  


convertoMeters 1;

vertices
(
(0 0 0)                              // vertex0//
(0 $py $pz)                        // vertex1//
(0 $py $nz)                        //vertex2//
($L 0 0)                          // vertex3//
($L $py $pz)                     // vertex4//
($L $py $nz)                    // vertex5//
);


blocks
(
    hex (0 3 5 2 0 3 4 1) (200 20 1) simpleGrading (1 1 1) 
);
edges
(
	arc 1 2(0 $r 0)
	arc 4 5($L $r 0)
);

boundary
(
 inlet
 {
   type patch;
   faces
   (
     (0 1 2 0) 
   );
  }
  outlet
  {
    type patch;
    faces
    (
      (3 5 4 3)
    );
   }
   front
   {
     type symmetry;
     faces
     (
       (0 3 4 1)
     );
   }
   back
   {
    type symmetry;
    faces
    (
      ( 0 2 5 3)
    );
   }
   Top
   {
     type wall;
     faces
     (
       (2 1 4 5)
     );
   }
   bottom
   { 
     type empty;
     faces
     ( 
       (0 3 3 0)
     );
    }               
);       

mergePatchPairs
(
);

// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Geometric parameterization //

D 	0.004;                                     //diameter of pipe//
r 	#calc "0.5*$D";                            //radius of pipe//
Re 	2100;                                     //reynolds Number//
Le 	#calc "0.06*$Re*$D" ;                    //Entrance Length//
L 	#calc "$Le+0.5" ;                        //Total length of pipe//
angle 	25;                                      // angle in degress//
theta 	#calc "degToRad($angle)"; 	        // angle in radians//
py 	#calc "$r*cos(0.5*$theta)" ;              // component1//
pz 	#calc "$r*sin(0.5*$theta)" ;             // component2//
nz 	#calc "-1*$r*sin(0.5*$theta)";           // component3//  


convertoMeters 1;

vertices
(
(0 0 0)                              // vertex0//
(0 $py $pz)                        // vertex1//
(0 $py $nz)                        //vertex2//
($L 0 0)                          // vertex3//
($L $py $pz)                     // vertex4//
($L $py $nz)                    // vertex5//
);


blocks
(
    hex (0 3 5 2 0 3 4 1) (200 20 1) simpleGrading (1 1 1) 
);
edges
(
	arc 1 2(0 $r 0)
	arc 4 5($L $r 0)
);

boundary
(
 inlet
 {
   type patch;
   faces
   (
     (0 1 2 0) 
   );
  }
  outlet
  {
    type patch;
    faces
    (
      (3 5 4 3)
    );
   }
   front
   {
     type symmetry;
     faces
     (
       (0 3 4 1)
     );
   }
   back
   {
    type symmetry;
    faces
    (
      ( 0 2 5 3)
    );
   }
   Top
   {
     type wall;
     faces
     (
       (2 1 4 5)
     );
   }
   bottom
   { 
     type empty;
     faces
     ( 
       (0 3 3 0)
     );
    }               
);       

mergePatchPairs
(
);

// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Geometric parameterization //

D 	0.004;                                     //diameter of pipe//
r 	#calc "0.5*$D";                            //radius of pipe//
Re 	2100;                                     //reynolds Number//
Le 	#calc "0.06*$Re*$D" ;                    //Entrance Length//
L 	#calc "$Le+0.5" ;                        //Total length of pipe//
angle 	45;                                      // angle in degress//
theta 	#calc "degToRad($angle)"; 	        // angle in radians//
py 	#calc "$r*cos(0.5*$theta)" ;              // component1//
pz 	#calc "$r*sin(0.5*$theta)" ;             // component2//
nz 	#calc "-1*$r*sin(0.5*$theta)";           // component3//  


convertoMeters 1;

vertices
(
(0 0 0)                              // vertex0//
(0 $py $pz)                        // vertex1//
(0 $py $nz)                        //vertex2//
($L 0 0)                          // vertex3//
($L $py $pz)                     // vertex4//
($L $py $nz)                    // vertex5//
);


blocks
(
    hex (0 3 5 2 0 3 4 1) (200 40 1) simpleGrading (1 1 1) 
);
edges
(
	arc 1 2(0 $r 0)
	arc 4 5($L $r 0)
);

boundary
(
 inlet
 {
   type patch;
   faces
   (
     (0 1 2 0) 
   );
  }
  outlet
  {
    type patch;
    faces
    (
      (3 5 4 3)
    );
   }
   front
   {
     type symmetry;
     faces
     (
       (0 3 4 1)
     );
   }
   back
   {
    type symmetry;
    faces
    (
      ( 0 2 5 3)
    );
   }
   Top
   {
     type wall;
     faces
     (
       (2 1 4 5)
     );
   }
   bottom
   { 
     type empty;
     faces
     ( 
       (0 3 3 0)
     );
    }               
);       

mergePatchPairs
(
);

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

Wedge: for 10, 25 ,45

/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Geometric parameterization //

D 	0.004;                                    //diameter of pipe//
r 	#calc "0.5*$D";                            //radius of pipe//
Re 	2100;                                  //reynolds Number//
Le 	#calc "0.06*$Re*$D" ;                   //Entrance Length//
L 	#calc "$Le+0.5" ;                        //Total length of pipe//
angle 	10;                               // angle in degress//
theta 	#calc "degToRad($angle)"; 	// angle in radians//
py 	#calc "$r*cos(0.5*$theta)" ;            // component1//
pz 	#calc "$r*sin(0.5*$theta)" ;           // component2//
nz 	#calc "-1*$r*sin(0.5*$theta)";         // component3//  


convertoMeters 1;

vertices
(
(0 0 0)                              // vertex0//
(0 $py $pz)                        // vertex1//
(0 $py $nz)                        //vertex2//
($L 0 0)                          // vertex3//
($L $py $pz)                     // vertex4//
($L $py $nz)                    // vertex5//
);


blocks
(
    hex (0 3 5 2 0 3 4 1) (200 20 1) simpleGrading (1 1 1) 
);

edges
(
);

boundary
(
 inlet
 {
   type patch;
   faces
   (
     (0 1 2 0) 
   );
  }
  outlet
  {
    type patch;
    faces
    (
      (3 5 4 3)
    );
   }
   front
   {
     type wedge;
     faces
     (
       (0 3 4 1)
     );
   }
   back
   {
    type wedge;
    faces
    (
      ( 0 2 5 3)
    );
   }
   Top
   {
     type wall;
     faces
     (
       (2 1 4 5)
     );
   }
   bottom
   { 
     type empty;
     faces
     ( 
       (0 3 3 0)
     );
    }               
);       

mergePatchPairs
(
);

// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Geometric parameterization //

D 	0.004;                                    //diameter of pipe//
r 	#calc "0.5*$D";                            //radius of pipe//
Re 	2100;                                  //reynolds Number//
Le 	#calc "0.06*$Re*$D" ;                   //Entrance Length//
L 	#calc "$Le+0.5" ;                        //Total length of pipe//
angle 	25;                               // angle in degress//
theta 	#calc "degToRad($angle)"; 	// angle in radians//
py 	#calc "$r*cos(0.5*$theta)" ;            // component1//
pz 	#calc "$r*sin(0.5*$theta)" ;           // component2//
nz 	#calc "-1*$r*sin(0.5*$theta)";         // component3//  


convertoMeters 1;

vertices
(
(0 0 0)                              // vertex0//
(0 $py $pz)                        // vertex1//
(0 $py $nz)                        //vertex2//
($L 0 0)                          // vertex3//
($L $py $pz)                     // vertex4//
($L $py $nz)                    // vertex5//
);


blocks
(
    hex (0 3 5 2 0 3 4 1) (200 20 1) simpleGrading (1 1 1) 
);

edges
(
);

boundary
(
 inlet
 {
   type patch;
   faces
   (
     (0 1 2 0) 
   );
  }
  outlet
  {
    type patch;
    faces
    (
      (3 5 4 3)
    );
   }
   front
   {
     type wedge;
     faces
     (
       (0 3 4 1)
     );
   }
   back
   {
    type wedge;
    faces
    (
      ( 0 2 5 3)
    );
   }
   Top
   {
     type wall;
     faces
     (
       (2 1 4 5)
     );
   }
   bottom
   { 
     type empty;
     faces
     ( 
       (0 3 3 0)
     );
    }               
);       

mergePatchPairs
(
);

// ************************************************************************* //
/*--------------------------------*- 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;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Geometric parameterization //

D 	0.004;                                    //diameter of pipe//
r 	#calc "0.5*$D";                            //radius of pipe//
Re 	2100;                                  //reynolds Number//
Le 	#calc "0.06*$Re*$D" ;                   //Entrance Length//
L 	#calc "$Le+0.5" ;                        //Total length of pipe//
angle 	45;                               // angle in degress//
theta 	#calc "degToRad($angle)"; 	// angle in radians//
py 	#calc "$r*cos(0.5*$theta)" ;            // component1//
pz 	#calc "$r*sin(0.5*$theta)" ;           // component2//
nz 	#calc "-1*$r*sin(0.5*$theta)";         // component3//  


convertoMeters 1;

vertices
(
(0 0 0)                              // vertex0//
(0 $py $pz)                        // vertex1//
(0 $py $nz)                        //vertex2//
($L 0 0)                          // vertex3//
($L $py $pz)                     // vertex4//
($L $py $nz)                    // vertex5//
);


blocks
(
    hex (0 3 5 2 0 3 4 1) (200 20 1) simpleGrading (1 1 1) 
);

edges
(
);

boundary
(
 inlet
 {
   type patch;
   faces
   (
     (0 1 2 0) 
   );
  }
  outlet
  {
    type patch;
    faces
    (
      (3 5 4 3)
    );
   }
   front
   {
     type wedge;
     faces
     (
       (0 3 4 1)
     );
   }
   back
   {
    type wedge;
    faces
    (
      ( 0 2 5 3)
    );
   }
   Top
   {
     type wall;
     faces
     (
       (2 1 4 5)
     );
   }
   bottom
   { 
     type empty;
     faces
     ( 
       (0 3 3 0)
     );
    }               
);       

mergePatchPairs
(
);

// ************************************************************************* //
/*--------------------------------*- 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         5;

deltaT          0.002;

writeControl    timeStep;

writeInterval   500;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


// ************************************************************************* //
/*--------------------------------*- 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    "constant";
    object      transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

nu              [0 2 -1 0 0 0 0] 8.9267803410231e-07;


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

Pressure& Velocity : for symmetry

/*--------------------------------*- 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
{
    inlet
    {
	type            zeroGradient;
    }

    outlet
    {
        
        type            fixedValue;
        value           uniform 0;       
    }

    front
    {
        type            symmetry;   // symmetry
    }
    
    back
    {
        type            symmetry;   // symmetry
    }  
 
    wall
    {
        type            zeroGradient;
    }   
    
    axis
    {
        type            empty;
    }
}
// ************************************************************************* //
/*--------------------------------*- 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 0 0);

boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform (0.468655967903711 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }

    front
    {
        type            symmetry;   // symmetry
    }
    
    back
    {
        type            symmetry;   // symmetry
    }  
 
    wall
    {
        type            noSlip;
    }   
    
    axis
    {
        type            empty;
    }
    
}

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

Pressure& Velocity: for wedge

/*--------------------------------*- 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
{
    inlet
    {
	type            zeroGradient;
    }

    outlet
    {
        
        type            fixedValue;
        value           uniform 0;       
    }

    front
    {
        type            wedge;   // symmetry
    }
    
    back
    {
        type            wedge;   // symmetry
    }  
 
    wall
    {
        type            zeroGradient;
    }   
    
    axis
    {
        type            empty;
    }
}
// ************************************************************************* //
/*--------------------------------*- 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 0 0);

boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform (0.468655967903711 0 0);
    }

    outlet
    {
        type            zeroGradient;
    }

    front
    {
        type            wedge;   // symmetry
    }
    
    back
    {
        type            wedge;   // symmetry
    }  
 
    wall
    {
        type            noSlip;
    }   
    
    axis
    {
        type            empty;
    }
    
}

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

Shear stress, velocity,pressure profiles:

Symmetry: 10,25 45

symmetry 10:

Symmetry 25:

symmetry 45:

Wedge 10 25 45 :

Wedge 10:

Wedge 25:

Wedge45:

Comparision Profiles:

The comparision profiles gives that the same output by comparing with the analytical solution the analytical formulaes are

U_analytical=2*avg(1-r^2/R^2)
r^2=arc length
R^2=radius
tau_analytical=-0.00089*(y2-y1)/(x2-x1)
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.