34 void Foam::blockMesh::createPoints()
const
40 Info<<
"Creating points with scale " << scaleFactor_ <<
endl;
43 points_.setSize(nPoints_);
47 const pointField& blockPoints = blocks[blocki].points();
51 const label nx = blocks[blocki].density().x();
52 const label ny = blocks[blocki].density().y();
53 const label nz = blocks[blocki].density().z();
55 label v0 = blocks[blocki].pointLabel(0, 0, 0);
56 label vi1 = blocks[blocki].pointLabel(1, 0, 0);
57 scalar diStart =
mag(blockPoints[vi1] - blockPoints[v0]);
59 label vinM1 = blocks[blocki].pointLabel(nx-1, 0, 0);
60 label vin = blocks[blocki].pointLabel(nx, 0, 0);
61 scalar diFinal =
mag(blockPoints[vin] - blockPoints[vinM1]);
63 label vj1 = blocks[blocki].pointLabel(0, 1, 0);
64 scalar djStart =
mag(blockPoints[vj1] - blockPoints[v0]);
65 label vjnM1 = blocks[blocki].pointLabel(0, ny-1, 0);
66 label vjn = blocks[blocki].pointLabel(0, ny, 0);
67 scalar djFinal =
mag(blockPoints[vjn] - blockPoints[vjnM1]);
69 label vk1 = blocks[blocki].pointLabel(0, 0, 1);
70 scalar dkStart =
mag(blockPoints[vk1] - blockPoints[v0]);
71 label vknM1 = blocks[blocki].pointLabel(0, 0, nz-1);
72 label vkn = blocks[blocki].pointLabel(0, 0, nz);
73 scalar dkFinal =
mag(blockPoints[vkn] - blockPoints[vknM1]);
75 Info<<
" Block " << blocki <<
" cell size :" <<
nl
76 <<
" i : " << scaleFactor_*diStart <<
" .. "
77 << scaleFactor_*diFinal <<
nl
78 <<
" j : " << scaleFactor_*djStart <<
" .. "
79 << scaleFactor_*djFinal <<
nl
80 <<
" k : " << scaleFactor_*dkStart <<
" .. "
81 << scaleFactor_*dkFinal <<
nl
85 forAll(blockPoints, blockPointi)
91 blockOffsets_[blocki] + blockPointi
93 ] = scaleFactor_ * blockPoints[blockPointi];
99 void Foam::blockMesh::createCells()
const
109 cells_.setSize(nCells_);
115 const List<FixedList<label, 8>>& blockCells = blocks[blocki].cells();
117 forAll(blockCells, blockCelli)
119 labelList cellPoints(blockCells[blockCelli].size());
121 forAll(cellPoints, cellPointi)
123 cellPoints[cellPointi] =
126 blockCells[blockCelli][cellPointi]
127 + blockOffsets_[blocki]
132 cells_[celli] = cellShape(
hex, cellPoints,
true);
142 const polyPatch& patchTopologyFaces
147 labelList blockLabels = patchTopologyFaces.polyPatch::faceCells();
151 forAll(patchTopologyFaces, patchTopologyFaceLabel)
153 const label blocki = blockLabels[patchTopologyFaceLabel];
155 faceList blockFaces = blocks[blocki].blockShape().faces();
157 forAll(blockFaces, blockFaceLabel)
161 blockFaces[blockFaceLabel]
162 == patchTopologyFaces[patchTopologyFaceLabel]
166 blocks[blocki].boundaryPatches()[blockFaceLabel].size();
176 forAll(patchTopologyFaces, patchTopologyFaceLabel)
178 const label blocki = blockLabels[patchTopologyFaceLabel];
180 faceList blockFaces = blocks[blocki].blockShape().faces();
182 forAll(blockFaces, blockFaceLabel)
186 blockFaces[blockFaceLabel]
187 == patchTopologyFaces[patchTopologyFaceLabel]
190 const List<FixedList<label, 4>>& blockPatchFaces =
191 blocks[blocki].boundaryPatches()[blockFaceLabel];
193 forAll(blockPatchFaces, blockFaceLabel)
201 blockPatchFaces[blockFaceLabel][0]
202 + blockOffsets_[blocki]
209 label facePointLabel = 1;
217 blockPatchFaces[blockFaceLabel][facePointLabel]
218 + blockOffsets_[blocki]
236 else if (nUnique == 3)
238 patchFaces[faceLabel++] = face
249 patchFaces.setSize(faceLabel);
255 void Foam::blockMesh::createPatches()
const
257 const polyPatchList& topoPatches = topology().boundaryMesh();
264 patches_.setSize(topoPatches.size());
266 forAll(topoPatches, patchi)
268 patches_[patchi] = createPatchFaces(topoPatches[patchi]);