1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
4 \\ / O peration | Version: 3.2
5 \\ / A nd | Web: http://www.foam-extend.org
6 \\/ M anipulation | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation, either version 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
26 \*---------------------------------------------------------------------------*/
31 #include "labelList.H"
32 #include "pointField.H"
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 /*---------------------------------------------------------------------------*\
41 Class hexBlock Declaration
42 \*---------------------------------------------------------------------------*/
48 //- Handedness of the block
56 //- Number of point in each direction
61 //- Handedness of the block
62 handed blockHandedness_;
68 // Private Member Functions
70 //- Disallow default bitwise copy construct
71 hexBlock(const hexBlock&);
73 //- Disallow default bitwise assignment
74 void operator=(const hexBlock&);
76 //- Vertex addressing inside the block
77 inline label vtxLabel(label i, label j, label k) const;
79 //- Calculate handedness of block
86 //- Construct from components
112 label nBlockPoints() const
114 return (xDim_ + 1)*(yDim_ + 1)*(zDim_ + 1);
117 label nBlockCells() const
119 return xDim_*yDim_*zDim_;
122 //- Return block points
123 const pointField& points() const
125 if (blockHandedness_ == noPoints)
127 FatalErrorIn("hexBlock::points() const")
128 << "points not read in yet"
129 << abort(FatalError);
135 //- Return block cells
136 labelListList blockCells() const;
138 //- Return block patch faces given direction and range limits
139 // From the cfx manual: direction
140 // 0 = solid (3-D patch),
141 // 1 = high i, 2 = high j, 3 = high k
142 // 4 = low i, 5 = low j, 6 = low k
143 faceList patchFaces(label direc, const labelList& range) const;
146 //- Read block points either with or without blanking after every block.
147 // If twoDThickness > 0 reads (half) the points and extrudes the
148 // points in z direction.
151 const bool readBlank,
152 const scalar twoDThicknes,
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 } // End namespace Foam
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 // ************************************************************************* //