VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
defs.h
Go to the documentation of this file.
1#pragma once
2
3#include <limits>
4
5// FMM_MPI is controlled by CMake (passed as -DFMM_MPI via target_compile_definitions)
6// Uncomment below to force-enable MPI regardless of CMake:
7//#define FMM_MPI
8#define FMM_CONSTEXPR_MATH // fast CUDA solver, but limits max multipole num (min error 10^-7)
9
10#ifdef FMM_CONSTEXPR_MATH
11#define FMM_CONSTEXPR constexpr
12#else
13#define FMM_CONSTEXPR
14#endif
15
16#ifdef __NVCC__
17#define __HOST__ __host__
18#define __DEVICE__ __device__
19#else
20#define __HOST__
21#define __DEVICE__
22#endif
23
24namespace fmm {
25
26 const int FMM_AUTO = std::numeric_limits<int>::max();
27
28 constexpr double FORCE_EPS = 0.01;
29 constexpr double FORCE_EPS2 = FORCE_EPS * FORCE_EPS;
30 constexpr double FORCE_EPS3 = FORCE_EPS2 * FORCE_EPS;
31 constexpr double FORCE_EPS4 = FORCE_EPS2 * FORCE_EPS2;
32 constexpr double FORCE_EPS5 = FORCE_EPS3 * FORCE_EPS2;
33 constexpr double FORCE_EPS6 = FORCE_EPS3 * FORCE_EPS3;
34
35 //__DEVICE__ constexpr double CUDA_FORCE_EPS = FORCE_EPS;
36 //__DEVICE__ constexpr double CUDA_FORCE_EPS2 = CUDA_FORCE_EPS * CUDA_FORCE_EPS;
37 //__DEVICE__ constexpr double CUDA_FORCE_EPS3 = CUDA_FORCE_EPS2 * CUDA_FORCE_EPS;
38 //__DEVICE__ constexpr double CUDA_FORCE_EPS5 = CUDA_FORCE_EPS3 * CUDA_FORCE_EPS2;
39
40namespace detail {
41
42 const int _3d_MAX_MULTIPOLE_NUM = 18; // set max 18 if constexpr math
43 const int _2d_MAX_MULTIPOLE_NUM = 9; // set max 30 if constexpr math
44
45
46
47} // detail
48
49} // fmm
const int _3d_MAX_MULTIPOLE_NUM
Definition defs.h:42
const int _2d_MAX_MULTIPOLE_NUM
Definition defs.h:43
Definition avx.h:5
constexpr double FORCE_EPS6
Definition defs.h:33
const int FMM_AUTO
Definition defs.h:26
constexpr double FORCE_EPS4
Definition defs.h:31
constexpr double FORCE_EPS2
Definition defs.h:29
constexpr double FORCE_EPS3
Definition defs.h:30
constexpr double FORCE_EPS5
Definition defs.h:32
constexpr double FORCE_EPS
Definition defs.h:28