ls1-MarDyn
ls1-MarDyn molecular dynamics code
|
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_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 | |
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_blocks * | getFFTData (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 | |
int | _nbBlocks |
int | _nbLinePerBlock |
![]() | |
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 |
Initialize a Target expansion's FFTDatacontainer (schould be to a full 0 FFTDatacontainer)
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.