5#ifndef IPPL_HALO_CELLS_H
6#define IPPL_HALO_CELLS_H
22 template <
typename T,
class... ViewArgs>
38 template <
typename T,
unsigned Dim,
class... ViewArgs>
96 template <
typename Op>
104 KOKKOS_INLINE_FUNCTION
void operator()(
T& lhs,
const T& rhs)
const { lhs = rhs; }
112 KOKKOS_INLINE_FUNCTION
void operator()(
T& lhs,
const T& rhs)
const { lhs += rhs; }
120 KOKKOS_INLINE_FUNCTION
void operator()(
const T& lhs,
T& rhs)
const { rhs += lhs; }
129 template <
typename Op>
void serialize(const Kokkos::View< T *, ViewArgs... > &view, size_type nsends)
void deserialize(Kokkos::View< T *, ViewArgs... > &view, size_type nrecvs)
typename detail::ViewType< T, 1, ViewArgs... >::view_type view_type
Archive< typename view_type::memory_space > archive_type
void deserialize(archive_type &ar, size_type nrecvs)
void serialize(archive_type &ar, size_type nsends)
auto makeSubview(const view_type &view, const bound_type &intersect)
void accumulateHalo_noghost(view_type &view, Layout_t *layout, int nghost)
typename detail::ViewType< T, Dim, ViewArgs... >::view_type view_type
databuffer_type haloData_m
void applyPeriodicSerialDim(view_type &view, const Layout_t *layout, const int nghost)
@ HALO_TO_INTERNAL_NOGHOST
void pack(const bound_type &range, const view_type &view, databuffer_type &fd, size_type &nsends)
FieldLayout< Dim > Layout_t
void exchangeBoundaries(view_type &view, Layout_t *layout, SendOrder order, int nghost=1)
FieldBufferData< T, ViewArgs... > databuffer_type
void unpack(const bound_type &range, const view_type &view, databuffer_type &fd)
typename Layout_t::bound_type bound_type
void accumulateHalo(view_type &view, Layout_t *layout)
void fillHalo(view_type &, Layout_t *layout)
KOKKOS_INLINE_FUNCTION void operator()(T &lhs, const T &rhs) const
KOKKOS_INLINE_FUNCTION void operator()(T &lhs, const T &rhs) const
KOKKOS_INLINE_FUNCTION void operator()(const T &lhs, T &rhs) const