22#include <gpu/FieldAccessor.h>
24#if defined(__CUDACC__)
34template <
typename FloatType>
36 if (x == 0 && y == 0 && z == 0)
38 auto constexpr two_pi = FloatType{2} * std::numbers::pi_v<FloatType>;
39 return FloatType(-0.5) /
40 FloatType(std::cos(
two_pi * FloatType(x) / FloatType(dim[0])) +
41 std::cos(
two_pi * FloatType(y) / FloatType(dim[1])) +
42 std::cos(
two_pi * FloatType(z) / FloatType(dim[2])) - 3.) /
43 static_cast<FloatType
>(dim[0] * dim[1] * dim[2]);
46#if defined(__CUDACC__)
48template <
typename FloatType>
53 using RealType = std::conditional<std::is_same<FloatType, float>::value,
85template <
typename FloatType,
typename ComplexType>
98template <
typename FloatType>
109template <
typename FloatType>
111 gpu::FieldAccessor<FloatType>
src_field) {
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
\file PackInfoPdfDoublePrecision.cpp \author pystencils
FloatType greens_function(int x, int y, int z, auto const &dim)