atlas::parallel::HaloExchange class

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

struct atlas::parallel::HaloExchange::Backdoor backdoor

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

This website is beyond its original expiry date and the content may be out of date. The site owner has been notified and may choose to extend the expiry date and remove this banner. If you have any questions about this, please visit our support portal.