refineBoundaryLayers.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | cfMesh: A library for mesh generation
4  \\ / O peration |
5  \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6  \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9  This file is part of cfMesh.
10 
11  cfMesh 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.
15 
16  cfMesh 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 cfMesh. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  refineBoundaryLayers
26 
27 Description
28  Refine existing boundary layers
29 
30 SourceFiles
31  refineBoundaryLayers.C
32  refineBoundaryLayersFunctions.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef refineBoundaryLayers_H
37 #define refineBoundaryLayers_H
38 
39 #include "polyMeshGenModifier.H"
40 #include "meshSurfaceEngine.H"
41 #include "DynList.H"
42 #include "labelLongList.H"
43 #include "labelPair.H"
44 
45 #include <map>
46 #include <set>
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 // Forward declarations
54 class meshSurfaceEngine;
55 
56 /*---------------------------------------------------------------------------*\
57  Class refineBoundaryLayers Declaration
58 \*---------------------------------------------------------------------------*/
59 
61 {
62  //- Reference to the mesh
64 
65  //- pointer to mesh surface engine
66  mutable meshSurfaceEngine* msePtr_;
67 
68  //- global number of boundary layers
70 
71  //- global thickness ratio
72  scalar globalThicknessRatio_;
73 
74  //- global maximum thickness of the first layer
76 
77  //- number of boundary layers for user-selected patches
78  std::map<word, label> numLayersForPatch_;
79 
80  //- local thickness ratio for selected patches
81  std::map<word, scalar> thicknessRatioForPatch_;
82 
83  //- local maximum layer thickness for selected patches
84  std::map<word, scalar> maxThicknessForPatch_;
85 
86  //- allow discontinuous layers for patch
87  std::set<word> discontinuousLayersForPatch_;
88 
89  //- the name of a subset which shall contain the indices
90  //- of the cells in the boundary layer
92 
93  //- check whether the refinement is already executed
94  bool done_;
95 
96  //- a flag whether a 2D mesh generation is active or not
97  bool is2DMesh_;
98 
99  //- shall the layer be refined into two layers with the first one
100  //- matching the thickness of the n-1 ones
101  bool specialMode_;
102 
103  //- information about existing boundary layers at patches
104  //- only available layers
106 
107  //- which patches are part of a single layer
109 
110  //- a containing the number of layers which shall be generated above
111  //- a boundary face
113 
114  //- a list of edges which shall be refined
116 
117  //- split edges at point
119 
120  //- new vertices for on edges which shall be refined
122 
123  //- a graph containing information which new faces were generated
124  //- from an existing face
126 
127  //- a graph containing faces after layer refinement
129 
130  // Private member functions
131  //- Return reference to meshSurfaceEngine
132  const meshSurfaceEngine& surfaceEngine() const;
133 
134  //- analyse layers to check their topology
135  bool analyseLayers();
136 
137  //- generate new points on edges, faces and in cells
138  void generateNewVertices();
139 
140  //- refine a given face and return the new faces
141  //- generates new points at cross-split faces
142  void refineFace
143  (
144  const face& f,
145  const FixedList<label, 2>& nLayersInDirection,
146  DynList<DynList<label, 4>, 128>& newFaces
147  );
148 
149  //- generate a matrix of points generated by splitting a face
150  //- and return them in the local i, j system of the face
151  void sortFacePoints
152  (
153  const label faceI,
154  DynList<DynList<label> >& facePoints,
155  const label transpose = false
156  ) const;
157 
158  //- generate a matrix of faces generated by splitting a face
159  //- and return them in the local i, j, system of the face
160  void sortFaceFaces
161  (
162  const label faceI,
163  DynList<DynList<label> >& faceFaces,
164  const label transpose = false
165  ) const;
166 
167  //- map split edges onto a cell
168  void generateNewFaces();
169 
170  //- generate new cells for a prism with one boundary face
172  (
173  const label cellI,
174  DynList<DynList<DynList<label, 8>, 10>, 64>& cellsFromCell
175  ) const;
176 
177  //- a helper function which stores faces generated from
178  //- an existing face into new cells
180  (
181  const label faceI,
182  const bool reverseOrientation,
183  const label normalDirection,
184  const bool maxCoordinate,
185  const label nLayersI,
186  const label nLayersJ,
187  const label nLayersK,
188  DynList<DynList<DynList<label, 4>, 6>, 256>& cellsFromCell
189  ) const;
190 
191  //- generate new cells and add them to the mesh
192  void generateNewCells();
193 
194  // Nested classes
195  class refineEdgeHexCell
196  {
197  // Private data
198  //- label of cell
199  const label cellI_;
200 
201  //- number of cells in local direction i
203 
204  //- number of cells in locatiol direction j
206 
207  //- container for new cells
209 
210  //- const reference to the boundary layer class
212 
213  //- faces sorted into directions of a hex shape
215 
216  //- information about orientation of faces
217  //- false means the orientation as expected
218  //- true means wrong orientation
220 
221  //- points on cross-split faces
223 
224  // Private member functions
225  //- populate faceInDirection_nad wrongFaceOrientation_
227 
228  //- populate new cells with new faces generated from already
229  //- existing faces
230  void populateExistingFaces();
231 
232  //- generate new internal faces and tore them to new cells
233  void generateMissingFaces();
234 
235  public:
236 
237  // Constructor
238  //- construct from cell label and the refineBoundaryLayers
240  (
241  const label cellI,
242  const refineBoundaryLayers& ref
243  );
244 
245  // Public member functions
246  inline const DynList<DynList<DynList<label, 4>, 6>, 256>&
247  newCells() const
248  {
249  return cellsFromCell_;
250  }
251  };
252 
253  class refineCornerHexCell
254  {
255  // Private data
256  //- label of cell
257  const label cellI_;
258 
259  //- number of cells in local direction i
261 
262  //- number of cells in local direction j
264 
265  //- number of cells in local direction k
267 
268  //- split edge in directions
270 
271  //- container for new cells
273 
274  //- reference to the boundary layer class
276 
277  //- faces sorted into directions of a hex shape
279 
280  //- information about orientation of faces
281  //- false means the orientation as expected
282  //- true means wrong orientation
284 
285  //- points on cross-split faces
287 
288  //- points inside the cell
290 
291  // Private member functions
292  //- populate faceInDirection_nad wrongFaceOrientation_
294 
295  //- populate new cells with new faces generated from already
296  //- existing faces
297  void populateExistingFaces();
298 
299  //- generate missing points inside the cell
300  void generateNewPoints();
301 
302  //- generate new internal faces and tore them to new cells
303  void generateMissingFaces();
304 
305  public:
306 
307  // Constructor
308  //- construct from cell label and the refineBoundaryLayers
310  (
311  const label cellI,
312  const refineBoundaryLayers& ref
313  );
314 
315  // Public member functions
316  inline const DynList<DynList<DynList<label, 4>, 6>, 256>&
317  newCells() const
318  {
319  return cellsFromCell_;
320  }
321  };
322 
323  // Private member functions
324 
325  //- Disallow bitwise copy construct
327 
328  //- Disallow bitwise assignment
329  void operator=(const refineBoundaryLayers&);
330 
331 public:
332 
333  // Constructors
334 
335  //- Construct from mesh reference
337 
338  // Destructor
340 
341  // Public member functions
342 
343  // Settings
344  //- set no refinement flag
345  void avoidRefinement();
346 
347  //- activate 2D layer refinement
348  void activate2DMode();
349 
350  //- set the global number of boundary layers
351  void setGlobalNumberOfLayers(const label nLayers);
352 
353  //- set the global thickness ratio (default is 1)
354  void setGlobalThicknessRatio(const scalar thicknessRatio);
355 
356  //- set the maximum thickness of the first boundary layer
357  void setGlobalMaxThicknessOfFirstLayer(const scalar maxThickness);
358 
359  //- set the number of layers for a patch
360  //- the settings override the global settings
362  (
363  const word& patchName,
364  const label nLayers
365  );
366 
367  //- set the thickness ratio for a patch
368  //- it overrides the global settings
370  (
371  const word& patchName,
372  const scalar thicknessRatio
373  );
374 
375  //- set the maximum thickness of the first layer for a patch
377  (
378  const word& patchName,
379  const scalar maxThickness
380  );
381 
382  //- set whether the settings for a given patch are valid for the
383  //- patch only, or whether they extend over th whole sheet
384  //- the selected patch belongs to
385  //- the default behaviour is to apply the patch settings to the whole
386  //- sheet
387  void setInteruptForPatch(const word& patchName);
388 
389  //- set the flag to store the boundary layer cells in a subset
390  void setCellSubset(const word subsetName = "layerCells");
391 
392  //- this flag refinement of a layer into a single one matching
393  //- the thickness of the n layers. This functionality is intended to
394  //- create additional layer that shall be improved by the boundary
395  //- layer smoother in order to leave the inside points intact
396  void activateSpecialMode();
397 
398  // Worker
399  //- performs refinement based on the given settings
400  void refineLayers();
401 
402  // Post information
403  //- provide the list of points in the boundary layer
405 
406  //- create a subset containing points in the boundary layer
407  void pointsInBndLayer(const word subsetName="pointsInBndLayer");
408 
409  // Static member functions
410  //- read the settings from dictionary
411  static void readSettings(const dictionary&, refineBoundaryLayers&);
412 };
413 
414 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
415 
416 } // End namespace Foam
417 
418 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
419 
420 #endif
421 
422 // ************************************************************************* //
Foam::refineBoundaryLayers::refineCornerHexCell::determineFacesInDirections
void determineFacesInDirections()
populate faceInDirection_nad wrongFaceOrientation_
Definition: refineBoundaryLayersCells.C:656
Foam::refineBoundaryLayers::specialMode_
bool specialMode_
Definition: refineBoundaryLayers.H:100
Foam::refineBoundaryLayers::refineEdgeHexCell::determineFacesInDirections
void determineFacesInDirections()
populate faceInDirection_nad wrongFaceOrientation_
Definition: refineBoundaryLayersCells.C:307
Foam::refineBoundaryLayers::globalThicknessRatio_
scalar globalThicknessRatio_
global thickness ratio
Definition: refineBoundaryLayers.H:71
Foam::refineBoundaryLayers::newFaces_
VRWGraph newFaces_
a graph containing faces after layer refinement
Definition: refineBoundaryLayers.H:127
Foam::refineBoundaryLayers::refineCornerHexCell::generateMissingFaces
void generateMissingFaces()
generate new internal faces and tore them to new cells
Definition: refineBoundaryLayersCells.C:1024
Foam::refineBoundaryLayers::splitEdgesAtPoint_
VRWGraph splitEdgesAtPoint_
split edges at point
Definition: refineBoundaryLayers.H:117
Foam::refineBoundaryLayers::refineLayers
void refineLayers()
performs refinement based on the given settings
Definition: refineBoundaryLayers.C:326
Foam::refineBoundaryLayers::generateNewFaces
void generateNewFaces()
map split edges onto a cell
Definition: refineBoundaryLayersFaces.C:815
Foam::refineBoundaryLayers::refineEdgeHexCell::cellI_
const label cellI_
label of cell
Definition: refineBoundaryLayers.H:198
Foam::refineBoundaryLayers::setGlobalThicknessRatio
void setGlobalThicknessRatio(const scalar thicknessRatio)
set the global thickness ratio (default is 1)
Definition: refineBoundaryLayers.C:132
Foam::refineBoundaryLayers::pointsInBndLayer
void pointsInBndLayer(labelLongList &)
provide the list of points in the boundary layer
Definition: refineBoundaryLayers.C:375
Foam::refineBoundaryLayers::refineCornerHexCell::splitEdgeInDirection_
FixedList< label, 3 > splitEdgeInDirection_
split edge in directions
Definition: refineBoundaryLayers.H:268
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::refineBoundaryLayers::refineFace
void refineFace(const face &f, const FixedList< label, 2 > &nLayersInDirection, DynList< DynList< label, 4 >, 128 > &newFaces)
Definition: refineBoundaryLayersFaces.C:48
Foam::refineBoundaryLayers::surfaceEngine
const meshSurfaceEngine & surfaceEngine() const
Return reference to meshSurfaceEngine.
Definition: refineBoundaryLayers.C:39
Foam::refineBoundaryLayers::refineCornerHexCell::nLayersK_
label nLayersK_
number of cells in local direction k
Definition: refineBoundaryLayers.H:265
Foam::refineBoundaryLayers::is2DMesh_
bool is2DMesh_
a flag whether a 2D mesh generation is active or not
Definition: refineBoundaryLayers.H:96
Foam::refineBoundaryLayers::refineCornerHexCell::newCells
const DynList< DynList< DynList< label, 4 >, 6 >, 256 > & newCells() const
Definition: refineBoundaryLayers.H:316
Foam::refineBoundaryLayers::msePtr_
meshSurfaceEngine * msePtr_
pointer to mesh surface engine
Definition: refineBoundaryLayers.H:65
meshSurfaceEngine
Calculates surface of the mesh.
Foam::refineBoundaryLayers::refineEdgeHexCell::refineEdgeHexCell
refineEdgeHexCell(const label cellI, const refineBoundaryLayers &ref)
construct from cell label and the refineBoundaryLayers
Definition: refineBoundaryLayersCells.C:633
Foam::refineBoundaryLayers::sortFaceFaces
void sortFaceFaces(const label faceI, DynList< DynList< label > > &faceFaces, const label transpose=false) const
Definition: refineBoundaryLayersFaces.C:668
Foam::refineBoundaryLayers::sortFacePoints
void sortFacePoints(const label faceI, DynList< DynList< label > > &facePoints, const label transpose=false) const
Definition: refineBoundaryLayersFaces.C:445
Foam::refineBoundaryLayers::operator=
void operator=(const refineBoundaryLayers &)
Disallow bitwise assignment.
Foam::refineBoundaryLayers::splitEdges_
LongList< edge > splitEdges_
a list of edges which shall be refined
Definition: refineBoundaryLayers.H:114
Foam::refineBoundaryLayers::facesFromFace_
VRWGraph facesFromFace_
Definition: refineBoundaryLayers.H:124
Foam::refineBoundaryLayers::maxThicknessForPatch_
std::map< word, scalar > maxThicknessForPatch_
local maximum layer thickness for selected patches
Definition: refineBoundaryLayers.H:83
Foam::refineBoundaryLayers::numLayersForPatch_
std::map< word, label > numLayersForPatch_
number of boundary layers for user-selected patches
Definition: refineBoundaryLayers.H:77
Foam::refineBoundaryLayers::refineBoundaryLayers
refineBoundaryLayers(const refineBoundaryLayers &)
Disallow bitwise copy construct.
Foam::refineBoundaryLayers::thicknessRatioForPatch_
std::map< word, scalar > thicknessRatioForPatch_
local thickness ratio for selected patches
Definition: refineBoundaryLayers.H:80
polyMeshGenModifier.H
Foam::refineBoundaryLayers::generateNewVertices
void generateNewVertices()
generate new points on edges, faces and in cells
Definition: refineBoundaryLayersFunctions.C:322
Foam::refineBoundaryLayers::setMaxThicknessOfFirstLayerForPatch
void setMaxThicknessOfFirstLayerForPatch(const word &patchName, const scalar maxThickness)
set the maximum thickness of the first layer for a patch
Definition: refineBoundaryLayers.C:254
Foam::refineBoundaryLayers::setGlobalNumberOfLayers
void setGlobalNumberOfLayers(const label nLayers)
set the global number of boundary layers
Definition: refineBoundaryLayers.C:108
Foam::polyMeshGen
Definition: polyMeshGen.H:46
Foam::refineBoundaryLayers::refineEdgeHexCell::cellsFromCell_
DynList< DynList< DynList< label, 4 >, 6 >, 256 > cellsFromCell_
container for new cells
Definition: refineBoundaryLayers.H:207
Foam::refineBoundaryLayers::activateSpecialMode
void activateSpecialMode()
Definition: refineBoundaryLayers.C:321
Foam::refineBoundaryLayers::discontinuousLayersForPatch_
std::set< word > discontinuousLayersForPatch_
allow discontinuous layers for patch
Definition: refineBoundaryLayers.H:86
Foam::refineBoundaryLayers::refineEdgeHexCell::nLayersI_
label nLayersI_
number of cells in local direction i
Definition: refineBoundaryLayers.H:201
Foam::refineBoundaryLayers::nLayersAtBndFace_
labelList nLayersAtBndFace_
Definition: refineBoundaryLayers.H:111
Foam::refineBoundaryLayers::refineCornerHexCell::facePoints_
FixedList< DynList< DynList< label > >, 6 > facePoints_
points on cross-split faces
Definition: refineBoundaryLayers.H:285
Foam::refineBoundaryLayers::cellSubsetName_
word cellSubsetName_
Definition: refineBoundaryLayers.H:90
Foam::LongList< edge >
Foam::refineBoundaryLayers::refineCornerHexCell::nLayersI_
label nLayersI_
number of cells in local direction i
Definition: refineBoundaryLayers.H:259
Foam::refineBoundaryLayers::refineCornerHexCell::cellPoints_
DynList< DynList< DynList< label > > > cellPoints_
points inside the cell
Definition: refineBoundaryLayers.H:288
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Foam::refineBoundaryLayers::refineEdgeHexCell::populateExistingFaces
void populateExistingFaces()
Definition: refineBoundaryLayersCells.C:444
Foam::refineBoundaryLayers::refineEdgeHexCell::faceOrientation_
FixedList< bool, 6 > faceOrientation_
Definition: refineBoundaryLayers.H:218
Foam::refineBoundaryLayers::done_
bool done_
check whether the refinement is already executed
Definition: refineBoundaryLayers.H:93
Foam::refineBoundaryLayers::refineCornerHexCell::generateNewPoints
void generateNewPoints()
generate missing points inside the cell
Definition: refineBoundaryLayersCells.C:875
Foam::refineBoundaryLayers::refineCornerHexCell::cellsFromCell_
DynList< DynList< DynList< label, 4 >, 6 >, 256 > cellsFromCell_
container for new cells
Definition: refineBoundaryLayers.H:271
Foam::refineBoundaryLayers::refineEdgeHexCell::faceInDirection_
FixedList< label, 6 > faceInDirection_
faces sorted into directions of a hex shape
Definition: refineBoundaryLayers.H:213
Foam::refineBoundaryLayers::refineEdgeHexCell
Definition: refineBoundaryLayers.H:194
Foam::refineBoundaryLayers
Definition: refineBoundaryLayers.H:59
Foam::refineBoundaryLayers::refineCornerHexCell::faceInDirection_
FixedList< label, 6 > faceInDirection_
faces sorted into directions of a hex shape
Definition: refineBoundaryLayers.H:277
Foam::refineBoundaryLayers::layerAtPatch_
List< DynList< label > > layerAtPatch_
Definition: refineBoundaryLayers.H:104
Foam::refineBoundaryLayers::refineCornerHexCell::nLayersJ_
label nLayersJ_
number of cells in local direction j
Definition: refineBoundaryLayers.H:262
Foam::refineBoundaryLayers::refineEdgeHexCell::newCells
const DynList< DynList< DynList< label, 4 >, 6 >, 256 > & newCells() const
Definition: refineBoundaryLayers.H:246
Foam::refineBoundaryLayers::setNumberOfLayersForPatch
void setNumberOfLayersForPatch(const word &patchName, const label nLayers)
Definition: refineBoundaryLayers.C:185
Foam::refineBoundaryLayers::refineCornerHexCell::cellI_
const label cellI_
label of cell
Definition: refineBoundaryLayers.H:256
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam::refineBoundaryLayers::globalNumLayers_
label globalNumLayers_
global number of boundary layers
Definition: refineBoundaryLayers.H:68
Foam::refineBoundaryLayers::setThicknessRatioForPatch
void setThicknessRatioForPatch(const word &patchName, const scalar thicknessRatio)
Definition: refineBoundaryLayers.C:218
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:18
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
meshSurfaceEngine.H
Foam::DynList
Definition: DynList.H:53
Foam::refineBoundaryLayers::refineCornerHexCell::bndLayers_
const refineBoundaryLayers & bndLayers_
reference to the boundary layer class
Definition: refineBoundaryLayers.H:274
Foam::refineBoundaryLayers::setCellSubset
void setCellSubset(const word subsetName="layerCells")
set the flag to store the boundary layer cells in a subset
Definition: refineBoundaryLayers.C:308
Foam::refineBoundaryLayers::globalMaxThicknessFirstLayer_
scalar globalMaxThicknessFirstLayer_
global maximum thickness of the first layer
Definition: refineBoundaryLayers.H:74
Foam::refineBoundaryLayers::refineCornerHexCell::faceOrientation_
FixedList< bool, 6 > faceOrientation_
Definition: refineBoundaryLayers.H:282
Foam::refineBoundaryLayers::~refineBoundaryLayers
~refineBoundaryLayers()
Definition: refineBoundaryLayers.C:74
Foam::refineBoundaryLayers::analyseLayers
bool analyseLayers()
analyse layers to check their topology
Definition: refineBoundaryLayersFunctions.C:57
f
labelList f(nPoints)
Foam::refineBoundaryLayers::setGlobalMaxThicknessOfFirstLayer
void setGlobalMaxThicknessOfFirstLayer(const scalar maxThickness)
set the maximum thickness of the first boundary layer
Definition: refineBoundaryLayers.C:156
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Foam::refineBoundaryLayers::refineCornerHexCell::refineCornerHexCell
refineCornerHexCell(const label cellI, const refineBoundaryLayers &ref)
construct from cell label and the refineBoundaryLayers
Definition: refineBoundaryLayersCells.C:1297
Foam::FixedList< label, 2 >
Foam::refineBoundaryLayers::patchesInLayer_
List< DynList< word > > patchesInLayer_
which patches are part of a single layer
Definition: refineBoundaryLayers.H:107
labelLongList.H
Foam::refineBoundaryLayers::storeFacesIntoCells
void storeFacesIntoCells(const label faceI, const bool reverseOrientation, const label normalDirection, const bool maxCoordinate, const label nLayersI, const label nLayersJ, const label nLayersK, DynList< DynList< DynList< label, 4 >, 6 >, 256 > &cellsFromCell) const
Definition: refineBoundaryLayersCells.C:226
Foam::refineBoundaryLayers::generateNewCells
void generateNewCells()
generate new cells and add them to the mesh
Definition: refineBoundaryLayersCells.C:1325
Foam::refineBoundaryLayers::refineCornerHexCell
Definition: refineBoundaryLayers.H:252
Foam::refineBoundaryLayers::setInteruptForPatch
void setInteruptForPatch(const word &patchName)
Definition: refineBoundaryLayers.C:289
Foam::refineBoundaryLayers::refineEdgeHexCell::nLayersJ_
label nLayersJ_
number of cells in locatiol direction j
Definition: refineBoundaryLayers.H:204
Foam::face
A face is a list of labels corresponding to mesh vertices.
Definition: face.H:75
Foam::refineBoundaryLayers::generateNewCellsPrism
void generateNewCellsPrism(const label cellI, DynList< DynList< DynList< label, 8 >, 10 >, 64 > &cellsFromCell) const
generate new cells for a prism with one boundary face
Definition: refineBoundaryLayersCells.C:43
Foam::refineBoundaryLayers::activate2DMode
void activate2DMode()
activate 2D layer refinement
Definition: refineBoundaryLayers.C:95
Foam::refineBoundaryLayers::refineEdgeHexCell::cellPoints_
FixedList< DynList< DynList< label > >, 2 > cellPoints_
points on cross-split faces
Definition: refineBoundaryLayers.H:221
Foam::refineBoundaryLayers::readSettings
static void readSettings(const dictionary &, refineBoundaryLayers &)
read the settings from dictionary
Definition: refineBoundaryLayers.C:406
Foam::refineBoundaryLayers::refineEdgeHexCell::bndLayers_
const refineBoundaryLayers & bndLayers_
const reference to the boundary layer class
Definition: refineBoundaryLayers.H:210
Foam::refineBoundaryLayers::avoidRefinement
void avoidRefinement()
set no refinement flag
Definition: refineBoundaryLayers.C:81
Foam::VRWGraph
Definition: VRWGraph.H:101
Foam::refineBoundaryLayers::mesh_
polyMeshGen & mesh_
Reference to the mesh.
Definition: refineBoundaryLayers.H:62
Foam::refineBoundaryLayers::refineEdgeHexCell::generateMissingFaces
void generateMissingFaces()
generate new internal faces and tore them to new cells
Definition: refineBoundaryLayersCells.C:508
Foam::refineBoundaryLayers::newVerticesForSplitEdge_
VRWGraph newVerticesForSplitEdge_
new vertices for on edges which shall be refined
Definition: refineBoundaryLayers.H:120
Foam::refineBoundaryLayers::refineCornerHexCell::populateExistingFaces
void populateExistingFaces()
Definition: refineBoundaryLayersCells.C:848
Foam::meshSurfaceEngine
Definition: meshSurfaceEngine.H:54
DynList.H
labelPair.H