24template <KokkosViewRank<2> SourceType, KokkosViewRank<1> TargetType,
29 using ExecSpace =
typename SourceType::execution_space;
33 Kokkos::RangePolicy<ExecSpace>(
ExecSpace{}, 0,
K),
35 ::ArborX::Point<Dim, coordinates_t>
point{};
51 const std::string
_region_name =
"MLSInterpolator::MLSInterpolator";
55 using Point = ::ArborX::Point<Dim, coordinates_t>;
56 using MemSpace =
typename ExecSpace::memory_space;
59 static_cast<int_t>(rTransfer.targetPoints.extent(0));
61 auto tgtPoints = Kokkos::View<Point *, MemSpace>(
62 Kokkos::view_alloc(execspace, Kokkos::WithoutInitializing,
63 "MLSInterpolator::tgtPoints"),
65 FillPoints<
decltype(rTransfer.targetPoints),
decltype(tgtPoints), Dim>(
66 rTransfer.targetPoints, tgtPoints);
70 this->out = rTransfer.targetValues;
73 ::ArborX::Interpolation::MovingLeastSquares<MemSpace> MLS(
74 execspace, rTransfer.sourcePoints, tgtPoints);
75 MLS.interpolate(execspace, rTransfer.sourceValues, this->out);
static void FillPoints(const SourceType &sourceView, TargetType &targetView)
Convert a 2-D [N × Dim] coordinate view into a 1-D view of ArborX::Point<Dim, coordinates_t>.