26#ifdef ESPRESSO_KOKKOS_FFT
32#include <boost/mpi/communicator.hpp>
36template <
typename FloatType>
37std::shared_ptr<P3MFFTBackend<FloatType, P3MFFTKokkosConfig>>
44#ifdef ESPRESSO_KOKKOS_FFT
46 if (comm.size() == 1) {
47 return std::make_shared<P3MFFTKokkos<FloatType, P3MFFTKokkosConfig>>(
54template std::shared_ptr<P3MFFTBackend<float, P3MFFTKokkosConfig>>
60template std::shared_ptr<P3MFFTBackend<double, P3MFFTKokkosConfig>>
template std::shared_ptr< P3MFFTBackend< float, P3MFFTKokkosConfig > > make_p3m_kokkos_fft_backend< float >(boost::mpi::communicator const &, Utils::Vector3i const &, Utils::Vector3i const &, Utils::Vector3i const &, Utils::Vector3i const &)
template std::shared_ptr< P3MFFTBackend< double, P3MFFTKokkosConfig > > make_p3m_kokkos_fft_backend< double >(boost::mpi::communicator const &, Utils::Vector3i const &, Utils::Vector3i const &, Utils::Vector3i const &, Utils::Vector3i const &)
std::shared_ptr< P3MFFTBackend< FloatType, P3MFFTKokkosConfig > > make_p3m_kokkos_fft_backend(boost::mpi::communicator const &comm, Utils::Vector3i const &global_mesh, Utils::Vector3i const &rs_local_ld_index, Utils::Vector3i const &rs_local_ur_index, Utils::Vector3i const &node_grid)
Build the single-rank kokkos-fft backend (P3MFFTKokkos) when it can serve this run,...
Vector implementation and trait types for boost qvm interoperability.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.