meshOctreeAddressing.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  meshOctreeAddressing
26 
27 Description
28  Automatic octree for mesh generation. This class checks if the current
29  octree resolution is enough to resolve all surface features
30 
31 SourceFiles
32  meshOctreeAddressing.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef meshOctreeAddressing_H
37 #define meshOctreeAddressing_H
38 
39 #include "FRWGraph.H"
40 #include "VRWGraph.H"
42 #include "face.H"
43 #include "edge.H"
44 #include "DynList.H"
45 #include "Map.H"
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 // Forward declarations
53 class meshOctree;
54 class IOdictionary;
55 
56 /*---------------------------------------------------------------------------*\
57  Class meshOctreeAddressing Declaration
58 \*---------------------------------------------------------------------------*/
59 
61 {
62  // Private data
63  //- reference to the octree
64  const meshOctree& octree_;
65 
66  //- reference to the dictionary
67  const dictionary& meshDict_;
68 
69  //- use DATA boxes
70  bool useDATABoxes_;
71 
72  //- number of created octree nodes
73  mutable label nNodes_;
74 
75  //- coordinates of octree nodes
77 
78  //- node labels
79  mutable VRWGraph* nodeLabelsPtr_;
80 
81  //- node leaves
83 
84  //- identify which boxes should be used as mesh cells
86 
87  //- identify created nodes as OUTERNODE or INNERNODE
89 
90  // Additional addressing useful for some algorithms
91  //- faces of the octree
95 
96  //- octree box-faces addressing
97  mutable VRWGraph* leafFacesPtr_;
98 
99  //- node-faces addressing
100  mutable VRWGraph* nodeFacesPtr_;
101 
102  //- leaf-leaves addressing
103  mutable VRWGraph* leafLeavesPtr_;
104 
105  //- edges of the octree
107 
108  //- edges-leaves addressing
109  mutable VRWGraph* edgeLeavesPtr_;
110 
111  //- leaf-edges addressing
112  mutable VRWGraph* leafEdgesPtr_;
113 
114  //- node-edges addressing
115  mutable VRWGraph* nodeEdgesPtr_;
116 
117  //- face-edges addressing
118  mutable VRWGraph* faceEdgesPtr_;
119 
120  //- edge-faces addressing
121  mutable VRWGraph* edgeFacesPtr_;
122 
123  //- global octree point label
125 
126  //- global point to local label addressing
128 
129  //- point-processors addressing
130  mutable VRWGraph* pointProcsPtr_;
131 
132  //- global octree face label
134 
135  //- global face label to local label addressing
137 
138  //- face-processors addressing
139  mutable VRWGraph* faceProcsPtr_;
140 
141  //- global leaf label
143 
144  //- global leaf label to local label addressing for octree leaves
146 
147  //- leaf at procs
148  mutable VRWGraph* leafAtProcsPtr_;
149 
150  // Private member functions
151  //- calculate octreePointsPtr_
152  void createOctreePoints() const;
153 
154  //- calculate nodeLabelsPtr_
155  void createNodeLabels() const;
156 
157  //- calculate nodeLeavesPtr_
158  void createNodeLeaves() const;
159 
160  //- assemble boxTypePtr_ list
161  void findUsedBoxes() const;
162 
163  //- calculate nodeTypePtr_
164  void calculateNodeType() const;
165 
166  //- calculate faces
167  void createOctreeFaces() const;
168 
169  //- calculate leaf-faces addressing
170  void calculateLeafFaces() const;
171 
172  //- calculate node-faces addressing
173  void calculateNodeFaces() const;
174 
175  //- calculate leaf-leaves addressing
176  void calculateLeafLeaves() const;
177 
178  //- calculate edges
179  void createOctreeEdges() const;
180 
181  //- calculate leaf-edges
182  void calculateLeafEdges() const;
183 
184  //- calculate edge-leaves addressing
185  void calculateEdgeLeaves() const;
186 
187  //- calculate edge-faces
188  void calculateEdgeFaces() const;
189 
190  //- Clear allocated data
191  void clearOut();
192  void clearBoxTypes();
193  void clearNodeAddressing();
194  void clearOctreeFaces();
195  void clearAddressing();
197 
198  //- check if distinct parts are glued together
199  void checkGluedRegions();
200 
201  // Private member functions for parallel runs
202 
203  void calcGlobalPointLabels() const;
204  void calcGlobalFaceLabels() const;
205  void calcGlobalLeafLabels() const;
206 
207  // Private copy constructor
208  //- Disallow default bitwise copy construct
210 
211  //- Disallow default bitwise assignment
212  void operator=(const meshOctreeAddressing&);
213 
214 public:
215 
216  // Constructors
217 
218  //- Construct from surface and dictionary
220  (
221  const meshOctree& mo,
222  const dictionary& dict,
223  bool useDATABoxes = false
224  );
225 
226  // Destructor
227 
229 
230  // Enumerators
231 
232  enum octreeCubeTypes
233  {
234  NONE = 0,
235  MESHCELL = 1,
236  BOUNDARY = 2,
237  SPLITHEX = 4,
239  OUTERNODE = 16,
240  BOUNDARYNODE = 32
241  };
242 
243  // Member Functions
244 
245  //- check if there exist any non-signly connected edges and vertices
246  //- in the octree mesh. This is primarily needed
247  //- for the cartesian template
249 
250  //- return number of octree nodes
251  inline label numberOfNodes() const;
252 
253  //- return coordinates of octree vertices
254  inline const pointField& octreePoints() const;
255 
256  //- return nodeLabels
257  inline const VRWGraph& nodeLabels() const;
258 
259  //- return nodeLeaves
260  inline const FRWGraph<label, 8>& nodeLeaves() const;
261 
262  //- return which octree boxes are used for mesh creation
263  inline const List<direction>& boxType() const;
264 
265  //- return type of node (INNERNODE,or OUTERNODE)
266  inline const List<direction>& nodeType() const;
267 
268  //- set box type
269  inline void setBoxType(const label boxI, const direction type);
270 
271  //- return octree faces, created for MESHCELL boxes
272  inline const VRWGraph& octreeFaces() const;
273 
274  //- return owners of octree faces
275  inline const labelLongList& octreeFaceOwner() const;
276 
277  //- return neighbours of octree faces
278  inline const labelLongList& octreeFaceNeighbour() const;
279 
280  //- return octree box-faces addressing
281  inline const VRWGraph& leafFaces() const;
282 
283  //- checks if the face is intersected by the surface
284  bool isIntersectedFace(const label fI) const;
285 
286  //- return leaf-leaves addressing
287  inline const VRWGraph& leafLeaves() const;
288 
289  //- return node-faces addressing
290  inline const VRWGraph& nodeFaces() const;
291 
292  //- return octree edges, created for MESHCELL boxes
293  inline const LongList<edge>& octreeEdges() const;
294 
295  //- return edge-leaves addressing
296  inline const VRWGraph& edgeLeaves() const;
297 
298  //- return leaf-edges addressing
299  inline const VRWGraph& leafEdges() const;
300 
301  //- checks if the edge is intersected by the surface
302  bool isIntersectedEdge(const label eI) const;
303  void edgeIntersections
304  (
305  const label eI,
306  DynList<point>& intersections
307  ) const;
308 
309  //- return node-edges addressing
310  inline const VRWGraph& nodeEdges() const;
311 
312  //- return face-edges addressing
313  inline const VRWGraph& faceEdges() const;
314 
315  //- return edge-faces addressing
316  inline const VRWGraph& edgeFaces() const;
317 
318  //- return const reference to meshOctree
319  inline const meshOctree& octree() const;
320 
321  //- find cubes around an edge (cubes must be at the same level)
322  void cubesAroundEdge
323  (
324  const label leafI,
325  const direction eI,
326  FixedList<label, 4>& edgeCubes
327  ) const;
328 
329  //- find edge centre if it exists
330  label findEdgeCentre(const label leafI, const direction eI) const;
331 
332  // Access to data needed for parallel execution
333 
334  //- return global point labels
335  inline const labelLongList& globalPointLabel() const;
336 
337  //- global point label to local label. Only for processors points
338  inline const Map<label>& globalToLocalPointAddressing() const;
339 
340  //- processors which contain an octree point
341  inline const VRWGraph& pointAtProcs() const;
342 
343  //- return global labels of octree faces
344  inline const labelLongList& globalFaceLabel() const;
345 
346  //- return global face label to face label. Only for processor faces
347  inline const Map<label>& globalToLocalFaceAddressing() const;
348 
349  //- return processors which contain each octree face
350  inline const VRWGraph& faceAtProcs() const;
351 
352  //- return global labels of octree leaves
353  inline const labelLongList& globalLeafLabel() const;
354 
355  //- return processors which contain each octree leaf
356  inline const VRWGraph& leafAtProcs() const;
357 
358  //- return global leaf label to local label addressing
359  inline const Map<label>& globalToLocalLeafAddressing() const;
360 };
361 
362 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
363 
364 } // End namespace Foam
365 
366 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
367 
368 #include "meshOctreeAddressingI.H"
369 
370 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
371 
372 #endif
373 
374 // ************************************************************************* //
Foam::meshOctreeAddressing::globalPointLabelPtr_
labelLongList * globalPointLabelPtr_
global octree point label
Definition: meshOctreeAddressing.H:123
Foam::meshOctreeAddressing::checkGluedRegions
void checkGluedRegions()
check if distinct parts are glued together
Definition: meshOctreeAddressingGluedMesh.C:42
Foam::meshOctreeAddressing::calculateNodeFaces
void calculateNodeFaces() const
calculate node-faces addressing
Definition: meshOctreeAddressingCreation.C:1093
Foam::meshOctreeAddressing::OUTERNODE
@ OUTERNODE
Definition: meshOctreeAddressing.H:238
Foam::meshOctreeAddressing::leafEdgesPtr_
VRWGraph * leafEdgesPtr_
leaf-edges addressing
Definition: meshOctreeAddressing.H:111
Foam::meshOctreeAddressing::nodeEdgesPtr_
VRWGraph * nodeEdgesPtr_
node-edges addressing
Definition: meshOctreeAddressing.H:114
Foam::meshOctreeAddressing::globalFaceLabelPtr_
labelLongList * globalFaceLabelPtr_
global octree face label
Definition: meshOctreeAddressing.H:132
Foam::meshOctreeAddressing::nodeType
const List< direction > & nodeType() const
return type of node (INNERNODE,or OUTERNODE)
Definition: meshOctreeAddressingI.H:94
Foam::meshOctreeAddressing::globalPointToLocalPtr_
Map< label > * globalPointToLocalPtr_
global point to local label addressing
Definition: meshOctreeAddressing.H:126
Foam::meshOctreeAddressing::faceEdgesPtr_
VRWGraph * faceEdgesPtr_
face-edges addressing
Definition: meshOctreeAddressing.H:117
Foam::meshOctreeAddressing::checkAndFixIrregularConnections
void checkAndFixIrregularConnections()
Definition: meshOctreeAddressingIrregularConnections.C:44
Foam::meshOctreeAddressing::leafLeavesPtr_
VRWGraph * leafLeavesPtr_
leaf-leaves addressing
Definition: meshOctreeAddressing.H:102
Foam::meshOctreeAddressing::useDATABoxes_
bool useDATABoxes_
use DATA boxes
Definition: meshOctreeAddressing.H:69
Foam::meshOctreeAddressing::cubesAroundEdge
void cubesAroundEdge(const label leafI, const direction eI, FixedList< label, 4 > &edgeCubes) const
find cubes around an edge (cubes must be at the same level)
Definition: meshOctreeAddressing.C:383
Foam::meshOctreeAddressing::octreeFacesNeighboursPtr_
labelLongList * octreeFacesNeighboursPtr_
Definition: meshOctreeAddressing.H:93
VRWGraph.H
Foam::meshOctreeAddressing::clearAddressing
void clearAddressing()
Definition: meshOctreeAddressing.C:73
Foam::meshOctreeAddressing::nodeLabels
const VRWGraph & nodeLabels() const
return nodeLabels
Definition: meshOctreeAddressingI.H:52
Foam::meshOctreeAddressing::BOUNDARYNODE
@ BOUNDARYNODE
Definition: meshOctreeAddressing.H:239
Foam::meshOctreeAddressing::clearOut
void clearOut()
Clear allocated data.
Definition: meshOctreeAddressing.C:42
Foam::meshOctreeAddressing::createOctreeFaces
void createOctreeFaces() const
calculate faces
Definition: meshOctreeAddressingCreation.C:752
Foam::meshOctreeAddressing::findUsedBoxes
void findUsedBoxes() const
assemble boxTypePtr_ list
Definition: meshOctreeAddressingCreation.C:441
Foam::meshOctreeAddressing::octreePointsPtr_
pointField * octreePointsPtr_
coordinates of octree nodes
Definition: meshOctreeAddressing.H:75
face.H
Foam::meshOctreeAddressing::operator=
void operator=(const meshOctreeAddressing &)
Disallow default bitwise assignment.
Foam::meshOctreeAddressing::calcGlobalLeafLabels
void calcGlobalLeafLabels() const
Definition: meshOctreeAddressingParallelAddressing.C:346
Foam::meshOctreeAddressing::edgeFacesPtr_
VRWGraph * edgeFacesPtr_
edge-faces addressing
Definition: meshOctreeAddressing.H:120
Foam::Map< label >
Foam::meshOctreeAddressing::pointAtProcs
const VRWGraph & pointAtProcs() const
processors which contain an octree point
Definition: meshOctreeAddressingI.H:215
Foam::meshOctreeAddressing::createNodeLabels
void createNodeLabels() const
calculate nodeLabelsPtr_
Definition: meshOctreeAddressingCreation.C:153
Foam::meshOctreeAddressing::globalLeafLabelPtr_
labelLongList * globalLeafLabelPtr_
global leaf label
Definition: meshOctreeAddressing.H:141
Foam::meshOctreeAddressing::globalToLocalLeafAddressing
const Map< label > & globalToLocalLeafAddressing() const
return global leaf label to local label addressing
Definition: meshOctreeAddressingI.H:265
Foam::meshOctreeAddressing::clearNodeAddressing
void clearNodeAddressing()
Definition: meshOctreeAddressing.C:51
Foam::meshOctreeAddressing::octreeFacesOwnersPtr_
labelLongList * octreeFacesOwnersPtr_
Definition: meshOctreeAddressing.H:92
Foam::meshOctreeAddressing::octreeFaceOwner
const labelLongList & octreeFaceOwner() const
return owners of octree faces
Definition: meshOctreeAddressingI.H:110
Foam::meshOctreeAddressing::calcGlobalPointLabels
void calcGlobalPointLabels() const
Definition: meshOctreeAddressingParallelAddressing.C:48
Foam::meshOctreeAddressing::nodeTypePtr_
List< direction > * nodeTypePtr_
identify created nodes as OUTERNODE or INNERNODE
Definition: meshOctreeAddressing.H:87
Foam::meshOctreeAddressing::faceAtProcs
const VRWGraph & faceAtProcs() const
return processors which contain each octree face
Definition: meshOctreeAddressingI.H:240
Foam::meshOctreeAddressing::meshDict_
const dictionary & meshDict_
reference to the dictionary
Definition: meshOctreeAddressing.H:66
Foam::meshOctreeAddressing::clearParallelAddressing
void clearParallelAddressing()
Definition: meshOctreeAddressing.C:86
Foam::LongList< label >
Foam::meshOctreeAddressing::calculateEdgeLeaves
void calculateEdgeLeaves() const
calculate edge-leaves addressing
Definition: meshOctreeAddressingCreation.C:1211
Map.H
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::meshOctreeAddressing::~meshOctreeAddressing
~meshOctreeAddressing()
Definition: meshOctreeAddressing.C:168
Foam::Field
Pre-declare SubField and related Field type.
Definition: Field.H:57
Foam::meshOctreeAddressing::leafAtProcs
const VRWGraph & leafAtProcs() const
return processors which contain each octree leaf
Definition: meshOctreeAddressingI.H:256
Foam::meshOctreeAddressing::clearBoxTypes
void clearBoxTypes()
Definition: meshOctreeAddressing.C:61
Foam::meshOctreeAddressing::isIntersectedFace
bool isIntersectedFace(const label fI) const
checks if the face is intersected by the surface
Definition: meshOctreeAddressing.C:175
Foam::meshOctreeAddressing::NONE
@ NONE
Definition: meshOctreeAddressing.H:233
Foam::meshOctreeAddressing::setBoxType
void setBoxType(const label boxI, const direction type)
set box type
Definition: meshOctreeAddressingI.H:77
Foam::meshOctreeAddressing::boxTypePtr_
List< direction > * boxTypePtr_
identify which boxes should be used as mesh cells
Definition: meshOctreeAddressing.H:84
FRWGraph.H
Foam::meshOctreeAddressing::nodeLeavesPtr_
FRWGraph< label, 8 > * nodeLeavesPtr_
node leaves
Definition: meshOctreeAddressing.H:81
meshOctreeCubeCoordinates.H
Foam::meshOctreeAddressing::createOctreePoints
void createOctreePoints() const
calculate octreePointsPtr_
Definition: meshOctreeAddressingCreation.C:123
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::meshOctreeAddressing::clearOctreeFaces
void clearOctreeFaces()
Definition: meshOctreeAddressing.C:66
Foam::meshOctreeAddressing::calculateLeafEdges
void calculateLeafEdges() const
calculate leaf-edges
Definition: meshOctreeAddressingCreation.C:1200
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
Foam::meshOctreeAddressing::MESHCELL
@ MESHCELL
Definition: meshOctreeAddressing.H:234
Foam::meshOctreeAddressing::nodeFaces
const VRWGraph & nodeFaces() const
return node-faces addressing
Definition: meshOctreeAddressingI.H:142
Foam::meshOctreeAddressing::createOctreeEdges
void createOctreeEdges() const
calculate edges
Definition: meshOctreeAddressingCreation.C:1140
Foam::meshOctreeAddressing::edgeLeaves
const VRWGraph & edgeLeaves() const
return edge-leaves addressing
Definition: meshOctreeAddressingI.H:158
Foam::meshOctreeAddressing::leafFaces
const VRWGraph & leafFaces() const
return octree box-faces addressing
Definition: meshOctreeAddressingI.H:126
Foam::meshOctreeAddressing::globalPointLabel
const labelLongList & globalPointLabel() const
return global point labels
Definition: meshOctreeAddressingI.H:198
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::meshOctreeAddressing::createNodeLeaves
void createNodeLeaves() const
calculate nodeLeavesPtr_
Definition: meshOctreeAddressingCreation.C:400
Foam::DynList
Definition: DynList.H:53
edge.H
Foam::meshOctreeAddressing::calculateLeafLeaves
void calculateLeafLeaves() const
calculate leaf-leaves addressing
Definition: meshOctreeAddressingCreation.C:1103
Foam::meshOctreeAddressing::faceEdges
const VRWGraph & faceEdges() const
return face-edges addressing
Definition: meshOctreeAddressingI.H:182
Foam::meshOctreeAddressing::octreeFaceNeighbour
const labelLongList & octreeFaceNeighbour() const
return neighbours of octree faces
Definition: meshOctreeAddressingI.H:118
Foam::meshOctreeAddressing::BOUNDARY
@ BOUNDARY
Definition: meshOctreeAddressing.H:235
Foam::meshOctreeAddressing::octreeEdgesPtr_
LongList< edge > * octreeEdgesPtr_
edges of the octree
Definition: meshOctreeAddressing.H:105
Foam::meshOctreeAddressing::globalFaceToLocalPtr_
Map< label > * globalFaceToLocalPtr_
global face label to local label addressing
Definition: meshOctreeAddressing.H:135
Foam::meshOctreeAddressing::pointProcsPtr_
VRWGraph * pointProcsPtr_
point-processors addressing
Definition: meshOctreeAddressing.H:129
Foam::meshOctreeAddressing::faceProcsPtr_
VRWGraph * faceProcsPtr_
face-processors addressing
Definition: meshOctreeAddressing.H:138
Foam::meshOctreeAddressing::globalFaceLabel
const labelLongList & globalFaceLabel() const
return global labels of octree faces
Definition: meshOctreeAddressingI.H:223
Foam::meshOctreeAddressing::INNERNODE
@ INNERNODE
Definition: meshOctreeAddressing.H:237
Foam::meshOctreeAddressing
Definition: meshOctreeAddressing.H:59
Foam::meshOctreeAddressing::octreeFacesPtr_
VRWGraph * octreeFacesPtr_
faces of the octree
Definition: meshOctreeAddressing.H:91
Foam::meshOctreeAddressing::boxType
const List< direction > & boxType() const
return which octree boxes are used for mesh creation
Definition: meshOctreeAddressingI.H:68
Foam::meshOctreeAddressing::nNodes_
label nNodes_
number of created octree nodes
Definition: meshOctreeAddressing.H:72
Foam::meshOctreeAddressing::octree
const meshOctree & octree() const
return const reference to meshOctree
Definition: meshOctreeAddressingI.H:89
Foam::meshOctreeAddressing::meshOctreeAddressing
meshOctreeAddressing(const meshOctreeAddressing &)
Disallow default bitwise copy construct.
Foam::meshOctreeAddressing::leafLeaves
const VRWGraph & leafLeaves() const
return leaf-leaves addressing
Definition: meshOctreeAddressingI.H:134
Foam::meshOctreeAddressing::calculateNodeType
void calculateNodeType() const
calculate nodeTypePtr_
Definition: meshOctreeAddressingCreation.C:711
Foam::meshOctreeAddressing::edgeLeavesPtr_
VRWGraph * edgeLeavesPtr_
edges-leaves addressing
Definition: meshOctreeAddressing.H:108
Foam::meshOctreeAddressing::globalToLocalFaceAddressing
const Map< label > & globalToLocalFaceAddressing() const
return global face label to face label. Only for processor faces
Definition: meshOctreeAddressingI.H:232
Foam::List< direction >
Foam::meshOctreeAddressing::octreeCubeTypes
octreeCubeTypes
Definition: meshOctreeAddressing.H:231
Foam::meshOctreeAddressing::calculateEdgeFaces
void calculateEdgeFaces() const
calculate edge-faces
Definition: meshOctreeAddressingCreation.C:1238
Foam::meshOctree
Definition: meshOctree.H:55
Foam::meshOctreeAddressing::nodeFacesPtr_
VRWGraph * nodeFacesPtr_
node-faces addressing
Definition: meshOctreeAddressing.H:99
Foam::FixedList< label, 4 >
Foam::meshOctreeAddressing::globalLeafLabel
const labelLongList & globalLeafLabel() const
return global labels of octree leaves
Definition: meshOctreeAddressingI.H:248
Foam::meshOctreeAddressing::octreeEdges
const LongList< edge > & octreeEdges() const
return octree edges, created for MESHCELL boxes
Definition: meshOctreeAddressingI.H:150
meshOctree
Octree for mesh generation.
Foam::direction
unsigned char direction
Definition: direction.H:43
Foam::meshOctreeAddressing::isIntersectedEdge
bool isIntersectedEdge(const label eI) const
checks if the edge is intersected by the surface
Definition: meshOctreeAddressing.C:248
Foam::meshOctreeAddressing::globalLeafToLocalPtr_
Map< label > * globalLeafToLocalPtr_
global leaf label to local label addressing for octree leaves
Definition: meshOctreeAddressing.H:144
Foam::meshOctreeAddressing::nodeLabelsPtr_
VRWGraph * nodeLabelsPtr_
node labels
Definition: meshOctreeAddressing.H:78
Foam::meshOctreeAddressing::octreePoints
const pointField & octreePoints() const
return coordinates of octree vertices
Definition: meshOctreeAddressingI.H:44
Foam::meshOctreeAddressing::nodeEdges
const VRWGraph & nodeEdges() const
return node-edges addressing
Definition: meshOctreeAddressingI.H:174
Foam::meshOctreeAddressing::nodeLeaves
const FRWGraph< label, 8 > & nodeLeaves() const
return nodeLeaves
Definition: meshOctreeAddressingI.H:60
Foam::meshOctreeAddressing::octreeFaces
const VRWGraph & octreeFaces() const
return octree faces, created for MESHCELL boxes
Definition: meshOctreeAddressingI.H:102
Foam::meshOctreeAddressing::numberOfNodes
label numberOfNodes() const
return number of octree nodes
Definition: meshOctreeAddressingI.H:36
Foam::meshOctreeAddressing::findEdgeCentre
label findEdgeCentre(const label leafI, const direction eI) const
find edge centre if it exists
Definition: meshOctreeAddressing.C:428
Foam::meshOctreeAddressing::octree_
const meshOctree & octree_
reference to the octree
Definition: meshOctreeAddressing.H:63
Foam::type
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
Definition: POSIX.C:588
Foam::meshOctreeAddressing::leafEdges
const VRWGraph & leafEdges() const
return leaf-edges addressing
Definition: meshOctreeAddressingI.H:166
Foam::FRWGraph< label, 8 >
Foam::VRWGraph
Definition: VRWGraph.H:101
Foam::meshOctreeAddressing::calculateLeafFaces
void calculateLeafFaces() const
calculate leaf-faces addressing
Definition: meshOctreeAddressingCreation.C:1063
Foam::meshOctreeAddressing::calcGlobalFaceLabels
void calcGlobalFaceLabels() const
Definition: meshOctreeAddressingParallelAddressing.C:337
Foam::meshOctreeAddressing::leafAtProcsPtr_
VRWGraph * leafAtProcsPtr_
leaf at procs
Definition: meshOctreeAddressing.H:147
Foam::meshOctreeAddressing::edgeIntersections
void edgeIntersections(const label eI, DynList< point > &intersections) const
Definition: meshOctreeAddressing.C:314
Foam::meshOctreeAddressing::globalToLocalPointAddressing
const Map< label > & globalToLocalPointAddressing() const
global point label to local label. Only for processors points
Definition: meshOctreeAddressingI.H:207
meshOctreeAddressingI.H
Foam::meshOctreeAddressing::SPLITHEX
@ SPLITHEX
Definition: meshOctreeAddressing.H:236
DynList.H
Foam::meshOctreeAddressing::edgeFaces
const VRWGraph & edgeFaces() const
return edge-faces addressing
Definition: meshOctreeAddressingI.H:190
Foam::meshOctreeAddressing::leafFacesPtr_
VRWGraph * leafFacesPtr_
octree box-faces addressing
Definition: meshOctreeAddressing.H:96