IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::FFT< CCTransform, ComplexField > Class Template Reference

#include <FFT.h>

Inheritance diagram for ippl::FFT< CCTransform, ComplexField >:
Collaboration diagram for ippl::FFT< CCTransform, ComplexField >:

Public Types

using Complex_t = typename ComplexField::value_type

Public Member Functions

void warmup (ComplexField &f)
void transform (TransformDirection direction, ComplexField &f)

Private Types

using Base = IN_PLACE_FFT_BASE_CLASS(ComplexField, backend)

Static Private Attributes

static constexpr unsigned Dim = ComplexField::dim

Detailed Description

template<typename ComplexField>
class ippl::FFT< CCTransform, ComplexField >

complex-to-complex FFT class

Definition at line 191 of file FFT.h.

Member Typedef Documentation

◆ Base

template<typename ComplexField>
using ippl::FFT< CCTransform, ComplexField >::Base = IN_PLACE_FFT_BASE_CLASS(ComplexField, backend)
private

Definition at line 193 of file FFT.h.

◆ Complex_t

template<typename ComplexField>
using ippl::FFT< CCTransform, ComplexField >::Complex_t = typename ComplexField::value_type

Definition at line 196 of file FFT.h.

Member Function Documentation

◆ transform()

template<typename ComplexField>
void ippl::FFT< CCTransform, ComplexField >::transform ( TransformDirection direction,
ComplexField & f )

Perform in-place FFT

Parameters
directionForward or backward transformation
fField 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().

Referenced by warmup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ warmup()

template<typename ComplexField>
void ippl::FFT< CCTransform, ComplexField >::warmup ( ComplexField & f)

Warmup the FFT object by forward & backward FFT on an empty field

Parameters
fField whose transformation to compute (and overwrite)

Definition at line 112 of file FFT.hpp.

References ippl::BACKWARD, ippl::FORWARD, and transform().

Here is the call graph for this function:

Member Data Documentation

◆ Dim

template<typename ComplexField>
unsigned ippl::FFT< CCTransform, ComplexField >::Dim = ComplexField::dim
staticconstexprprivate

Definition at line 192 of file FFT.h.

Referenced by transform().


The documentation for this class was generated from the following files: