|
IPPL (Independent Parallel Particle Layer)
IPPL
|
#include <FFT.h>
Public Member Functions | |
| void | warmup (Field &f) |
| void | transform (TransformDirection direction, Field &f) |
Private Types | |
| using | Base = IN_PLACE_FFT_BASE_CLASS(Field, backendCos1) |
Static Private Attributes | |
| static constexpr unsigned | Dim = Field::dim |
Cosine type 1 transform class
|
private |
| void ippl::FFT< Cos1Transform, Field >::transform | ( | TransformDirection | direction, |
| Field & | f ) |
Perform in-place FFT
| direction | Forward or backward transformation |
| f | Field whose transformation to compute (and overwrite) |
This rescaling is needed to match the normalization constant between fftw and the other gpu interfaces. fftw rescales with an extra factor of 8.
This copy to a temporary Kokkos view is needed because of following reasons: 1) heffte wants the input and output fields without ghost layers 2) heffte accepts data in layout left (by default) eventhough this can be changed during heffte box creation
This rescaling is needed to match the normalization constant between fftw and the other gpu interfaces. fftw rescales with an extra factor of 8.
Definition at line 390 of file FFT.hpp.
References ippl::apply(), ippl::BACKWARD, Dim, ippl::FORWARD, ippl::BareField< T, Dim, ViewArgs >::getNghost(), ippl::BareField< T, Dim, ViewArgs >::getOwned(), ippl::getRangePolicy(), ippl::BareField< T, Dim, ViewArgs >::getView(), ippl::parallel_for(), ippl::detail::shrinkView(), and ippl::NDIndex< Dim >::size().
Referenced by warmup().
| void ippl::FFT< Cos1Transform, Field >::warmup | ( | Field & | f | ) |
Warmup the FFT object by forward & backward FFT on an empty field
| f | Field whose transformation to compute (and overwrite) |
Definition at line 384 of file FFT.hpp.
References ippl::BACKWARD, ippl::FORWARD, and transform().
|
staticconstexprprivate |
Definition at line 314 of file FFT.h.
Referenced by transform().