Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit edfa050

Browse files
authored
Merge pull request #560 from Rombur/point_search_clean_up
Point search clean up
2 parents d0a9348 + c1a8c6e commit edfa050

File tree

2 files changed

+250
-275
lines changed

2 files changed

+250
-275
lines changed

packages/Discretization/src/DTK_PointSearch_decl.hpp

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,12 @@ class PointSearch
6666
* @note This function should be <b>private</b> but lambda functions can
6767
* only be called from a public function in CUDA.
6868
*/
69-
void performDistributedSearch(
69+
std::tuple<Kokkos::View<ArborX::Point *, DeviceType>,
70+
Kokkos::View<int *, DeviceType>, Kokkos::View<int *, DeviceType>,
71+
Kokkos::View<int *, DeviceType>>
72+
performDistributedSearch(
7073
Kokkos::View<double **, DeviceType> points_coord,
71-
Kokkos::View<ArborX::Box *, DeviceType> bounding_boxes,
72-
Kokkos::View<ArborX::Point *, DeviceType> &imported_points,
73-
Kokkos::View<int *, DeviceType> &imported_query_ids,
74-
Kokkos::View<int *, DeviceType> &imported_cell_indices,
75-
Kokkos::View<int *, DeviceType> &ranks );
74+
Kokkos::View<ArborX::Box *, DeviceType> bounding_boxes );
7675

7776
/**
7877
* Keep cell_indices, points, query_ids, and ranks that satisfy a given
@@ -81,36 +80,31 @@ class PointSearch
8180
* @note This function should be <b>private</b> but lambda functions can
8281
* only be called from a public function in CUDA.
8382
*/
84-
void filterTopology(
83+
std::tuple<Kokkos::View<int *, DeviceType>,
84+
Kokkos::View<double **, DeviceType>,
85+
Kokkos::View<int *, DeviceType>, Kokkos::View<int *, DeviceType>>
86+
filterTopology(
8587
Kokkos::View<unsigned int *, DeviceType> topo, unsigned int topo_id,
88+
unsigned int size,
8689
Kokkos::View<unsigned int **, DeviceType> bounding_box_to_cell,
8790
Kokkos::View<int *, DeviceType> cell_indices,
8891
Kokkos::View<ArborX::Point *, DeviceType> points,
8992
Kokkos::View<int *, DeviceType> query_ids,
90-
Kokkos::View<int *, DeviceType> ranks,
91-
Kokkos::View<int *, DeviceType> filtered_cell_indices,
92-
Kokkos::View<double **, DeviceType> filtered_points,
93-
Kokkos::View<int *, DeviceType> filtered_query_ids,
94-
Kokkos::View<int *, DeviceType> filtered_ranks );
93+
Kokkos::View<int *, DeviceType> ranks );
9594

9695
/**
9796
* Keep data corresponding to points found inside the reference cell.
9897
*
9998
* @note This function should be <b>private</b> but lambda functions can
10099
* only be called from a public function in CUDA.
101100
*/
102-
void filterInCell(
103-
std::array<Kokkos::View<bool *, DeviceType>, DTK_N_TOPO> const
104-
&filtered_per_topo_point_in_cell,
105-
std::array<Kokkos::View<double **, DeviceType>, DTK_N_TOPO> const
106-
&filtered_per_topo_reference_points,
107-
std::array<Kokkos::View<int *, DeviceType>, DTK_N_TOPO> const
108-
&filtered_per_topo_cell_indices,
109-
std::array<Kokkos::View<int *, DeviceType>, DTK_N_TOPO> const
110-
&filtered_per_topo_query_ids,
111-
std::array<Kokkos::View<int *, DeviceType>, DTK_N_TOPO> const &ranks,
112-
std::array<Kokkos::View<int *, DeviceType>, DTK_N_TOPO>
113-
&filtered_ranks );
101+
Kokkos::View<int *, DeviceType> filterInCell(
102+
Kokkos::View<bool *, DeviceType> filtered_per_topo_point_in_cell,
103+
Kokkos::View<double **, DeviceType> filtered_per_topo_reference_points,
104+
Kokkos::View<int *, DeviceType> filtered_per_topo_cell_indices,
105+
Kokkos::View<int *, DeviceType> filtered_per_topo_query_ids,
106+
Kokkos::View<int *, DeviceType> filtered_per_topo_ranks,
107+
unsigned int topo_id );
114108

115109
private:
116110
/**
@@ -123,20 +117,15 @@ class PointSearch
123117
* Compute the position in the reference frame of candidates found by the
124118
* search.
125119
*/
126-
void performPointInCell(
120+
Kokkos::View<int *, DeviceType> performPointInCell(
127121
Kokkos::View<double ***, DeviceType> cells,
128122
Kokkos::View<unsigned int **, DeviceType> bounding_box_to_cell,
129123
Kokkos::View<int *, DeviceType> imported_cell_indices,
130124
Kokkos::View<ArborX::Point *, DeviceType> imported_points,
131125
Kokkos::View<int *, DeviceType> imported_query_ids,
132126
Kokkos::View<int *, DeviceType> imported_ranks,
133127
Kokkos::View<unsigned int *, DeviceType> topo, unsigned int topo_id,
134-
Kokkos::View<double **, DeviceType> filtered_points,
135-
Kokkos::View<int *, DeviceType> filtered_cell_indices,
136-
Kokkos::View<int *, DeviceType> filtered_query_ids,
137-
Kokkos::View<double **, DeviceType> reference_points,
138-
Kokkos::View<bool *, DeviceType> point_in_cell,
139-
Kokkos::View<int *, DeviceType> ranks );
128+
unsigned int size );
140129

141130
/**
142131
* Build the target-to-source distributor.

0 commit comments

Comments
 (0)