Vector implementation and trait types for boost qvm interoperability.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Abstract interface for the P3M reciprocal-space FFT.
std::complex< FloatType > ComplexType
virtual Utils::Vector3i ks_local_ld_index() const =0
Lower-left corner of this rank's k-space box (global coords).
virtual RSpaceScalar * forward_input_buffer()=0
Persistent, transform-ready buffer for the caller to fill with the no-halo real-space input; holds pr...
virtual void forward(RSpaceScalar const *in, ComplexType *out)=0
Forward transform (real/complex charge density to k-space).
FloatType RSpaceScalar
Real-space scalar type.
virtual Utils::Vector3i ks_local_ur_index() const =0
Upper-right corner (exclusive) of this rank's k-space box.
virtual Utils::Vector3i ks_local_size() const =0
Extent of this rank's k-space box.
virtual void backward(ComplexType *in, RSpaceScalar *out)=0
Backward transform (k-space field to real space).
virtual Utils::Vector3i rs_local_size() const =0
Extent of this rank's real-space (no-halo) box.
virtual ~P3MFFTBackend()=default