Go to the documentation of this file.
46 Info <<
"Checking the surface of the selected boxes" <<
endl;
73 const label own = owner[faceI];
74 const label nei = neighbour[faceI];
87 boundaryFace[faceI] =
true;
94 label nBoundaryFaces(0);
99 if( boundaryFace[faceI] )
103 if( nBoundaryFaces > 2 )
110 changedBoxType.
insert(leafI);
123 const label faceI = pointFaces(pI, pfI);
124 if( boundaryFace[faceI] )
125 bndFacesAtNode.
insert(faceI);
130 bool watertightSurface(
true);
131 while( bndFacesAtNode.
size() != 0 )
135 bndFacesAtNode.
erase(front[0]);
137 while( front.
size() != 0 )
150 if( bndFacesAtNode.
found(fJ) )
154 bndFacesAtNode.
erase(fJ);
160 watertightSurface =
false;
169 if( watertightSurface && (nGroups > 1) )
176 const label faceI = pointFaces(pI, pfI);
177 if( boundaryFace[faceI] )
182 changedBoxType.
insert(owner[faceI]);
186 if( neighbour[faceI] == -1 )
191 changedBoxType.
insert(neighbour[faceI]);
200 Info << nIrregular <<
" surface connections found!" <<
endl;
226 }
while( nIrregular != 0 );
232 Info <<
"Finished checking the surface of the selected boxes" <<
endl;
void append(const T &e)
Append an element at the end of the list.
#define forAll(list, i)
Loop across all elements in list.
void checkAndFixIrregularConnections()
Template functions to aid in the implementation of demand driven data.
static bool & parRun()
Is this a parallel run?
Ostream & endl(Ostream &os)
Add newline and flush stream.
label size() const
Size of the active part of the list.
T removeLastElement()
Return and remove the last element.
void clearNodeAddressing()
const labelLongList & octreeFaceOwner() const
return owners of octree faces
const meshOctreeCubeCoordinates & coordinates() const
return coordinates in the octree
forAllConstIter(PtrDictionary< phaseModel >, mixture.phases(), phase)
label findLeafLabelForPosition(const meshOctreeCubeCoordinates &) const
return leaf cube for the given position
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void exchangeRequestsWithNeighbourProcessors(const LongList< meshOctreeCubeCoordinates > &dataToSend, LongList< meshOctreeCubeCoordinates > &dataToReceive) const
exchange requests with other processors generating the octree
List< direction > * boxTypePtr_
identify which boxes should be used as mesh cells
bool erase(const iterator &)
Erase a hashedEntry specified by given iterator.
#define forAllRow(graph, rowI, index)
label sizeOfRow(const label rowI) const
Returns the number of elements in the given row.
label size() const
Return number of elements in table.
const VRWGraph & nodeFaces() const
return node-faces addressing
const VRWGraph & edgeLeaves() const
return edge-leaves addressing
bool found(const Key &) const
Return true if hashedEntry is found in table.
const VRWGraph & faceEdges() const
return face-edges addressing
const labelLongList & octreeFaceNeighbour() const
return neighbours of octree faces
const List< direction > & boxType() const
return which octree boxes are used for mesh creation
iterator begin()
Iterator set to the beginning of the HashTable.
bool insert(const Key &key)
Insert a new entry.
const meshOctree & octree_
reference to the octree
const meshOctreeCubeBasic & returnLeaf(const label) const
void clear()
Clear the list, i.e. set next free to zero.
const VRWGraph & edgeFaces() const
return edge-faces addressing
void append(const T &e)
Append an element at the end of the list.