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

Public Member Functions

 FFTAcceleration_2wayM2L_optFFT (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_2wayM2L
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_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)
 
- 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 Member Functions

void matrix2array (FFT_precision **&m, FFT_precision *&a)
 
void array2matrix (FFT_precision *&a, FFT_precision **&m)
 
- Protected Member Functions inherited from FFTAcceleration_2wayM2L
FFTDataContainer_arraysgetFFTData (FFTAccelerableExpansion &Expansion)
 

Protected Attributes

FFT_precision *** Re
 
FFT_precision *** Im
 
optFFT_API_optFFT_API
 
- Protected Attributes inherited from FFTAcceleration_2wayM2L
int _nbZeroes
 
int _totalSize
 
- 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)
 

Member Function Documentation

◆ FFT_finalize_Target()

void FFTAcceleration_2wayM2L_optFFT::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_2wayM2L_optFFT::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_2wayM2L_optFFT::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: