ls1-MarDyn
ls1-MarDyn molecular dynamics code
Public Member Functions | Protected Attributes | List of all members
FFTAcceleration_blocks_fftw Class Reference
Inheritance diagram for FFTAcceleration_blocks_fftw:
FFTAcceleration_blocks FFTAccelerationAPI_full FFTAccelerationAPI_2Way FFTAccelerationAPI

Public Member Functions

 FFTAcceleration_blocks_fftw (int order)
 
void FFT_initialize_Source (FFTAccelerableExpansion &Expansion, double radius)
 
void FFT_initialize_TransferFunction (FFTAccelerableExpansion &Expansion)
 
void FFT_finalize_Target (FFTAccelerableExpansion &Expansion, double radius)
 
- Public Member Functions inherited from FFTAcceleration_blocks
void FFT_initialize_Target (FFTAccelerableExpansion &Expansion)
 
void FFT_M2L (FFTAccelerableExpansion &Source, FFTAccelerableExpansion &Target, FFTDataContainer *TransferFunction)
 
void FFT_M2L_vec (FFTAccelerableExpansion &Source, FFTAccelerableExpansion &Target, FFTDataContainer *TransferFunction)
 
void FFT_M2L_OrderReduction (FFTAccelerableExpansion &Source, FFTAccelerableExpansion &Target, FFTDataContainer *TransferFunction, int order)
 M2L using Order Reduction. More...
 
void FFT_M2L_OrderReduction_vec (FFTAccelerableExpansion &Source, FFTAccelerableExpansion &Target, FFTDataContainer *TransferFunction, int order)
 
void FFT_M2L_2way (FFTAccelerableExpansion &Source1, FFTAccelerableExpansion &Source2, FFTAccelerableExpansion &Target1, FFTAccelerableExpansion &Target2, FFTDataContainer *TransferFunction)
 M2L using 2way scheme (see doc/2wayM2L) More...
 
void FFT_M2L_2way_vec (FFTAccelerableExpansion &Source1, FFTAccelerableExpansion &Source2, FFTAccelerableExpansion &Target1, FFTAccelerableExpansion &Target2, FFTDataContainer *TransferFunction)
 
void FFT_M2L_2way_ORed (FFTAccelerableExpansion &Source1, FFTAccelerableExpansion &Source2, FFTAccelerableExpansion &Target1, FFTAccelerableExpansion &Target2, FFTDataContainer *TransferFunction, int order)
 M2L using both Order Reduction and 2way. More...
 
void FFT_M2L_2way_ORed_vec (FFTAccelerableExpansion &Source1, FFTAccelerableExpansion &Source2, FFTAccelerableExpansion &Target1, FFTAccelerableExpansion &Target2, FFTDataContainer *TransferFunction, int order)
 
- Public Member Functions inherited from FFTAccelerationAPI_full
virtual ~FFTAccelerationAPI_full ()
 destructor, child class will be upcasted, virtual destructor required to call the right child class destructor
 
- Public Member Functions inherited from FFTAccelerationAPI_2Way
virtual ~FFTAccelerationAPI_2Way ()
 destructor, child class will be upcasted, virtual destructor required to call the right child class destructor
 
- Public Member Functions inherited from FFTAccelerationAPI
virtual ~FFTAccelerationAPI ()
 destructor, child class will be upcasted, virtual destructor required to call the right child class destructor
 

Protected Attributes

FFTW_API_fftw_api
 
- Protected Attributes inherited from FFTAcceleration_blocks
int _nbBlocks
 
int _nbLinePerBlock
 
- Protected Attributes inherited from FFTAccelerationAPI
int _p
 
int _fft_nx
 order of the expansions (start at 0 so usually order+1)
 
int _fft_ny
 number of line of the FFT matrices (or similar)
 

Additional Inherited Members

- Protected Member Functions inherited from FFTAcceleration_blocks
FFTDataContainer_blocksgetFFTData (FFTAccelerableExpansion &Expansion)
 
template<bool Vect, bool OrderRed>
void FFT_M2L_template (FFTAccelerableExpansion &Source, FFTAccelerableExpansion &Target, FFTDataContainer *TransferFunction, int order)
 
template<bool Vect, bool OrderRed>
void FFT_M2L_2way_template (FFTAccelerableExpansion &Source1, FFTAccelerableExpansion &Source2, FFTAccelerableExpansion &Target1, FFTAccelerableExpansion &Target2, FFTDataContainer *TransferFunction, int order)
 

Member Function Documentation

◆ FFT_finalize_Target()

void FFTAcceleration_blocks_fftw::FFT_finalize_Target ( FFTAccelerableExpansion Expansion,
double  radius 
)
virtual

Finalize a Target expansion by adding the result of the M2L stored in Fourier space to the expansion values.

Include the rescaling using the radius parameter, should be the same as the one used by FFT_initialize_Source

Parameters
FFTAccelerableExpansion& Expansion
doubleradius

Implements FFTAccelerationAPI.

◆ FFT_initialize_Source()

void FFTAcceleration_blocks_fftw::FFT_initialize_Source ( FFTAccelerableExpansion Expansion,
double  radius 
)
virtual

Initialize a source expansion's FFTDatacontainer, including rescaling using the radius parameter (see doc/Rescalling)

Parameters
FFTAccelerableExpansion& Expansion
doubleradius

Implements FFTAccelerationAPI.

◆ FFT_initialize_TransferFunction()

void FFTAcceleration_blocks_fftw::FFT_initialize_TransferFunction ( FFTAccelerableExpansion Expansion)
virtual

Initialize a source expansion's FFTDatacontainer, all subsequent transformations (flip of the matrix or rescaling of scaling blocks for example) should be done here.

Parameters
FFTAccelerableExpansion& Expansion

Implements FFTAccelerationAPI.


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