32#include "../parallelization/omp_structure.hpp"
45 vector<su2double> coorPoints;
47 vector<su2double> BBoxCoor;
50 vector<unsigned short> elemVTK_Type;
52 vector<unsigned long> nDOFsPerElem;
55 vector<unsigned long> elemConns;
57 vector<unsigned short> localMarkers;
59 vector<unsigned long> localElemIDs;
61 vector<int> ranksOfElems;
64 vector<vector<CBBoxTargetClass> > BBoxTargets;
67 array<vector<CBBoxTargetClass>, 1> BBoxTargets;
83 CADTElemClass(
unsigned short val_nDim, vector<su2double>& val_coor, vector<unsigned long>& val_connElem,
84 vector<unsigned short>& val_VTKElem, vector<unsigned short>& val_markerID,
85 vector<unsigned long>& val_elemID,
const bool globalTree);
105 rankID, parCoor, weightsInterpol);
119 unsigned long& elemID,
int& rankID) {
122 markerID, elemID, rankID);
130 bool DetermineContainingElement_impl(vector<unsigned long>& frontLeaves, vector<unsigned long>& frontLeavesNew,
131 const su2double* coor,
unsigned short& markerID,
unsigned long& elemID,
138 void DetermineNearestElement_impl(vector<CBBoxTargetClass>& BBoxTargets, vector<unsigned long>& frontLeaves,
140 unsigned short& markerID,
unsigned long& elemID,
int& rankID)
const;
154 bool CoorInElement(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
169 bool CoorInQuadrilateral(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
184 bool CoorInTriangle(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
199 bool CoorInHexahedron(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
214 bool CoorInPrism(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
229 bool CoorInPyramid(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
244 bool CoorInTetrahedron(
const unsigned long elemID,
const su2double* coor,
su2double* parCoor,
258 bool InitialGuessContainmentHexahedron(
const su2double xRelC[3],
const su2double xRel[8][3],
294 void Dist2ToElement(
const unsigned long elemID,
const su2double* coor,
su2double& dist2Elem)
const;
305 void Dist2ToLine(
const unsigned long i0,
const unsigned long i1,
const su2double* coor,
su2double& dist2Line)
const;
324 bool Dist2ToQuadrilateral(
const unsigned long i0,
const unsigned long i1,
const unsigned long i2,
342 bool Dist2ToTriangle(
const unsigned long i0,
const unsigned long i1,
const unsigned long i2,
const su2double* coor,
Base class for storing an ADT in an arbitrary number of dimensions.
Class for storing the information of a possible bounding box candidate during a minimum distance sear...
Base class for storing an ADT in an arbitrary number of dimensions.
Definition CADTBaseClass.hpp:45
array< vector< unsigned long >, 1 > FrontLeaves
Definition CADTBaseClass.hpp:57
array< vector< unsigned long >, 1 > FrontLeavesNew
Definition CADTBaseClass.hpp:58
Class for storing an ADT of (linear) elements in an arbitrary number of dimensions.
Definition CADTElemClass.hpp:41
bool DetermineContainingElement(const su2double *coor, unsigned short &markerID, unsigned long &elemID, int &rankID, su2double *parCoor, su2double *weightsInterpol)
Function, which determines the element that contains the given coordinate.
Definition CADTElemClass.hpp:101
void DetermineNearestElement(const su2double *coor, su2double &dist, unsigned short &markerID, unsigned long &elemID, int &rankID)
Function, which determines the nearest element in the ADT for the given coordinate.
Definition CADTElemClass.hpp:118
passivedouble su2double
Definition code_config.hpp:181
constexpr int omp_get_thread_num()
Index of current thread, akin to MPI rank.
Definition omp_structure.hpp:85