ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
Public Member Functions | |
FFTAcceleration_scalBlocks_optFFT (int order) | |
void | FFT_initialize_Target (FFTAccelerableExpansion &Expansion) |
void | FFT_initialize_Source (FFTAccelerableExpansion &Expansion, double radius) |
void | FFT_initialize_TransferFunction (FFTAccelerableExpansion &Expansion) |
void | FFT_finalize_Target (FFTAccelerableExpansion &Expansion, double radius) |
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) |
![]() | |
virtual | ~FFTAccelerationAPI_full () |
destructor, child class will be upcasted, virtual destructor required to call the right child class destructor | |
![]() | |
virtual | ~FFTAccelerationAPI_2Way () |
destructor, child class will be upcasted, virtual destructor required to call the right child class destructor | |
![]() | |
virtual | ~FFTAccelerationAPI () |
destructor, child class will be upcasted, virtual destructor required to call the right child class destructor | |
Protected Member Functions | |
FFTDataContainer_scalBlocks * | getFFTData (FFTAccelerableExpansion &Expansion) |
FFTDataContainer_scalBlocks * | getFFTData_scal (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) |
Protected Attributes | |
optFFT_API * | _optFFT_API |
int | _nbBlocks |
int | _nbLinePerBlock |
int * | _blockSize |
FFT_precision *** | _Re_tmp |
FFT_precision *** | _Im_tmp |
![]() | |
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) | |
|
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
FFTAccelerableExpansion | & Expansion |
double | radius |
Implements FFTAccelerationAPI.
|
virtual |
Initialize a source expansion's FFTDatacontainer, including rescaling using the radius parameter (see doc/Rescalling)
FFTAccelerableExpansion | & Expansion |
double | radius |
Implements FFTAccelerationAPI.
|
virtual |
Initialize a Target expansion's FFTDatacontainer (schould be to a full 0 FFTDatacontainer)
FFTAccelerableExpansion | & Expansion |
Implements FFTAccelerationAPI.
|
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.
FFTAccelerableExpansion | & Expansion |
Implements FFTAccelerationAPI.
|
virtual |
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 |
M2L using both Order Reduction and 2way.
Implements FFTAccelerationAPI_full.
|
virtual |
Implements FFTAccelerationAPI_full.
|
virtual |
Implements FFTAccelerationAPI_2Way.
|
virtual |
M2L using Order Reduction.
Implements FFTAccelerationAPI_full.
|
virtual |
Implements FFTAccelerationAPI_full.
|
virtual |
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.