Skip to content
Snippets Groups Projects
Commit 0f668693 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Add copy_to to CastArray (fixes sequential build)

parent 546807e7
No related branches found
No related tags found
1 merge request!124Add files for high order integration with quadratures
...@@ -32,6 +32,18 @@ class [[nodiscard]] CastArray ...@@ -32,6 +32,18 @@ class [[nodiscard]] CastArray
return m_values[i]; return m_values[i];
} }
template <typename ImageDataType, typename ImageCastDataType>
friend PUGS_INLINE void copy_to(const CastArray& source_array,
CastArray<ImageDataType, ImageCastDataType>& image_array)
{
static_assert(std::is_same_v<std::remove_const_t<CastDataType>, ImageCastDataType>);
static_assert(not std::is_const_v<ImageCastDataType>);
Assert(source_array.size() == image_array.size());
std::copy(source_array.m_values, source_array.m_values + source_array.size(), &image_array[0]);
}
PUGS_INLINE PUGS_INLINE
CastArray& operator=(const CastArray&) = default; CastArray& operator=(const CastArray&) = default;
......
...@@ -135,7 +135,7 @@ class Messenger ...@@ -135,7 +135,7 @@ class Messenger
MPI_Gather(data_address, data_array.size(), mpi_datatype, gather_address, data_array.size(), mpi_datatype, rank, MPI_Gather(data_address, data_array.size(), mpi_datatype, gather_address, data_array.size(), mpi_datatype, rank,
MPI_COMM_WORLD); MPI_COMM_WORLD);
#else // PUGS_HAS_MPI #else // PUGS_HAS_MPI
value_copy(data_array, gather_array); copy_to(data_array, gather_array);
#endif // PUGS_HAS_MPI #endif // PUGS_HAS_MPI
} }
...@@ -176,7 +176,7 @@ class Messenger ...@@ -176,7 +176,7 @@ class Messenger
MPI_Gatherv(data_address, data_array.size(), mpi_datatype, gather_address, sizes_address, positions_address, MPI_Gatherv(data_address, data_array.size(), mpi_datatype, gather_address, sizes_address, positions_address,
mpi_datatype, rank, MPI_COMM_WORLD); mpi_datatype, rank, MPI_COMM_WORLD);
#else // PUGS_HAS_MPI #else // PUGS_HAS_MPI
value_copy(data_array, gather_array); copy_to(data_array, gather_array);
#endif // PUGS_HAS_MPI #endif // PUGS_HAS_MPI
} }
...@@ -221,7 +221,7 @@ class Messenger ...@@ -221,7 +221,7 @@ class Messenger
MPI_Allgather(data_address, data_array.size(), mpi_datatype, gather_address, data_array.size(), mpi_datatype, MPI_Allgather(data_address, data_array.size(), mpi_datatype, gather_address, data_array.size(), mpi_datatype,
MPI_COMM_WORLD); MPI_COMM_WORLD);
#else // PUGS_HAS_MPI #else // PUGS_HAS_MPI
value_copy(data_array, gather_array); copy_to(data_array, gather_array);
#endif // PUGS_HAS_MPI #endif // PUGS_HAS_MPI
} }
...@@ -261,7 +261,7 @@ class Messenger ...@@ -261,7 +261,7 @@ class Messenger
MPI_Allgatherv(data_address, data_array.size(), mpi_datatype, gather_address, sizes_address, positions_address, MPI_Allgatherv(data_address, data_array.size(), mpi_datatype, gather_address, sizes_address, positions_address,
mpi_datatype, MPI_COMM_WORLD); mpi_datatype, MPI_COMM_WORLD);
#else // PUGS_HAS_MPI #else // PUGS_HAS_MPI
value_copy(data_array, gather_array); copy_to(data_array, gather_array);
#endif // PUGS_HAS_MPI #endif // PUGS_HAS_MPI
} }
...@@ -322,7 +322,7 @@ class Messenger ...@@ -322,7 +322,7 @@ class Messenger
MPI_Alltoall(sent_address, count, mpi_datatype, recv_address, count, mpi_datatype, MPI_COMM_WORLD); MPI_Alltoall(sent_address, count, mpi_datatype, recv_address, count, mpi_datatype, MPI_COMM_WORLD);
#else // PUGS_HAS_MPI #else // PUGS_HAS_MPI
value_copy(sent_array, recv_array); copy_to(sent_array, recv_array);
#endif // PUGS_HAS_MPI #endif // PUGS_HAS_MPI
} }
...@@ -377,7 +377,7 @@ class Messenger ...@@ -377,7 +377,7 @@ class Messenger
Assert(sent_array_list.size() == 1); Assert(sent_array_list.size() == 1);
Assert(recv_array_list.size() == 1); Assert(recv_array_list.size() == 1);
value_copy(sent_array_list[0], recv_array_list[0]); copy_to(sent_array_list[0], recv_array_list[0]);
#endif // PUGS_HAS_MPI #endif // PUGS_HAS_MPI
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment