class
#include <atlas/parallel/HaloExchange.h>
HaloExchange
Public types
- struct Backdoor
Constructors, destructors, conversion operators
- HaloExchange()
-
HaloExchange(const std::
string& name) - ~HaloExchange() virtual
Public functions
-
auto name() const -> const std::
string& -
void setup(const int part[],
const idx_
t remote_idx[], const int base, idx_ t size) -
void setup(const std::
string& mpi_comm, const int part[], const idx_ t remote_idx[], const int base, idx_ t size) -
void setup(const int part[],
const idx_
t remote_idx[], const int base, idx_ t size, idx_ t halo_begin) -
void setup(const std::
string& mpi_comm, const int part[], const idx_ t remote_idx[], const int base, idx_ t size, idx_ t halo_begin) -
template<typename DATA_TYPE, int RANK, typename ParallelDim = array::FirstDim>void execute(array::
Array& field, bool on_device = false) const -
template<typename DATA_TYPE, int RANK, typename ParallelDim = array::FirstDim>void execute_adjoint(array::
Array& field, bool on_device = false) const -
template<int ParallelDim, typename DATA_TYPE, int RANK>void zero_halos(ATLAS_MAYBE_UNUSED const array::
ArrayView<DATA_TYPE, RANK>& hfield, array:: ArrayView<DATA_TYPE, RANK>& dfield, DATA_TYPE* recv_buffer, int recv_size, ATLAS_MAYBE_UNUSED const bool on_device) const -
template<int ParallelDim, typename DATA_TYPE, int RANK>void pack_send_buffer(ATLAS_MAYBE_UNUSED const array::
ArrayView<DATA_TYPE, RANK>& hfield, const array:: ArrayView<DATA_TYPE, RANK>& dfield, DATA_TYPE* send_buffer, int send_size, ATLAS_MAYBE_UNUSED const bool on_device) const -
template<int ParallelDim, typename DATA_TYPE, int RANK>void unpack_recv_buffer(const DATA_TYPE* recv_buffer, int recv_size, ATLAS_MAYBE_UNUSED array::
ArrayView<DATA_TYPE, RANK>& hfield, array:: ArrayView<DATA_TYPE, RANK>& dfield, ATLAS_MAYBE_UNUSED const bool on_device) const -
template<int ParallelDim, typename DATA_TYPE, int RANK>void pack_recv_adjoint_buffer(ATLAS_MAYBE_UNUSED const array::
ArrayView<DATA_TYPE, RANK>& hfield, const array:: ArrayView<DATA_TYPE, RANK>& dfield, DATA_TYPE* recv_buffer, int recv_size, ATLAS_MAYBE_UNUSED const bool on_device) const -
template<int ParallelDim, typename DATA_TYPE, int RANK>void unpack_send_adjoint_buffer(const DATA_TYPE* send_buffer, int send_size, ATLAS_MAYBE_UNUSED array::
ArrayView<DATA_TYPE, RANK>& hfield, array:: ArrayView<DATA_TYPE, RANK>& dfield, ATLAS_MAYBE_UNUSED const bool on_device) const
Public variables
Function documentation
template<typename DATA_TYPE, int RANK, typename ParallelDim = array::FirstDim>
void atlas:: parallel:: HaloExchange:: execute(array:: Array& field,
bool on_device = false) const
Pack
Unpack
template<typename DATA_TYPE, int RANK, typename ParallelDim = array::FirstDim>
void atlas:: parallel:: HaloExchange:: execute_adjoint(array:: Array& field,
bool on_device = false) const
Pack
Send
Unpack
Wait for sending to finish