ls1-MarDyn
ls1-MarDyn molecular dynamics code
FFTAcceleration_2wayM2L_optFFT.h
1/*
2 * FFTAcceleration_2wayM2L_optFFT.h
3 *
4 * Created on: Feb 10, 2016
5 * Author: gallardjm
6 */
7#ifndef FFTACC_2WAY_OPTFFT_H_
8#define FFTACC_2WAY_OPTFFT_H_
9
10#include "bhfmm/fft/FFTAccelerationImplementations/FFTDataContainer_arrays.h"
11#include "bhfmm/fft/FFTAccelerationImplementations/FFTAcceleration_2wayM2L.h"
12#include "bhfmm/fft/tools/optimizedFFT/optFFT_API_Factory.h"
13#include "bhfmm/fft/tools/fft_utils.h"
14
15/*
16 * Basic implemtation using optimized FFT
17 *
18 * Use FFTDataContainer_matrices as Data container (2 matrices)
19 * initialize_target, M2L and protected function to get the DataContainer
20 * defined in parent class
21 */
23
24public:
25
28 for (int i = 0; i < mardyn_get_max_threads(); ++i) {
29 delete_matrix(Re[i]);
30 delete_matrix(Im[i]);
31 }
32 }
33
35 double radius);
37
39 double radius);
40
41protected:
42 //Matrices used as tmp data storage to perform optFFT (works only on matrices)
43 FFT_precision*** Re;
44 FFT_precision*** Im;
45 optFFT_API* _optFFT_API;
46
47 //convert matrix for the optFFT_API to array for the FFTData
48 void matrix2array(FFT_precision** & m, FFT_precision* & a);
49 void array2matrix(FFT_precision* & a, FFT_precision** & m);
50};
51
52#endif
Definition: FFTAccelerableExpansion.h:21
Definition: FFTAcceleration_2wayM2L_optFFT.h:22
void FFT_finalize_Target(FFTAccelerableExpansion &Expansion, double radius)
Definition: FFTAcceleration_2wayM2L_optFFT.cpp:103
void FFT_initialize_TransferFunction(FFTAccelerableExpansion &Expansion)
Definition: FFTAcceleration_2wayM2L_optFFT.cpp:66
void FFT_initialize_Source(FFTAccelerableExpansion &Expansion, double radius)
Definition: FFTAcceleration_2wayM2L_optFFT.cpp:28
Definition: FFTAcceleration_2wayM2L.h:24
Definition: optFFT_API.h:18