Files
OpenFOAM-12/tutorials/resources/blockMesh/angledDuct

126 lines
2.8 KiB
C++

/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Block definition for a porosity with an angled inlet/outlet
// the porosity is not aligned with the main axes
convertToMeters 0.001;
angle 45;
width 50;
lenInlet 150;
lenPoro 100;
lenOutlet 100;
yzCells 20;
nInletCells 15;
nPoroCells 20;
nOutletCells 20;
vertices #codeStream
{
codeInclude
#{
#include "pointField.H"
#include "transformField.H"
#};
code
#{
const scalar halfWidth = ($width)/2.0;
// Length between the bend and outlet
const scalar distOutlet = $lenPoro + $lenOutlet;
pointField points
({
point(0, 0, -halfWidth), // pt 0
point($lenPoro, 0, -halfWidth), // pt 1
point(distOutlet, 0, -halfWidth), // pt 2
point(0, $width, -halfWidth), // pt 3
point($lenPoro, $width, -halfWidth), // pt 4
point(distOutlet, $width, -halfWidth) // pt 5
});
// Rotate points around z-axis
points = transform(Rz(degToRad($angle)), points);
// Append points 6 and 7
points.append(points[0] - point($lenInlet, 0, 0)); // pt 6
points.append(points[3] - point($lenInlet, 0, 0)); // pt 7
// Duplicate z points
points.append(cmptMultiply(points, vector(1, 1, -1)));
os << points;
#};
};
blocks
(
// Inlet block
hex (6 0 3 7 14 8 11 15)
inlet ($nInletCells $yzCells $yzCells) simpleGrading (1 1 1)
// Porosity block
hex (0 1 4 3 8 9 12 11)
porosity ($nPoroCells $yzCells $yzCells) simpleGrading (1 1 1)
// Outlet block
hex (1 2 5 4 9 10 13 12)
outlet ($nOutletCells $yzCells $yzCells) simpleGrading (1 1 1)
);
defaultPatch
{
name walls;
type wall;
}
boundary
(
porosityWall
{
type wall;
faces
(
(8 9 12 11)
(0 3 4 1)
(0 1 9 8)
(3 11 12 4)
);
}
inlet
{
type patch;
faces
(
(14 15 7 6)
);
}
outlet
{
type patch;
faces
(
(2 5 13 10)
);
}
);
// ************************************************************************* //