|
OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
|
complex-to-complex FFT class More...
#include <FFT.h>


Public Types | |
| using | Complex_t = typename ComplexField::value_type |
| using | heffteBackend = Backend |
| using | workspace_t = typename FFT< heffteBackend >::template buffer_container< BufferType > |
| using | Layout_t = FieldLayout< Dim > |
Public Member Functions | |
| void | warmup (ComplexField &f) |
| void | transform (TransformDirection direction, ComplexField &f) |
Protected Types | |
| using | temp_view_type = typename Kokkos::View< typename FieldType::view_type::data_type, Kokkos::LayoutLeft, typename FieldType::memory_space >::uniform_type |
Protected Member Functions | |
| void | domainToBounds (const NDIndex< Dim > &domain, std::array< long long, 3 > &low, std::array< long long, 3 > &high) |
| void | setup (const heffte::box3d< long long > &inbox, const heffte::box3d< long long > &outbox, const ParameterList ¶ms) |
| setup performs the initialization necessary. More... | |
Protected Attributes | |
| std::shared_ptr< heffte::fft3d< heffteBackend, long long > > | heffte_m |
| workspace_t | workspace_m |
| temp_view_type< ComplexField > | tempField |
Private Types | |
| using | Base = FFTBase< ComplexField, heffte::fft3d, typename detail::HeffteBackendType< typename ComplexField ::memory_space >::backend > |
Static Private Attributes | |
| static constexpr unsigned | Dim = ComplexField::dim |
complex-to-complex FFT class
|
private |
| using ippl::FFT< CCTransform, ComplexField >::Complex_t = typename ComplexField::value_type |
| using ippl::FFTBase< Field, FFT, Backend, BufferType >::heffteBackend = Backend |
| using ippl::FFTBase< Field, FFT, Backend, BufferType >::Layout_t = FieldLayout<Dim> |
|
protectedinherited |
| using ippl::FFTBase< Field, FFT, Backend, BufferType >::workspace_t = typename FFT<heffteBackend>::template buffer_container<BufferType> |
|
protectedinherited |
|
protectedinherited |
| void ippl::FFT< CCTransform, ComplexField >::transform | ( | TransformDirection | direction, |
| ComplexField & | f | ||
| ) |
Perform in-place FFT
| direction | Forward or backward transformation |
| f | Field whose transformation to compute (and overwrite) |
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) even though this can be changed during heffte box creation
Definition at line 118 of file FFT.hpp.
References ippl::apply(), ippl::BACKWARD, Dim, ippl::FORWARD, ippl::getRangePolicy(), ippl::parallel_for(), and ippl::detail::shrinkView().

| void ippl::FFT< CCTransform, ComplexField >::warmup | ( | ComplexField & | f | ) |
Warmup the FFT object by forward & backward FFT on an empty field
| f | Field whose transformation to compute (and overwrite) |
Definition at line 112 of file FFT.hpp.
References ippl::BACKWARD, and ippl::FORWARD.
|
staticconstexprprivate |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |