FreeFOAM The Cross-Platform CFD Toolkit
blockCells.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Description
25  private member of block. Creates cells for the block.
26 
27 \*---------------------------------------------------------------------------*/
28 
29 #include <OpenFOAM/error.H>
30 #include "block.H"
31 
32 // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
33 
34 void Foam::block::blockCells()
35 {
36  label ni = blockDef_.n().x();
37  label nj = blockDef_.n().y();
38  label nk = blockDef_.n().z();
39 
40  label cellNo = 0;
41 
42  for (label k = 0; k <= nk - 1; k++)
43  {
44  for (label j = 0; j <= nj - 1; j++)
45  {
46  for (label i = 0; i <= ni - 1; i++)
47  {
48  cells_[cellNo].setSize(8);
49 
50  cells_[cellNo][0] = vtxLabel(i, j, k);
51  cells_[cellNo][1] = vtxLabel(i+1, j, k);
52  cells_[cellNo][2] = vtxLabel(i+1, j+1, k);
53  cells_[cellNo][3] = vtxLabel(i, j+1, k);
54  cells_[cellNo][4] = vtxLabel(i, j, k+1);
55  cells_[cellNo][5] = vtxLabel(i+1, j, k+1);
56  cells_[cellNo][6] = vtxLabel(i+1, j+1, k+1);
57  cells_[cellNo][7] = vtxLabel(i, j+1, k+1);
58  cellNo++;
59  }
60  }
61  }
62 }
63 
64 // ************************ vim: set sw=4 sts=4 et: ************************ //