Public Types | Public Member Functions | Private Member Functions | Private Attributes
meshOctreeAddressing Class Reference
Collaboration diagram for meshOctreeAddressing:
Collaboration graph
[legend]

Public Types

enum  octreeCubeTypes {
  NONE = 0, MESHCELL = 1, BOUNDARY = 2, SPLITHEX = 4,
  INNERNODE = 8, OUTERNODE = 16, BOUNDARYNODE = 32
}
 

Public Member Functions

 meshOctreeAddressing (const meshOctree &mo, const dictionary &dict, bool useDATABoxes=false)
 Construct from surface and dictionary. More...
 
 ~meshOctreeAddressing ()
 
void checkAndFixIrregularConnections ()
 
label numberOfNodes () const
 return number of octree nodes More...
 
const pointFieldoctreePoints () const
 return coordinates of octree vertices More...
 
const VRWGraphnodeLabels () const
 return nodeLabels More...
 
const FRWGraph< label, 8 > & nodeLeaves () const
 return nodeLeaves More...
 
const List< direction > & boxType () const
 return which octree boxes are used for mesh creation More...
 
const List< direction > & nodeType () const
 return type of node (INNERNODE,or OUTERNODE) More...
 
void setBoxType (const label boxI, const direction type)
 set box type More...
 
const VRWGraphoctreeFaces () const
 return octree faces, created for MESHCELL boxes More...
 
const labelLongListoctreeFaceOwner () const
 return owners of octree faces More...
 
const labelLongListoctreeFaceNeighbour () const
 return neighbours of octree faces More...
 
const VRWGraphleafFaces () const
 return octree box-faces addressing More...
 
bool isIntersectedFace (const label fI) const
 checks if the face is intersected by the surface More...
 
const VRWGraphleafLeaves () const
 return leaf-leaves addressing More...
 
const VRWGraphnodeFaces () const
 return node-faces addressing More...
 
const LongList< edge > & octreeEdges () const
 return octree edges, created for MESHCELL boxes More...
 
const VRWGraphedgeLeaves () const
 return edge-leaves addressing More...
 
const VRWGraphleafEdges () const
 return leaf-edges addressing More...
 
bool isIntersectedEdge (const label eI) const
 checks if the edge is intersected by the surface More...
 
void edgeIntersections (const label eI, DynList< point > &intersections) const
 
const VRWGraphnodeEdges () const
 return node-edges addressing More...
 
const VRWGraphfaceEdges () const
 return face-edges addressing More...
 
const VRWGraphedgeFaces () const
 return edge-faces addressing More...
 
const meshOctreeoctree () const
 return const reference to meshOctree More...
 
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) More...
 
label findEdgeCentre (const label leafI, const direction eI) const
 find edge centre if it exists More...
 
const labelLongListglobalPointLabel () const
 return global point labels More...
 
const Map< label > & globalToLocalPointAddressing () const
 global point label to local label. Only for processors points More...
 
const VRWGraphpointAtProcs () const
 processors which contain an octree point More...
 
const labelLongListglobalFaceLabel () const
 return global labels of octree faces More...
 
const Map< label > & globalToLocalFaceAddressing () const
 return global face label to face label. Only for processor faces More...
 
const VRWGraphfaceAtProcs () const
 return processors which contain each octree face More...
 
const labelLongListglobalLeafLabel () const
 return global labels of octree leaves More...
 
const VRWGraphleafAtProcs () const
 return processors which contain each octree leaf More...
 
const Map< label > & globalToLocalLeafAddressing () const
 return global leaf label to local label addressing More...
 

Private Member Functions

void createOctreePoints () const
 calculate octreePointsPtr_ More...
 
void createNodeLabels () const
 calculate nodeLabelsPtr_ More...
 
void createNodeLeaves () const
 calculate nodeLeavesPtr_ More...
 
void findUsedBoxes () const
 assemble boxTypePtr_ list More...
 
void calculateNodeType () const
 calculate nodeTypePtr_ More...
 
void createOctreeFaces () const
 calculate faces More...
 
void calculateLeafFaces () const
 calculate leaf-faces addressing More...
 
void calculateNodeFaces () const
 calculate node-faces addressing More...
 
void calculateLeafLeaves () const
 calculate leaf-leaves addressing More...
 
void createOctreeEdges () const
 calculate edges More...
 
void calculateLeafEdges () const
 calculate leaf-edges More...
 
void calculateEdgeLeaves () const
 calculate edge-leaves addressing More...
 
void calculateEdgeFaces () const
 calculate edge-faces More...
 
void clearOut ()
 Clear allocated data. More...
 
void clearBoxTypes ()
 
void clearNodeAddressing ()
 
void clearOctreeFaces ()
 
void clearAddressing ()
 
void clearParallelAddressing ()
 
void checkGluedRegions ()
 check if distinct parts are glued together More...
 
void calcGlobalPointLabels () const
 
void calcGlobalFaceLabels () const
 
void calcGlobalLeafLabels () const
 
 meshOctreeAddressing (const meshOctreeAddressing &)
 Disallow default bitwise copy construct. More...
 
void operator= (const meshOctreeAddressing &)
 Disallow default bitwise assignment. More...
 

Private Attributes

const meshOctreeoctree_
 reference to the octree More...
 
const dictionarymeshDict_
 reference to the dictionary More...
 
bool useDATABoxes_
 use DATA boxes More...
 
label nNodes_
 number of created octree nodes More...
 
pointFieldoctreePointsPtr_
 coordinates of octree nodes More...
 
VRWGraphnodeLabelsPtr_
 node labels More...
 
FRWGraph< label, 8 > * nodeLeavesPtr_
 node leaves More...
 
List< direction > * boxTypePtr_
 identify which boxes should be used as mesh cells More...
 
List< direction > * nodeTypePtr_
 identify created nodes as OUTERNODE or INNERNODE More...
 
VRWGraphoctreeFacesPtr_
 faces of the octree More...
 
labelLongListoctreeFacesOwnersPtr_
 
labelLongListoctreeFacesNeighboursPtr_
 
VRWGraphleafFacesPtr_
 octree box-faces addressing More...
 
VRWGraphnodeFacesPtr_
 node-faces addressing More...
 
VRWGraphleafLeavesPtr_
 leaf-leaves addressing More...
 
LongList< edge > * octreeEdgesPtr_
 edges of the octree More...
 
VRWGraphedgeLeavesPtr_
 edges-leaves addressing More...
 
VRWGraphleafEdgesPtr_
 leaf-edges addressing More...
 
VRWGraphnodeEdgesPtr_
 node-edges addressing More...
 
VRWGraphfaceEdgesPtr_
 face-edges addressing More...
 
VRWGraphedgeFacesPtr_
 edge-faces addressing More...
 
labelLongListglobalPointLabelPtr_
 global octree point label More...
 
Map< label > * globalPointToLocalPtr_
 global point to local label addressing More...
 
VRWGraphpointProcsPtr_
 point-processors addressing More...
 
labelLongListglobalFaceLabelPtr_
 global octree face label More...
 
Map< label > * globalFaceToLocalPtr_
 global face label to local label addressing More...
 
VRWGraphfaceProcsPtr_
 face-processors addressing More...
 
labelLongListglobalLeafLabelPtr_
 global leaf label More...
 
Map< label > * globalLeafToLocalPtr_
 global leaf label to local label addressing for octree leaves More...
 
VRWGraphleafAtProcsPtr_
 leaf at procs More...
 

Detailed Description

Definition at line 59 of file meshOctreeAddressing.H.

Member Enumeration Documentation

◆ octreeCubeTypes

Enumerator
NONE 
MESHCELL 
BOUNDARY 
SPLITHEX 
INNERNODE 
OUTERNODE 
BOUNDARYNODE 

Definition at line 231 of file meshOctreeAddressing.H.

Constructor & Destructor Documentation

◆ meshOctreeAddressing() [1/2]

Disallow default bitwise copy construct.

◆ meshOctreeAddressing() [2/2]

meshOctreeAddressing ( const meshOctree mo,
const dictionary dict,
bool  useDATABoxes = false 
)

Construct from surface and dictionary.

check for glued regions

Definition at line 103 of file meshOctreeAddressing.C.

References meshOctreeModifier::addLayerFromNeighbouringProcessors(), dict, dictionary::found(), dictionary::lookup(), UPstream::parRun(), and Foam::readBool().

Here is the call graph for this function:

◆ ~meshOctreeAddressing()

Definition at line 168 of file meshOctreeAddressing.C.

References meshOctreeAddressing::clearOut().

Here is the call graph for this function:

Member Function Documentation

◆ createOctreePoints()

void createOctreePoints ( ) const
private

◆ createNodeLabels()

void createNodeLabels ( ) const
private

calculate nodeLabelsPtr_

allocate storage for node labels

start creating node labels

count the number of nodes local to each process

set node labels to -2 not to repeat searches

set start node for each process

start creating node labels

store the vertex at the corresponding location in the cube

store vertex label

set the number of nodes

Definition at line 153 of file meshOctreeAddressingCreation.C.

References meshOctreeAddressing::BOUNDARY, meshOctreeAddressing::boxType(), Foam::endl(), meshOctree::findLeavesForCubeVertex(), forAll, forAllRow, Foam::Info, meshOctreeCubeCoordinates::level(), Foam::max(), meshOctreeAddressing::MESHCELL, Foam::min(), meshOctreeAddressing::nNodes_, meshOctreeAddressing::nodeLabels(), meshOctreeAddressing::nodeLabelsPtr_, meshOctree::numberOfLeaves(), meshOctreeAddressing::octree_, meshOctree::returnLeaf(), VRWGraph::setRowSize(), DynList< T, staticSize >::setSize(), and VRWGraph::size().

Referenced by meshOctreeAddressing::nodeLabels(), and meshOctreeAddressing::numberOfNodes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createNodeLeaves()

void createNodeLeaves ( ) const
private

◆ findUsedBoxes()

void findUsedBoxes ( ) const
private

assemble boxTypePtr_ list

do not use boxes intersecting given patches

remove facets in patches

remove facets in subsets

set BOUNDARY flag to boxes intersected by the given facets

keep facets in patches

keep facets in subsets

set MESHCELL flag to boxes intersected by the given facets

set BOUNDARY flag to boxes which do not have a MESHCELL flag

make sure that all processors have the same information about BOUNDARY boxes

Definition at line 441 of file meshOctreeAddressingCreation.C.

References meshOctreeAddressing::BOUNDARY, meshOctreeAddressing::boxType(), meshOctreeAddressing::boxTypePtr_, DynList< T, staticSize >::clear(), meshOctree::containedTriangles(), meshOctreeCubeBasic::cubeType(), dict, Foam::endl(), Foam::help::exchangeMap(), triSurfFacets::facetsInSubset(), triSurfFacets::facetSubsetIndex(), meshOctree::findNeighboursInDirection(), triSurfFacets::findPatches(), forAll, forAllConstIter(), forAllRow, dictionary::found(), meshOctreeAddressing::globalLeafLabel(), meshOctreeAddressing::globalToLocalLeafAddressing(), meshOctree::hasContainedEdges(), meshOctree::hasContainedTriangles(), Foam::Info, HashSet< Key, Hash >::insert(), meshOctreeCubeBasic::INSIDE, dictionary::isDict(), meshOctreeAddressing::leafAtProcs(), dictionary::lookup(), meshOctreeAddressing::MESHCELL, meshOctreeAddressing::meshDict_, UPstream::myProcNo(), meshOctree::neiProcs(), meshOctreeAddressing::NONE, meshOctree::numberOfLeaves(), meshOctreeAddressing::octree_, UPstream::parRun(), triSurfFacets::patches(), patchNames(), Foam::readBool(), meshOctree::returnLeaf(), List::size(), triSurfFacets::size(), dictionary::subDict(), meshOctree::surface(), HashTable::transfer(), meshOctreeCubeBasic::UNKNOWN, and meshOctreeAddressing::useDATABoxes_.

Referenced by meshOctreeAddressing::boxType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateNodeType()

void calculateNodeType ( ) const
private

◆ createOctreeFaces()

void createOctreeFaces ( ) const
private

calculate faces

faces are created and stored into helper arrays, and each thread allocates its own graph for storing faces. The faces are generated by dividing the octree leaves into chunks, and distributing these chunks over the threads. There are four chunks per each thread to improve load balancing. The number of faces generated in each chunk is stored and later in used to store the faces into the octree faces graph in the correct order

stop if the neighbour is on other processor

create face

face is at the boundary of the octree

face is an internal face

append a reversed face

face is at the boundary of the mesh cells

add a boundary face

store the size of this chunk

set the sizes of faces graph

set the size of face graph rows and copy owners and neighbours

copy the data into octree faces

Definition at line 752 of file meshOctreeAddressingCreation.C.

References Foam::add(), LongList< T, Offset >::append(), VRWGraph::appendList(), meshOctreeAddressing::BOUNDARY, meshOctreeAddressing::boxType(), Foam::endl(), f(), meshOctreeCubeCoordinates::faceEdges_, meshOctreeCubeCoordinates::faceNodes_, meshOctreeAddressing::findEdgeCentre(), meshOctree::findNeighboursInDirection(), forAll, Foam::Info, meshOctreeCubeCoordinates::level(), Foam::mag(), meshOctreeAddressing::MESHCELL, Foam::min(), UPstream::myProcNo(), n, meshOctreeAddressing::nodeLabels(), meshOctreeAddressing::nodeLeaves(), meshOctree::numberOfLeaves(), meshOctreeAddressing::octree_, meshOctreeAddressing::octreeFacesNeighboursPtr_, meshOctreeAddressing::octreeFacesOwnersPtr_, meshOctreeAddressing::octreeFacesPtr_, meshOctreeAddressing::octreePoints(), LongList< T, Offset >::operator, meshOctreeCubeBasic::OTHERPROC, UPstream::parRun(), meshOctreeCubeBasic::procNo(), meshOctree::returnLeaf(), face::reverseFace(), LongList< T, Offset >::setSize(), List::setSize(), VRWGraph::setSize(), VRWGraphSMPModifier::setSizeAndRowSize(), List::size(), DynList< T, staticSize >::size(), VRWGraph::size(), VRWGraph::sizeOfRow(), Foam::sum(), and Vector< scalar >::zero.

Referenced by meshOctreeAddressing::octreeFaceNeighbour(), meshOctreeAddressing::octreeFaceOwner(), and meshOctreeAddressing::octreeFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateLeafFaces()

void calculateLeafFaces ( ) const
private

◆ calculateNodeFaces()

void calculateNodeFaces ( ) const
private

calculate node-faces addressing

Definition at line 1093 of file meshOctreeAddressingCreation.C.

References meshOctreeAddressing::nodeFaces(), meshOctreeAddressing::nodeFacesPtr_, meshOctreeAddressing::numberOfNodes(), meshOctreeAddressing::octreeFaces(), VRWGraphSMPModifier::reverseAddressing(), and VRWGraph::setSize().

Referenced by meshOctreeAddressing::nodeFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculateLeafLeaves()

void calculateLeafLeaves ( ) const
private

◆ createOctreeEdges()

void createOctreeEdges ( ) const
private

◆ calculateLeafEdges()

void calculateLeafEdges ( ) const
private

◆ calculateEdgeLeaves()

void calculateEdgeLeaves ( ) const
private

◆ calculateEdgeFaces()

void calculateEdgeFaces ( ) const
private

calculate edge-faces

Definition at line 1238 of file meshOctreeAddressingCreation.C.

References meshOctreeAddressing::edgeFaces(), meshOctreeAddressing::edgeFacesPtr_, meshOctreeAddressing::faceEdges(), meshOctreeAddressing::octreeEdges(), VRWGraphSMPModifier::reverseAddressing(), and VRWGraph::setSize().

Referenced by meshOctreeAddressing::edgeFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clearOut()

void clearOut ( )
private

◆ clearBoxTypes()

void clearBoxTypes ( )
private

Definition at line 61 of file meshOctreeAddressing.C.

References meshOctreeAddressing::boxTypePtr_, and Foam::deleteDemandDrivenData().

Referenced by meshOctreeAddressing::clearOut().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clearNodeAddressing()

void clearNodeAddressing ( )
private

◆ clearOctreeFaces()

void clearOctreeFaces ( )
private

◆ clearAddressing()

void clearAddressing ( )
private

◆ clearParallelAddressing()

void clearParallelAddressing ( )
private

◆ checkGluedRegions()

void checkGluedRegions ( )
private

◆ calcGlobalPointLabels()

void calcGlobalPointLabels ( ) const
private

allocate containers

find the number of points local to each processor The point is taken to be local if it belongs to one processor, only, or to the leaf with the smallest label

exchange data with other processors

find the starting point label

assign global labels to local points

distribute the labels to other processors it is done by sending the global leaf label and the node labels to processors which contain the leaves as part of buffer layers it is performed in reduce-like manner

scatter the data from the processors above to the processors below receive the data from the processors above

receive the data

send the data to the processors below

add the current processor

send the data

gather the data from the processors below to the processors above receive the data from the processors below

receive the data

send the data to the processors below

add the current processor

send the data

Definition at line 48 of file meshOctreeAddressingParallelAddressing.C.

References Foam::abort(), LongList< T, Offset >::append(), DynList< T, staticSize >::append(), DynList< T, staticSize >::appendIfNotIn(), VRWGraph::appendIfNotIn(), UPstream::blocking, LongList< T, Offset >::byteSize(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, forAllReverse, forAllRow, found, Pstream::gatherList(), meshOctreeAddressing::globalLeafLabel(), meshOctreeAddressing::globalPointLabel(), meshOctreeAddressing::globalPointLabelPtr_, meshOctreeAddressing::globalPointToLocalPtr_, meshOctreeAddressing::globalToLocalLeafAddressing(), meshOctreeAddressing::leafAtProcs(), Foam::min(), UPstream::myProcNo(), meshOctree::neiProcs(), meshOctreeAddressing::nodeLabels(), meshOctreeAddressing::nodeLeaves(), UPstream::nProcs(), meshOctree::numberOfLeaves(), meshOctreeAddressing::octree_, UPstream::parRun(), meshOctreeAddressing::pointProcsPtr_, meshOctreeCubeBasic::procNo(), meshOctree::returnLeaf(), VRWGraph::reverseAddressing(), Pstream::scatterList(), VRWGraph::setRow(), FRWGraph< T, width >::size(), DynList< T, staticSize >::size(), and VRWGraph::sizeOfRow().

Referenced by meshOctreeAddressing::globalPointLabel(), meshOctreeAddressing::globalToLocalPointAddressing(), and meshOctreeAddressing::pointAtProcs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcGlobalFaceLabels()

void calcGlobalFaceLabels ( ) const
private

Definition at line 337 of file meshOctreeAddressingParallelAddressing.C.

References Foam::exit(), Foam::FatalError, FatalErrorIn, and UPstream::parRun().

Referenced by meshOctreeAddressing::faceAtProcs(), meshOctreeAddressing::globalFaceLabel(), and meshOctreeAddressing::globalToLocalFaceAddressing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcGlobalLeafLabels()

void calcGlobalLeafLabels ( ) const
private

allocate the memory

find the number of leaves local to each processor

exchange the data with other processors

find the starting labels for

set the global labels to local leaves

the rest of the code is needed in case an additional layer of of octree leaves belonging to other processors is added in order to simplify the procedure for generation of mesh templates

allocate the map for exchanging of data

Here we have to combine the information from all processors it is started such that all processors send the leaves to the processor that contains them locally

fill the map with data

exchange the data with other processors

update the local data

now the global leaf labels shall be sent from the processors that own the leaves to the processors that also contain them

fill in the data

exchange the data

set the labels to the leaves originating from other processors

update leafAtProcs for all processors

exchange the data

update the local data

Definition at line 346 of file meshOctreeAddressingParallelAddressing.C.

References Foam::abort(), LongList< T, Offset >::append(), VRWGraph::append(), VRWGraph::appendIfNotIn(), meshOctreeAddressing::boxType(), LongList< T, Offset >::clear(), VRWGraph::contains(), Foam::endl(), Foam::help::exchangeMap(), Foam::exit(), Foam::FatalError, FatalErrorIn, meshOctree::findLeafLabelForPosition(), forAll, forAllConstIter(), forAllRow, Pstream::gatherList(), meshOctreeAddressing::globalLeafLabel(), meshOctreeAddressing::globalLeafLabelPtr_, meshOctreeAddressing::globalLeafToLocalPtr_, meshOctreeAddressing::leafAtProcs(), meshOctreeAddressing::leafAtProcsPtr_, UPstream::myProcNo(), meshOctree::neiProcs(), meshOctreeAddressing::nodeLabels(), UPstream::nProcs(), meshOctree::numberOfLeaves(), meshOctreeAddressing::octree_, UPstream::parRun(), Foam::Pout, meshOctreeCubeBasic::procNo(), meshOctree::returnLeaf(), Foam::returnReduce(), Pstream::scatterList(), UPstream::scheduled, meshOctreeCubeBasic::setProcNo(), LongList< T, Offset >::size(), and VRWGraph::sizeOfRow().

Referenced by meshOctreeAddressing::globalLeafLabel(), meshOctreeAddressing::globalToLocalLeafAddressing(), and meshOctreeAddressing::leafAtProcs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

void operator= ( const meshOctreeAddressing )
private

Disallow default bitwise assignment.

◆ checkAndFixIrregularConnections()

void checkAndFixIrregularConnections ( )

check if there exist any non-signly connected edges and vertices in the octree mesh. This is primarily needed for the cartesian template

find boundary faces

remove irregular connections over edges

check if there exist two or more boundary face groups connected to a vertex

find boundary faces connected to the vertex

find the number of face groups at a given vertex

this vertex has two groups of faces connected to it

set BOUNDARY flag to all boxes connected to it

Definition at line 44 of file meshOctreeAddressingIrregularConnections.C.

References LongList< T, Offset >::append(), DynList< T, staticSize >::append(), HashTable::begin(), meshOctreeAddressing::BOUNDARY, meshOctreeAddressing::boxType(), meshOctreeAddressing::boxTypePtr_, DynList< T, staticSize >::clear(), meshOctreeAddressing::clearAddressing(), meshOctreeAddressing::clearNodeAddressing(), meshOctreeAddressing::clearOctreeFaces(), meshOctreeCubeBasic::coordinates(), meshOctreeAddressing::edgeFaces(), meshOctreeAddressing::edgeLeaves(), Foam::endl(), HashTable::erase(), meshOctree::exchangeRequestsWithNeighbourProcessors(), meshOctreeAddressing::faceEdges(), meshOctree::findLeafLabelForPosition(), forAll, forAllConstIter(), forAllRow, found, HashTable::found(), Foam::Info, HashSet< Key, Hash >::insert(), meshOctreeAddressing::MESHCELL, meshOctreeAddressing::nodeFaces(), meshOctreeAddressing::octree_, meshOctreeAddressing::octreeFaceNeighbour(), meshOctreeAddressing::octreeFaceOwner(), UPstream::parRun(), Foam::reduce(), DynList< T, staticSize >::removeLastElement(), meshOctree::returnLeaf(), LongList< T, Offset >::size(), DynList< T, staticSize >::size(), HashTable::size(), and VRWGraph::sizeOfRow().

Here is the call graph for this function:

◆ numberOfNodes()

label numberOfNodes ( ) const
inline

◆ octreePoints()

const pointField & octreePoints ( ) const
inline

◆ nodeLabels()

const VRWGraph & nodeLabels ( ) const
inline

◆ nodeLeaves()

const FRWGraph< label, 8 > & nodeLeaves ( ) const
inline

◆ boxType()

const List< direction > & boxType ( ) const
inline

◆ nodeType()

const List< direction > & nodeType ( ) const
inline

return type of node (INNERNODE,or OUTERNODE)

Definition at line 94 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calculateNodeType(), and meshOctreeAddressing::nodeTypePtr_.

Referenced by meshOctreeAddressing::calculateNodeType(), and meshOctreeAddressing::checkGluedRegions().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setBoxType()

void setBoxType ( const label  boxI,
const direction  type 
)
inline

set box type

Definition at line 77 of file meshOctreeAddressingI.H.

References Foam::type().

Here is the call graph for this function:

◆ octreeFaces()

const VRWGraph & octreeFaces ( ) const
inline

return octree faces, created for MESHCELL boxes

Definition at line 102 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::createOctreeFaces(), and meshOctreeAddressing::octreeFacesPtr_.

Referenced by meshOctreeAddressing::calculateNodeFaces(), meshOctreeAddressing::createOctreeEdges(), cartesianMeshExtractor::createPolyMesh(), and meshOctreeAddressing::isIntersectedFace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ octreeFaceOwner()

const labelLongList & octreeFaceOwner ( ) const
inline

◆ octreeFaceNeighbour()

const labelLongList & octreeFaceNeighbour ( ) const
inline

◆ leafFaces()

const VRWGraph & leafFaces ( ) const
inline

return octree box-faces addressing

Definition at line 126 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calculateLeafFaces(), and meshOctreeAddressing::leafFacesPtr_.

Referenced by meshOctreeAddressing::calculateLeafFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isIntersectedFace()

bool isIntersectedFace ( const label  fI) const

◆ leafLeaves()

const VRWGraph & leafLeaves ( ) const
inline

return leaf-leaves addressing

Definition at line 134 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calculateLeafLeaves(), and meshOctreeAddressing::leafLeavesPtr_.

Referenced by meshOctreeAddressing::calculateLeafLeaves().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nodeFaces()

const VRWGraph & nodeFaces ( ) const
inline

return node-faces addressing

Definition at line 142 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calculateNodeFaces(), and meshOctreeAddressing::nodeFacesPtr_.

Referenced by meshOctreeAddressing::calculateNodeFaces(), and meshOctreeAddressing::checkAndFixIrregularConnections().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ octreeEdges()

const LongList< edge > & octreeEdges ( ) const
inline

return octree edges, created for MESHCELL boxes

Definition at line 150 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::createOctreeEdges(), and meshOctreeAddressing::octreeEdgesPtr_.

Referenced by meshOctreeAddressing::calculateEdgeFaces(), meshOctreeAddressing::checkGluedRegions(), and meshOctreeAddressing::isIntersectedEdge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgeLeaves()

const VRWGraph & edgeLeaves ( ) const
inline

◆ leafEdges()

const VRWGraph & leafEdges ( ) const
inline

return leaf-edges addressing

Definition at line 166 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calculateLeafEdges(), and meshOctreeAddressing::leafEdgesPtr_.

Referenced by meshOctreeAddressing::calculateLeafEdges(), and meshOctreeAddressing::checkGluedRegions().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isIntersectedEdge()

bool isIntersectedEdge ( const label  eI) const

◆ edgeIntersections()

void edgeIntersections ( const label  eI,
DynList< point > &  intersections 
) const

◆ nodeEdges()

const VRWGraph & nodeEdges ( ) const
inline

return node-edges addressing

Definition at line 174 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::createOctreeEdges(), and meshOctreeAddressing::nodeEdgesPtr_.

Referenced by meshOctreeAddressing::createOctreeEdges().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ faceEdges()

const VRWGraph & faceEdges ( ) const
inline

return face-edges addressing

Definition at line 182 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::createOctreeEdges(), and meshOctreeAddressing::faceEdgesPtr_.

Referenced by meshOctreeAddressing::calculateEdgeFaces(), meshOctreeAddressing::checkAndFixIrregularConnections(), and meshOctreeAddressing::createOctreeEdges().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgeFaces()

const VRWGraph & edgeFaces ( ) const
inline

return edge-faces addressing

Definition at line 190 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calculateEdgeFaces(), and meshOctreeAddressing::edgeFacesPtr_.

Referenced by meshOctreeAddressing::calculateEdgeFaces(), meshOctreeAddressing::calculateEdgeLeaves(), and meshOctreeAddressing::checkAndFixIrregularConnections().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ octree()

const meshOctree & octree ( ) const
inline

◆ 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 at line 383 of file meshOctreeAddressing.C.

References Foam::abort(), meshOctreeCubeCoordinates::edgeNodes_, Foam::FatalError, FatalErrorIn, and Foam::nl.

Here is the call graph for this function:

◆ findEdgeCentre()

label findEdgeCentre ( const label  leafI,
const direction  eI 
) const

find edge centre if it exists

Definition at line 428 of file meshOctreeAddressing.C.

References Foam::abort(), meshOctreeCubeCoordinates::edgeNodes_, meshOctreeCubeCoordinates::faceNodes_, Foam::FatalError, FatalErrorIn, meshOctreeCubeCoordinates::level(), and Foam::nl.

Referenced by meshOctreeAddressing::createOctreeFaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalPointLabel()

const labelLongList & globalPointLabel ( ) const
inline

return global point labels

Definition at line 198 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalPointLabels(), and meshOctreeAddressing::globalPointLabelPtr_.

Referenced by meshOctreeAddressing::calcGlobalPointLabels().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalToLocalPointAddressing()

const Map< label > & globalToLocalPointAddressing ( ) const
inline

global point label to local label. Only for processors points

Definition at line 207 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalPointLabels(), and meshOctreeAddressing::globalPointToLocalPtr_.

Here is the call graph for this function:

◆ pointAtProcs()

const VRWGraph & pointAtProcs ( ) const
inline

processors which contain an octree point

Definition at line 215 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalPointLabels(), and meshOctreeAddressing::pointProcsPtr_.

Here is the call graph for this function:

◆ globalFaceLabel()

const labelLongList & globalFaceLabel ( ) const
inline

return global labels of octree faces

Definition at line 223 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalFaceLabels(), and meshOctreeAddressing::globalFaceLabelPtr_.

Here is the call graph for this function:

◆ globalToLocalFaceAddressing()

const Map< label > & globalToLocalFaceAddressing ( ) const
inline

return global face label to face label. Only for processor faces

Definition at line 232 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalFaceLabels(), and meshOctreeAddressing::globalFaceToLocalPtr_.

Here is the call graph for this function:

◆ faceAtProcs()

const VRWGraph & faceAtProcs ( ) const
inline

return processors which contain each octree face

Definition at line 240 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalFaceLabels(), and meshOctreeAddressing::faceProcsPtr_.

Here is the call graph for this function:

◆ globalLeafLabel()

const labelLongList & globalLeafLabel ( ) const
inline

return global labels of octree leaves

Definition at line 248 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalLeafLabels(), and meshOctreeAddressing::globalLeafLabelPtr_.

Referenced by meshOctreeAddressing::calcGlobalLeafLabels(), meshOctreeAddressing::calcGlobalPointLabels(), and meshOctreeAddressing::findUsedBoxes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ leafAtProcs()

const VRWGraph & leafAtProcs ( ) const
inline

return processors which contain each octree leaf

Definition at line 256 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalLeafLabels(), and meshOctreeAddressing::leafAtProcsPtr_.

Referenced by meshOctreeAddressing::calcGlobalLeafLabels(), meshOctreeAddressing::calcGlobalPointLabels(), and meshOctreeAddressing::findUsedBoxes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalToLocalLeafAddressing()

const Map< label > & globalToLocalLeafAddressing ( ) const
inline

return global leaf label to local label addressing

Definition at line 265 of file meshOctreeAddressingI.H.

References meshOctreeAddressing::calcGlobalLeafLabels(), and meshOctreeAddressing::globalLeafToLocalPtr_.

Referenced by meshOctreeAddressing::calcGlobalPointLabels(), and meshOctreeAddressing::findUsedBoxes().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ octree_

const meshOctree& octree_
private

◆ meshDict_

const dictionary& meshDict_
private

reference to the dictionary

Definition at line 66 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::checkGluedRegions(), and meshOctreeAddressing::findUsedBoxes().

◆ useDATABoxes_

bool useDATABoxes_
private

use DATA boxes

Definition at line 69 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::checkGluedRegions(), and meshOctreeAddressing::findUsedBoxes().

◆ nNodes_

label nNodes_
mutableprivate

◆ octreePointsPtr_

pointField* octreePointsPtr_
mutableprivate

◆ nodeLabelsPtr_

VRWGraph* nodeLabelsPtr_
mutableprivate

◆ nodeLeavesPtr_

FRWGraph<label, 8>* nodeLeavesPtr_
mutableprivate

◆ boxTypePtr_

List<direction>* boxTypePtr_
mutableprivate

◆ nodeTypePtr_

List<direction>* nodeTypePtr_
mutableprivate

identify created nodes as OUTERNODE or INNERNODE

Definition at line 87 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::calculateNodeType(), meshOctreeAddressing::clearNodeAddressing(), and meshOctreeAddressing::nodeType().

◆ octreeFacesPtr_

VRWGraph* octreeFacesPtr_
mutableprivate

◆ octreeFacesOwnersPtr_

labelLongList* octreeFacesOwnersPtr_
mutableprivate

◆ octreeFacesNeighboursPtr_

labelLongList* octreeFacesNeighboursPtr_
mutableprivate

◆ leafFacesPtr_

VRWGraph* leafFacesPtr_
mutableprivate

◆ nodeFacesPtr_

VRWGraph* nodeFacesPtr_
mutableprivate

◆ leafLeavesPtr_

VRWGraph* leafLeavesPtr_
mutableprivate

◆ octreeEdgesPtr_

LongList<edge>* octreeEdgesPtr_
mutableprivate

◆ edgeLeavesPtr_

VRWGraph* edgeLeavesPtr_
mutableprivate

◆ leafEdgesPtr_

VRWGraph* leafEdgesPtr_
mutableprivate

◆ nodeEdgesPtr_

VRWGraph* nodeEdgesPtr_
mutableprivate

◆ faceEdgesPtr_

VRWGraph* faceEdgesPtr_
mutableprivate

◆ edgeFacesPtr_

VRWGraph* edgeFacesPtr_
mutableprivate

◆ globalPointLabelPtr_

labelLongList* globalPointLabelPtr_
mutableprivate

◆ globalPointToLocalPtr_

Map<label>* globalPointToLocalPtr_
mutableprivate

◆ pointProcsPtr_

VRWGraph* pointProcsPtr_
mutableprivate

◆ globalFaceLabelPtr_

labelLongList* globalFaceLabelPtr_
mutableprivate

global octree face label

Definition at line 132 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::clearParallelAddressing(), and meshOctreeAddressing::globalFaceLabel().

◆ globalFaceToLocalPtr_

Map<label>* globalFaceToLocalPtr_
mutableprivate

global face label to local label addressing

Definition at line 135 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::clearParallelAddressing(), and meshOctreeAddressing::globalToLocalFaceAddressing().

◆ faceProcsPtr_

VRWGraph* faceProcsPtr_
mutableprivate

face-processors addressing

Definition at line 138 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::clearParallelAddressing(), and meshOctreeAddressing::faceAtProcs().

◆ globalLeafLabelPtr_

labelLongList* globalLeafLabelPtr_
mutableprivate

◆ globalLeafToLocalPtr_

Map<label>* globalLeafToLocalPtr_
mutableprivate

global leaf label to local label addressing for octree leaves

Definition at line 144 of file meshOctreeAddressing.H.

Referenced by meshOctreeAddressing::calcGlobalLeafLabels(), meshOctreeAddressing::clearParallelAddressing(), and meshOctreeAddressing::globalToLocalLeafAddressing().

◆ leafAtProcsPtr_

VRWGraph* leafAtProcsPtr_
mutableprivate

The documentation for this class was generated from the following files: