Loading...
Searching...
No Matches
patch_skd_tree.hpp
80 double evalPointMinSquareDistance(const std::array<double, 3> &point, double emptySquareDistance) const;
85 double evalPointMaxSquareDistance(const std::array<double, 3> &point, double emptySquareDistance) const;
130 void findPointClosestCell(const std::array<double, 3> &point, bool interiorCellsOnly, long *closestId, double *closestDistance) const;
131 void updatePointClosestCell(const std::array<double, 3> &point, bool interiorCellsOnly, long *closestId, double *closestDistance) const;
132 void updatePointClosestCells(const std::array<double, 3> &point, bool interiorCellsOnly, std::vector<long> *closestIds, double *closestDistance) const;
152 static void executeMPIMinOperation(SkdGlobalCellDistance *in, SkdGlobalCellDistance *inout, int *len, MPI_Datatype *datatype);
The PatchKernel class provides an interface for defining patches.
Definition patch_kernel.hpp:54
PatchSkdTree is the class that implements a spatial kd-tree (skd-tree) a bitpit patch.
Definition patch_skd_tree.hpp:174
bool isCommunicatorSet() const
Definition patch_skd_tree.cpp:1469
std::size_t evalMaxDepth(std::size_t rootId=0) const
Definition patch_skd_tree.cpp:1251
const SkdBox & getPartitionBox(int rank) const
Definition patch_skd_tree.cpp:1527
std::size_t getLeafMinCellCount() const
Definition patch_skd_tree.cpp:1041
std::size_t getLeafMaxCellCount() const
Definition patch_skd_tree.cpp:1051
bool areLookupsThreadSafe() const
Definition patch_skd_tree.cpp:1409
void setCommunicator(MPI_Comm communicator)
Definition patch_skd_tree.cpp:1421
std::size_t getLeafCount() const
Definition patch_skd_tree.cpp:1218
SkdNode & _getNode(std::size_t nodeId)
Definition patch_skd_tree.cpp:1240
void enableThreadSafeLookups(bool enable)
Definition patch_skd_tree.cpp:1399
const SkdNode & getNode(std::size_t nodeId) const
Definition patch_skd_tree.cpp:1229
void build(std::size_t leaftThreshold=1, bool squeezeStorage=false)
Definition patch_skd_tree.cpp:1079
std::size_t getNodeCount() const
Definition patch_skd_tree.cpp:1208
PatchSkdTree(const PatchKernel *patch, bool interiorCellsOnly=false)
Definition patch_skd_tree.cpp:1023
const MPI_Comm & getCommunicator() const
Definition patch_skd_tree.cpp:1479
const PatchKernel & getPatch() const
Definition patch_skd_tree.cpp:1198
Metafunction for generating a pierced storage.
Definition piercedStorage.hpp:146
bool boxIntersectsSphere(const std::array< double, 3 > ¢er, double radius) const
Definition patch_skd_tree.cpp:410
double evalPointMaxSquareDistance(const std::array< double, 3 > &point) const
Definition patch_skd_tree.cpp:364
const std::array< double, 3 > & getBoxMin() const
Definition patch_skd_tree.cpp:213
double evalPointMaxDistance(const std::array< double, 3 > &point) const
Definition patch_skd_tree.cpp:328
double evalPointMinDistance(const std::array< double, 3 > &point) const
Definition patch_skd_tree.cpp:255
double evalPointMinSquareDistance(const std::array< double, 3 > &point) const
Definition patch_skd_tree.cpp:291
const std::array< double, 3 > & getBoxMax() const
Definition patch_skd_tree.cpp:223
bool boxContainsPoint(const std::array< double, 3 > &point, double offset) const
Definition patch_skd_tree.cpp:383
The SkdPatchInfo class defines a node of the skd-tree.
Definition patch_skd_tree.hpp:96
double evalPointDistance(const std::array< double, 3 > &point, bool interiorCellsOnly) const
Definition patch_skd_tree.cpp:659
void updatePointClosestCell(const std::array< double, 3 > &point, bool interiorCellsOnly, long *closestId, double *closestDistance) const
Definition patch_skd_tree.cpp:709
void findPointClosestCell(const std::array< double, 3 > &point, bool interiorCellsOnly, long *closestId, double *closestDistance) const
Definition patch_skd_tree.cpp:682
std::array< double, 3 > evalBoxWeightedMean() const
Definition patch_skd_tree.cpp:573
const SkdBox & getBoundingBox() const
Definition patch_skd_tree.cpp:561
void updatePointClosestCells(const std::array< double, 3 > &point, bool interiorCellsOnly, std::vector< long > *closestIds, double *closestDistance) const
Definition patch_skd_tree.cpp:802
static BITPIT_PUBLIC_API const std::size_t NULL_ID
Definition patch_skd_tree.hpp:101
std::size_t getChildId(ChildLocation child) const
Definition patch_skd_tree.cpp:643
The namespace 'patch' contains routines for interacting with the patch manager.
Definition patch_manager.cpp:185
The SkdGlobalCellDistance class allows to define a distance between a point and a cell.
Definition patch_skd_tree.hpp:147
static MPI_Datatype getMPIDatatype()
Definition patch_skd_tree.cpp:863
static void executeMPIMinOperation(SkdGlobalCellDistance *in, SkdGlobalCellDistance *inout, int *len, MPI_Datatype *datatype)
Definition patch_skd_tree.cpp:900
void exportData(int *rank, long *id, double *distance) const
Definition patch_skd_tree.cpp:958
static MPI_Op getMPIMinOperation()
Definition patch_skd_tree.cpp:882
The SkdPatchInfo class allows to store patch information needed for the construction and the utilizat...
Definition patch_skd_tree.hpp:36
std::array< double, 3 > evalCachedBoxMean(std::size_t rawId) const
Definition patch_skd_tree.cpp:141
SkdPatchInfo(const PatchKernel *patch, const std::vector< std::size_t > *cellRawIds)
Definition patch_skd_tree.cpp:47
const std::vector< std::size_t > & getCellRawIds() const
Definition patch_skd_tree.cpp:105
const std::array< std::array< double, 3 >, 2 > & getCachedBox(std::size_t rawId) const
Definition patch_skd_tree.cpp:130
std::size_t getCellRawId(std::size_t n) const
Definition patch_skd_tree.cpp:116
