Go to the documentation of this file.
14 cellExtent_(
max(cellExtent, 0.5 ) ),
15 numElements_(numElements),
16 numPoints_(numPoints),
27 "pFlow::cellsWallLevel0::build",
32 auto p1 =
points_[v.x()]+transferVec;
33 auto p2 =
points_[v.y()]+transferVec;
34 auto p3 =
points_[v.z()]+transferVec;
42 validBox_[i] = (d.x()*d.y()*d.z())==0? 0:1;
52 const cells &searchCells,
63 while (nNotInserted>0u)
65 build(searchCells,{0,0,0});
66 nNotInserted = findPairsElementRangeCount(
75 build(searchCells, transferVec);
76 nNotInserted += findPairsElementRangeCount(
94 INFORMATION<<
"The contact pair container capacity increased from "<<
95 oldCap <<
" to "<<pairs.
capacity()<<
" in wallBoundaryContactSearch."<<
END_INFO;
104 const cells &searchCells,
107 const realx3 &transferVec,
112 if(pPoints.
empty())
return 0u;
116 const auto& numElements = numElements_;
117 const auto& elementBox = elementBox_;
118 const auto& validBox = validBox_;
120 Kokkos::parallel_reduce(
121 "pFlow::wallBoundaryContactSearch::findPairsElementRangeCount",
125 auto p = pPoints[i]+transferVec;
129 for(uint32 nTri=0; nTri<numElements; nTri++)
131 if( validBox[nTri]== 0)continue;
132 if( elementBox[nTri].isInside(ind)&&
133 pairs.insert(i,nTri+baseTriIndex) == static_cast<uint32>(-1))
INLINE_FUNCTION_HD uint32 capacity() const
INLINE_FUNCTION_HD uint32 size() const
INLINE_FUNCTION_H Type max(const Type *first, uint32 numElems)
INLINE_FUNCTION_HD bool pointIndexInDomain(const realx3 p, int32x3 &index) const
T max(const internalField< T, MemorySpace > &iField)
INLINE_FUNCTION_HD void extendBox(const realx3 &p1, const realx3 &p2, const realx3 &p3, real extent, realx3 &minP, realx3 &maxP) const
const uint32 BASE_MIRROR_WALL_INDEX
INLINE_FUNCTION_H void increaseCapacityBy(uint32 len)
increase the capacity of the container by at-least len the content will be erased.
Kokkos::View< T *, properties... > ViewType1D
1D veiw as a vector
INLINE_FUNCTION_HD int32x3 pointIndex(const realx3 &p) const
Kokkos::RangePolicy< Kokkos::DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Dynamic >, Kokkos::IndexType< pFlow::uint32 > > deviceRPolicyDynamic
Kokkos::RangePolicy< Kokkos::DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< pFlow::uint32 > > deviceRPolicyStatic
INLINE_FUNCTION_HD bool empty() const