31template <
typename FloatType, Arch Architecture>
32std::shared_ptr<CoulombP3M>
38 std::make_unique<CoulombP3MState<FloatType, DefaultFFTConfig>>(
40 auto obj = std::make_shared<
46std::shared_ptr<CoulombP3M>
61 throw std::invalid_argument(
62 "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.