Go to the documentation of this file.
12 const cells &searchCells,
17 if(points.
empty())
return;
22 "pFlow::ppwBndryContactSearch::buildList",
30 uint32 old = Kokkos::atomic_exchange(&head(ind.x(), ind.y(), ind.z()), i);
48 const cells &searchCells,
53 if(points.
empty())
return 0;
54 if(mirrorPoints.
empty())
return 0;
56 auto nMirror = mirrorPoints.
size();
60 Kokkos::parallel_reduce(
61 "pFlow::pweBndryContactSearchKernels::broadSearchPP",
65 realx3 p_m = mirrorPoints(mrrI) + transferVec;
70 real d_m = sizeRatio*mirrorDiams[mrrI];
72 for(
int ii=-1; ii<2; ii++)
74 for(
int jj=-1; jj<2; jj++)
76 for(
int kk =-1; kk<2; kk++)
78 auto ind = ind_m +
int32x3{ii,jj,kk};
82 uint32 thisI = head(ind.x(),ind.y(),ind.z());
83 while (thisI!=
static_cast<uint32>(-1))
86 auto d_n = sizeRatio*diams[thisI];
INLINE_FUNCTION_HD uint32 size() const
INLINE_FUNCTION_HD bool pointIndexInDomain(const realx3 p, int32x3 &index) const
INLINE_FUNCTION_HD uint32 insert(idType i, idType j) const
Kokkos::View< T * > deviceViewType1D
1D array (vector) with default device (memory space and execution space)
INLINE_FUNCTION_HD bool inCellRange(const int32x3 &cell) const
INLINE_FUNCTION_HD T length(const triple< T > &v1)
Kokkos::View< T ***, Layout, void > deviceViewType3D
3D view on device as an array on device
Kokkos::RangePolicy< Kokkos::DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< pFlow::uint32 > > deviceRPolicyStatic
INLINE_FUNCTION_HD bool empty() const
#define INLINE_FUNCTION_HD