|
ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
#include <FFTAcceleration_2wayM2L.h>
Public Member Functions | |
| 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 | |
| virtual void | FFT_initialize_Source (FFTAccelerableExpansion &Expansion, double radius)=0 |
| virtual void | FFT_initialize_TransferFunction (FFTAccelerableExpansion &Expansion)=0 |
| virtual void | FFT_finalize_Target (FFTAccelerableExpansion &Expansion, double radius)=0 |
Protected Member Functions | |
| FFTDataContainer_arrays * | getFFTData (FFTAccelerableExpansion &Expansion) |
Protected Attributes | |
| 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) | |
Abstract class with common code for basic fft and fftw implementation
Use FFTDataContainer_arrays as Data container (2 arrays)
Don't define FFT_M2L and FFT_M2L_vec, but define FFT_M2L_2way the code using the acceleration should downcast its FFTAcceleration to the FFTAcceleration_2Way class and use FFT_M2L_2way instead of FFT_M2L
|
virtual |
Initialize a Target expansion's FFTDatacontainer (schould be to a full 0 FFTDatacontainer)
| FFTAccelerableExpansion | & Expansion |
Implements FFTAccelerationAPI.
|
inlinevirtual |
M2L operator, performs the M2L in fourier space, usually an entrywise product (or more complexe scheme if needed, see blocks implementations)
All parameters needs to be initialized using the previous methods The TransferFunction should come from a TransferFunctionManager
| FFTAccelerableExpansion | & Source |
| FFTAccelerableExpansion | & Target |
| FFTDataContainer* | TransferFunction |
Implements FFTAccelerationAPI.
|
virtual |
M2L using 2way scheme (see doc/2wayM2L)
Implements FFTAccelerationAPI_2Way.
|
virtual |
Implements FFTAccelerationAPI_2Way.
|
inlinevirtual |
M2L operator, performs the M2L in fourier space, usually an entrywise product (or more complexe scheme if needed, see blocks implementations)
Uses vectorization of the loops
All parameters needs to be initialized using the previous methods The TransferFunction should come from a TransferFunctionManager
| FFTAccelerableExpansion | & Source |
| FFTAccelerableExpansion | & Target |
| FFTDataContainer* | TransferFunction |
Implements FFTAccelerationAPI.