Go to the documentation of this file.
50 this->cubeBox(rootBox, cubeBox.
min(), cubeBox.
max());
60 for(
label scI=0;scI<8;++scI)
96 const point cubeCentre = this->centre(rootBox);
97 const scalar size = 1.732 * this->size(rootBox);
103 containedLeaves.
append(this->cubeLabel());
107 for(
label scI=0;scI<8;++scI)
143 const point cubeCentre = this->centre(rootBox);
144 const scalar size = 1.732 * this->size(rootBox);
150 markedLeaves[this->cubeLabel()] |= 2;
154 for(
label scI=0;scI<8;++scI)
176 atProcessorBnd =
true;
196 for(
label scI=0;scI<8;++scI)
214 for(
label scI=0;scI<8;++scI)
235 for(
label scI=0;scI<8;++scI)
256 if( this->
procNo() != procNo )
265 label mergedSubcubes = 0;
266 for(
label scI=0;scI<8;++scI)
270 mergedSubcubes |= 1 << scI;
277 mergedSubcubes |= 1 << scI;
281 if( mergedSubcubes == 255 )
void append(const T &e)
Append an element at the end of the list.
const point & max() const
Maximum describing the bounding box.
void append(T *)
Append an element at the end of the list.
point centre(const boundBox &) const
return centre
Template functions to aid in the implementation of demand driven data.
void findCoordinatesOfMissingCubes(LongList< meshOctreeCubeCoordinates > &coordinates) const
find coordinates of cubes which are located on other processors
static bool & parRun()
Is this a parallel run?
label size() const
Size of the active part of the list.
void leavesInSphere(const boundBox &rootBox, const point &, const scalar, DynList< label > &) const
find leaves within a sphere
void countChildCubes(label &nCubes) const
count number of originating from this cube
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
label cubeLabel_
position of the cube in the list of leaves
bool overlaps(const boundBox &) const
Overlaps/touches boundingBox?
meshOctreeCube ** subCubesPtr_
pointer to the first child element
bool isLeaf() const
check if the cube is a leaf
const point & min() const
Minimum describing the bounding box.
void leavesInBox(const boundBox &rootBox, const boundBox &searchingBox, DynList< const meshOctreeCube *, 256 > &) const
leaves contained in the given box
PtrList< coordinateSystem > coordinates(solidRegions.size())
void setProcNo(const short)
set processor number
void markLeavesInSphere(const boundBox &rootBox, const point &, const scalar, labelList &, bool &) const
mark leaves within a sphere
bool purgeProcessorCubes(const short procNo)
delete boxes which are not local to the given processor
dimensionedSymmTensor sqr(const dimensionedVector &dv)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
short procNo() const
return processor number
A bounding box defined in terms of the points at its extremities.
const dimensionedScalar c
Speed of light in a vacuum.
void cubeBox(const boundBox &, point &, point &) const
return min and max points
void findLeaves(LongList< meshOctreeCube * > &leaves) const
find leaves for a given cube
dimensioned< scalar > magSqr(const dimensioned< Type > &)
void append(const T &e)
Append an element at the end of the list.