|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <FFTBase.h>
Public Types | |
| enum | { dimensions = Dim } |
| enum | FFT_e { ccFFT , rcFFT , sineFFT , cosineFFT } |
| typedef T | Precision_t |
| typedef NDIndex< Dim > | Domain_t |
| typedef FFTPACK< T > | InternalFFT_t |
Public Member Functions | |
| FFTBase () | |
| FFTBase (FFT_e transform, const Domain_t &domain, const bool transformTheseDims[Dim], bool compressTemps) | |
| FFTBase (FFT_e transform, const Domain_t &domain, bool compressTemps) | |
| virtual | ~FFTBase (void) |
| void | write (std::ostream &out) const |
| void | setDirectionName (int direction, const char *directionName) |
| void | setNormFact (Precision_t nf) |
| int | transVnodes () const |
Protected Member Functions | |
| int | getDirection (const char *directionName) const |
| translate direction name string into dimension number | |
| bool | transformDim (unsigned d) const |
| query whether this dimension is to be transformed | |
| unsigned | numTransformDims (void) const |
| query number of transform dimensions | |
| unsigned | activeDimension (unsigned d) const |
| get dimension number from list of transformed dimensions | |
| InternalFFT_t & | getEngine (void) |
| access the internal FFT Engine | |
| Precision_t & | getNormFact (void) |
| get the FFT normalization factor | |
| const Domain_t & | getDomain (void) const |
| get our domain | |
| bool | checkDomain (const Domain_t &dom1, const Domain_t &dom2) const |
| compare indexes of two domains | |
| bool | compressTemps (void) const |
| do we compress temps? | |
Static Protected Attributes | |
| static GuardCellSizes< Dim > | nullGC |
| null GuardCellSizes object for checking BareField arguments to transform | |
Private Attributes | |
| std::map< const char *, int > | directions_m |
| Stores user-defined names for FFT directions: | |
| FFT_e | transformType_m |
| Indicates which type of transform we do. | |
| bool | transformDims_m [Dim] |
| Indicates which dimensions are transformed. | |
| unsigned | nTransformDims_m |
| Stores the number of dims to be transformed. | |
| unsigned * | activeDims_m |
| Stores the numbers of these dims (0,1,2). | |
| InternalFFT_t | FFTEngine_m |
| Internal FFT object for performing serial FFTs. | |
| Precision_t | normFact_m |
| Normalization factor: | |
| Domain_t | Domain_m |
| Domain of the input field, mainly used to check axis sizes and ordering, former const Domain_t& Domain_m;. | |
| bool | compressTempFields_m |
| Switch to turn on/off compression of intermediate Fields (tempFields) as algorithm is finished with them. | |
The FFTBase class handles duties for the FFT class that do not involve the type of transform to be done. FFTBase is templated on dimensionality of the Field to transform and the floating-point precision type of the Field (float or double).
FFT Base Class to do stuff that is independent of transform type
| anonymous enum |
| enum FFTBase::FFT_e |
Definition at line 68 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::FFT().
| FFTBase< Dim, T >::FFTBase | ( | FFT_e | transform, |
| const Domain_t & | domain, | ||
| const bool | transformTheseDims[Dim], | ||
| bool | compressTemps ) |
inputs are enum of transform type, domain of input Field, which dimensions to transform, and whether to compress temporary Fields when not in use
| transform | |
| domain | |
| transformTheseDims | |
| compressTemps |
| FFTBase< Dim, T >::FFTBase | ( | FFT_e | transform, |
| const Domain_t & | domain, | ||
| bool | compressTemps ) |
| transform | |
| domain | |
| compressTemps |
|
inlineprotected |
get dimension number from list of transformed dimensions
get dimension number from list of transformed dimensions
| d |
Definition at line 252 of file FFTBase.h.
References activeDims_m, nTransformDims_m, and PAssert_LT.
|
inlineprotected |
compare indexes of two domains
helper function for comparing domains
| Dim | |
| dom1 | |
| Dim | |
| dom2 |
Definition at line 269 of file FFTBase.h.
References Dim.
Referenced by FFT< CCTransform, Dim, T >::transform().
|
inlineprotected |
do we compress temps?
Definition at line 166 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::transform().
|
inlineprotected |
translate direction name string into dimension number
Translate direction name string into dimension number
| directionName |
Definition at line 225 of file FFTBase.h.
References directions_m.
Referenced by FFT< CCTransform, Dim, T >::transform().
|
inlineprotected |
get our domain
Definition at line 160 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::transform().
|
inlineprotected |
access the internal FFT Engine
Definition at line 154 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::FFT(), and FFT< CCTransform, Dim, T >::transform().
|
inlineprotected |
get the FFT normalization factor
Definition at line 157 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::FFT(), and FFT< CCTransform, Dim, T >::transform().
|
inlineprotected |
query number of transform dimensions
Definition at line 148 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::transform().
|
inline |
Allow the user to name the transform directions, for code clarity.
| direction | |
| directionName |
Allow the user to name the transform directions, for code clarity. Typical values might be "x_to_k", "k_to_x", "t_to_omega", "omega_to_t"
Definition at line 209 of file FFTBase.h.
References directions_m, and PAssert_EQ.
|
inline |
|
inlineprotected |
query whether this dimension is to be transformed
query whether this dimension is to be transformed
| d |
Definition at line 238 of file FFTBase.h.
References Dim, PAssert_LT, and transformDims_m.
I/O for FFT object
| out |
Definition at line 82 of file FFTBase.hpp.
References Dim, directions_m, getTransformType(), transformDims_m, and transformType_m.
Referenced by operator<<().
Stores the numbers of these dims (0,1,2).
Definition at line 176 of file FFTBase.h.
Referenced by activeDimension().
Stores user-defined names for FFT directions:
Definition at line 171 of file FFTBase.h.
Referenced by getDirection(), setDirectionName(), and write().
|
private |
|
private |
Stores the number of dims to be transformed.
Definition at line 175 of file FFTBase.h.
Referenced by activeDimension().
|
staticprotected |
null GuardCellSizes object for checking BareField arguments to transform
! These members are used by the derived FFT classes
Definition at line 139 of file FFTBase.h.
Referenced by FFT< CCTransform, Dim, T >::transform().
Indicates which dimensions are transformed.
Definition at line 174 of file FFTBase.h.
Referenced by transformDim(), and write().