|
OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
|
#include <FFT.h>


Public Types | |
| typedef FieldLayout< Dim > | Layout_t |
| typedef BareField< T, Dim > | RealField_t |
| typedef LField< T, Dim > | RealLField_t |
| typedef std::complex< T > | Complex_t |
| typedef BareField< Complex_t, Dim > | ComplexField_t |
| typedef LField< Complex_t, Dim > | ComplexLField_t |
| typedef FFTBase< Dim, T >::Domain_t | Domain_t |
Public Types inherited from FFTBase< Dim, T > | |
| 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 | |
| FFT (const Domain_t &rdomain, const Domain_t &cdomain, const bool transformTheseDims[Dim], const bool sineTransformDims[Dim], const bool &compressTemps=false) | |
| FFT (const Domain_t &rdomain, const Domain_t &cdomain, const bool sineTransformDims[Dim], const bool &compressTemps=false) | |
| FFT (const Domain_t &rdomain, const bool sineTransformDims[Dim], const bool &compressTemps=false) | |
| FFT (const Domain_t &rdomain, const bool &compressTemps=false) | |
| ~FFT (void) | |
| void | transform (int direction, RealField_t &f, ComplexField_t &g, const bool &constInput=false) |
| void | transform (const char *directionName, RealField_t &f, ComplexField_t &g, const bool &constInput=false) |
| void | transform (int direction, ComplexField_t &f, RealField_t &g, const bool &constInput=false) |
| void | transform (const char *directionName, ComplexField_t &f, RealField_t &g, const bool &constInput=false) |
| void | transform (int direction, RealField_t &f, RealField_t &g, const bool &constInput=false) |
| void | transform (const char *directionName, RealField_t &f, RealField_t &g, const bool &constInput=false) |
| void | transform (int direction, RealField_t &f) |
| void | transform (const char *directionName, RealField_t &f) |
Public Member Functions inherited from FFTBase< Dim, T > | |
| 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 |
Private Member Functions | |
| void | setup (void) |
Private Attributes | |
| bool | sineTransformDims_m [Dim] |
| size_t | numSineTransforms_m |
| Layout_t ** | tempLayouts_m |
| Layout_t ** | tempRLayouts_m |
| ComplexField_t ** | tempFields_m |
| RealField_t ** | tempRFields_m |
| const Domain_t * | complexDomain_m |
Additional Inherited Members | |
Protected Member Functions inherited from FFTBase< Dim, T > | |
| int | getDirection (const char *directionName) const |
| translate direction name string into dimension number More... | |
| bool | transformDim (unsigned d) const |
| query whether this dimension is to be transformed More... | |
| unsigned | numTransformDims (void) const |
| query number of transform dimensions More... | |
| unsigned | activeDimension (unsigned d) const |
| get dimension number from list of transformed dimensions More... | |
| InternalFFT_t & | getEngine (void) |
| access the internal FFT Engine More... | |
| Precision_t & | getNormFact (void) |
| get the FFT normalization factor More... | |
| const Domain_t & | getDomain (void) const |
| get our domain More... | |
| bool | checkDomain (const Domain_t &dom1, const Domain_t &dom2) const |
| compare indexes of two domains More... | |
| bool | compressTemps (void) const |
| do we compress temps? More... | |
Static Protected Attributes inherited from FFTBase< Dim, T > | |
| static GuardCellSizes< Dim > | nullGC = GuardCellSizes<Dim>() |
| null GuardCellSizes object for checking BareField arguments to transform More... | |
sine transform class
| typedef std::complex<T> FFT< SineTransform, Dim, T >::Complex_t |
| typedef BareField<Complex_t,Dim> FFT< SineTransform, Dim, T >::ComplexField_t |
| typedef LField<Complex_t,Dim> FFT< SineTransform, Dim, T >::ComplexLField_t |
| typedef FieldLayout<Dim> FFT< SineTransform, Dim, T >::Layout_t |
| typedef BareField<T,Dim> FFT< SineTransform, Dim, T >::RealField_t |
| typedef LField<T,Dim> FFT< SineTransform, Dim, T >::RealLField_t |
| FFT< SineTransform, Dim, T >::FFT | ( | const Domain_t & | rdomain, |
| const Domain_t & | cdomain, | ||
| const bool | transformTheseDims[Dim], | ||
| const bool | sineTransformDims[Dim], | ||
| const bool & | compressTemps = false |
||
| ) |
Constructor for doing sine transform(s) followed by RC FFT Create a new FFT object with the given domains for input/output Fields Specify which dimensions to transform along. Also specify which of these are sine transforms Optional argument compress indicates whether or not to compress temporary Fields in between uses.
| FFT< SineTransform, Dim, T >::FFT | ( | const Domain_t & | rdomain, |
| const Domain_t & | cdomain, | ||
| const bool | sineTransformDims[Dim], | ||
| const bool & | compressTemps = false |
||
| ) |
Same as above, but transform all dims:
| FFT< SineTransform, Dim, T >::FFT | ( | const Domain_t & | rdomain, |
| const bool | sineTransformDims[Dim], | ||
| const bool & | compressTemps = false |
||
| ) |
| FFT< SineTransform, Dim, T >::FFT | ( | const Domain_t & | rdomain, |
| const bool & | compressTemps = false |
||
| ) |
Same as above, but transform all dims:
| FFT< SineTransform, Dim, T >::~FFT | ( | void | ) |
Definition at line 2127 of file FFT.hpp.
References FFTBase< Dim, T >::numTransformDims().

|
private |
setup performs all the initializations necessary after the transform directions have been specified.
Definition at line 1973 of file FFT.hpp.
References FFTBase< Dim, T >::activeDimension(), FFTBase< Dim, T >::compressTemps(), Dim, FFTBase< Dim, T >::getDomain(), FFTBase< Dim, T >::numTransformDims(), PARALLEL, PAssert, PAssert_EQ, PAssert_LT, PInsist, SERIAL, FFTBase< Dim, T >::transformDim(), and FFTBase< Dim, T >::transVnodes().

| void FFT< SineTransform, Dim, T >::transform | ( | int | direction, |
| RealField_t & | f, | ||
| ComplexField_t & | g, | ||
| const bool & | constInput = false |
||
| ) |
These transforms are for combinations of sine transforms and RC FFTs
Do the FFT: specify +1 or -1 to indicate forward or inverse transform, or specify the user-defined name string for the direction. Supply a second BareField to store the output. optional argument constInput indicates whether or not to treat the input Field argument f as const. If not, we can use it as a temporary in order to avoid an additional data transpose.
| void FFT< SineTransform, Dim, T >::transform | ( | const char * | directionName, |
| RealField_t & | f, | ||
| ComplexField_t & | g, | ||
| const bool & | constInput = false |
||
| ) |
| void FFT< SineTransform, Dim, T >::transform | ( | int | direction, |
| ComplexField_t & | f, | ||
| RealField_t & | g, | ||
| const bool & | constInput = false |
||
| ) |
complex-to-real FFT, followed by sine transform(s) Same as above, but with input and output field types reversed.
| void FFT< SineTransform, Dim, T >::transform | ( | const char * | directionName, |
| ComplexField_t & | f, | ||
| RealField_t & | g, | ||
| const bool & | constInput = false |
||
| ) |
| void FFT< SineTransform, Dim, T >::transform | ( | int | direction, |
| RealField_t & | f, | ||
| RealField_t & | g, | ||
| const bool & | constInput = false |
||
| ) |
These transforms are for doing sine transforms only sine transform: specify +1 or -1 to indicate forward or inverse transform, or specify the user-defined name string for the direction. Supply a second BareField to store the output. optional argument constInput indicates whether or not to treat the input Field argument f as const. If not, we can use it as a temporary in order to avoid an additional data transpose.
| void FFT< SineTransform, Dim, T >::transform | ( | const char * | directionName, |
| RealField_t & | f, | ||
| RealField_t & | g, | ||
| const bool & | constInput = false |
||
| ) |
| void FFT< SineTransform, Dim, T >::transform | ( | int | direction, |
| RealField_t & | f | ||
| ) |
In-place version of real-to-real transform
| void FFT< SineTransform, Dim, T >::transform | ( | const char * | directionName, |
| RealField_t & | f | ||
| ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
1.8.5