ls1-MarDyn
ls1-MarDyn molecular dynamics code
FFTSettings.h
1/*
2 * FFTSettings.h
3 *
4 * Created on: Feb 05, 2016
5 * Author: gallardjm
6 */
7#ifndef FFTSETTINGS_H_
8#define FFTSETTINGS_H_
9
10#include <stdio.h>
11#include <vector>
12#include <string>
13#include "bhfmm/fft/FFTSettings_preprocessor.h"
14
15using namespace std;
16
26public:
27
29
30 //FFT or FFTW (if none use the no FFT acceleration)
31 static bool USE_FFT; // set to use any FFT acceleration (default optFFT)
32 static bool USE_FFTW; //set to use fftw instead of optFFT
33
34 //TransferFunctionManager settings
35 static bool USE_TFMANAGER_UNIFORMGRID; //set to use memoized transfer function (require uniform grid)
36 //WARNING: if USE_TFMANAGER_UNIFORMGRID is set the tf should not be freed after an M2L, else it should be freed to avoid memory leaks
37
38 static bool TFMANAGER_VERBOSE; //set to print the TFManager stats at its destruct
39
40 static bool USE_VECTORIZATION; //set to use vectorized FFT (/!\ can be faked, see FFTSettings_preprocessor.h)
41 static bool USE_2WAY_M2L; //set to use a 2way M2L (best on non uniform grid, requires vectorization)
42
43 static bool USE_BLOCK; //set to use a block decomposition
44 static bool USE_ADVBLOCK; //set to use a scaling block decomposition (requires USE_BLOCK)
45
46 static bool USE_ORDER_REDUCTION; //Order Reduction scheme, only with blocks
47
48 //sets Settings to the best default value for a given order
49 static void autoSetting(int order);
50
51 static bool issetFFTAcceleration() {
52 return USE_FFT;
53 }
54
55 //Used in the bhfmm code for command line interface
56 static void setOptions(string option);
57 static vector<string> getAvailableOptions();
58 static void printCurrentOptions();
59
60};
61
62#endif
Definition: FFTSettings.h:25
static bool USE_FFT
Seetings, default values in FFTSettings.cpp.
Definition: FFTSettings.h:31