Gyselalib++
 
Loading...
Searching...
No Matches
impitranspose.hpp
1// SPDX-License-Identifier: MIT
2#pragma once
3#include <mpi.h>
4
5#include "ddc_aliases.hpp"
6
13template <class Layout1, class Layout2>
15{
16 static_assert(ddc::type_seq_same_v<
17 ddc::to_type_seq_t<typename Layout1::discrete_domain_type>,
18 ddc::to_type_seq_t<typename Layout2::discrete_domain_type>>);
19
20public:
22 using idx_range_type1 = typename Layout1::discrete_domain_type;
24 using idx_range_type2 = typename Layout2::discrete_domain_type;
25
26protected:
28 MPI_Comm m_comm;
29
30public:
36 explicit IMPITranspose(MPI_Comm comm) : m_comm(comm) {}
37};
A superclass describing an operator for converting from/to different MPI layouts.
Definition impitranspose.hpp:15
MPI_Comm m_comm
The MPI communicator.
Definition impitranspose.hpp:28
typename Layout1::discrete_domain_type idx_range_type1
The type of the index range of the first MPI layout.
Definition impitranspose.hpp:22
IMPITranspose(MPI_Comm comm)
A constructor for the class.
Definition impitranspose.hpp:36
typename Layout2::discrete_domain_type idx_range_type2
The type of the index range of the second MPI layout.
Definition impitranspose.hpp:24