31template <
typename FloatType, Arch Architecture>
32std::shared_ptr<CoulombP3M>
39 std::make_unique<CoulombP3MState<FloatType, Architecture, FFTConfig>>(
42 std::make_shared<CoulombP3MHeffte<FloatType, Architecture, FFTConfig>>(
47std::shared_ptr<CoulombP3M>
62 throw std::invalid_argument(
63 "P3M GPU only implemented in single-precision mode");
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Arch
P3M kernel architecture.
std::shared_ptr< CoulombP3M > new_coulomb_p3m_impl(P3MParameters &&p3m, TuningParameters const &tuning_params, double prefactor)
std::shared_ptr< CoulombP3M > new_coulomb_p3m_heffte(P3MParameters &&p3m_params, TuningParameters const &tuning_params, double prefactor, bool single_precision, Arch arch)
Structure to hold P3M parameters and some dependent variables.