5#ifndef IPPL_HALO_CELLS_H
6#define IPPL_HALO_CELLS_H
10#include "Types/IpplTypes.h"
14#include "FieldLayout/FieldLayout.h"
22 template <
typename T,
class... ViewArgs>
38 template <
typename T,
unsigned Dim,
class... ViewArgs>
49 HALO_TO_INTERNAL_NOGHOST
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>
142 void exchangeBoundaries(view_type& view,
Layout_t* layout, SendOrder order,
int nghost = 1);
150 auto makeSubview(
const view_type& view,
const bound_type& intersect);
157#include "Field/HaloCells.hpp"
Definition FieldLayout.h:166
void serialize(const Kokkos::View< T *, ViewArgs... > &view, size_type nsends)
Definition Archive.hpp:25
void deserialize(Kokkos::View< T *, ViewArgs... > &view, size_type nrecvs)
Definition Archive.hpp:76
Definition HaloCells.h:39
void accumulateHalo_noghost(view_type &view, Layout_t *layout, int nghost)
Definition HaloCells.hpp:24
void applyPeriodicSerialDim(view_type &view, const Layout_t *layout, const int nghost)
Definition HaloCells.hpp:234
void pack(const bound_type &range, const view_type &view, databuffer_type &fd, size_type &nsends)
Definition HaloCells.hpp:158
void unpack(const bound_type &range, const view_type &view, databuffer_type &fd)
Definition HaloCells.hpp:193
void accumulateHalo(view_type &view, Layout_t *layout)
Definition HaloCells.hpp:19
void fillHalo(view_type &, Layout_t *layout)
Definition HaloCells.hpp:28
Definition FieldLayout.h:172
Definition HaloCells.h:23
Definition HaloCells.h:103
Definition HaloCells.h:111
Definition HaloCells.h:119
Definition ViewTypes.h:44