Go to the source code of this file.
|
| #define | ROCK_STRINGFY(X) |
| #define | ROCK_STRING_CAT2(a, b) |
| #define | ROCK_STRING_CAT3(a, b, c) |
| #define | ROCK_APPEND_COMMA(x) |
| #define | ROCK_APPLY_ARG(func, arg) |
| #define | ROCK_CAT2_(a, b) |
| #define | ROCK_CAT2(a, b) |
| #define | ROCK_CAT3_(a, b, c) |
| #define | ROCK_CAT3(a, b, c) |
| #define | ROCK_VERSION_MAJOR |
| #define | ROCK_VERSION_MINOR |
| #define | ROCK_VERSION_PATCH |
| #define | ROCK_REAL_TYPE |
| | One of {FLT, DBL, LDBL}.
|
| #define | ROCK_PARALLELIZATION |
| #define | ROCK_ENABLE_GPU |
| #define | ROCK_ENABLE_FIELD_REFINEMENT |
| | Iterative refinement of the field solution, it is about 8x slower.
|
| #define | ROCK_ALIGNMENT |
| #define | ROCK_STRIDE(TYPE, DIM) |
| #define | TDM_STRIDE(rows) |
| #define | DIM_TDM(rows) |
| #define | ROCK_ENABLE_FAST_BESL |
| #define | ROCK_ENABLE_FAST_HYPOT |
| #define | ROCK_ENABLE_FAST_ATAN2 |
| #define | ROCK_ENABLE_GAUSSIAN_ALPHA_GAMMA |
| #define | ROCK_BEAMLET_MAX_CORRECTOR_STEP |
| | Only 4 iterations will not pass unit test, at least 8 required.
|
| #define | MIN_HARM |
| #define | DIM_HARM |
| #define | MAX_HARM |
◆ DIM_HARM
Number of totally considered harmonics
The simulated harmonics include MIN_HARM but exclude (MIN_HARM+DIM_HARM). 4 will probably make better use of SIMD instructions.
◆ DIM_TDM
◆ MAX_HARM
◆ MIN_HARM
Minimum harmonic number during the harmonic decomposition
For fundamental interaction, 0 is suggested. Negative value is theoretically possible, but not tested.
◆ ROCK_ALIGNMENT
◆ ROCK_APPEND_COMMA
| #define ROCK_APPEND_COMMA |
( |
| x | ) |
|
◆ ROCK_APPLY_ARG
| #define ROCK_APPLY_ARG |
( |
| func, |
|
|
| arg ) |
◆ ROCK_BEAMLET_MAX_CORRECTOR_STEP
| #define ROCK_BEAMLET_MAX_CORRECTOR_STEP |
Only 4 iterations will not pass unit test, at least 8 required.
◆ ROCK_CAT2
| #define ROCK_CAT2 |
( |
| a, |
|
|
| b ) |
◆ ROCK_CAT2_
| #define ROCK_CAT2_ |
( |
| a, |
|
|
| b ) |
◆ ROCK_CAT3
| #define ROCK_CAT3 |
( |
| a, |
|
|
| b, |
|
|
| c ) |
◆ ROCK_CAT3_
| #define ROCK_CAT3_ |
( |
| a, |
|
|
| b, |
|
|
| c ) |
◆ ROCK_ENABLE_FAST_ATAN2
| #define ROCK_ENABLE_FAST_ATAN2 |
The fast atan2() has lower precision. Usually it is not an issue. However, by updating the guiding center azimuthal angle, the fast atan2() will drift to the positive and negative pi/4 or pi+pi/4. So we disable the fast atan2 in general, or at least when updating of guiding center azimuthal position is enabled.
◆ ROCK_ENABLE_FAST_BESL
| #define ROCK_ENABLE_FAST_BESL |
Whether to use own Bessel implementation
Set to 0 for using only vendor lib, 1 for home-made version
Originally it was made with GPU offloading in mind. However, this own implementation might be considered deprecated, since mainstream offloading compilers recently added translations of math functions.
Nevertheless, this home-made implementation is marginally faster than glibc (benchmarked against libc-2.36).
◆ ROCK_ENABLE_FAST_HYPOT
| #define ROCK_ENABLE_FAST_HYPOT |
Invoke sqrt() for hypot, which may cause improper results for INF, NAN and other boundary cases.
◆ ROCK_ENABLE_FIELD_REFINEMENT
| #define ROCK_ENABLE_FIELD_REFINEMENT |
Iterative refinement of the field solution, it is about 8x slower.
◆ ROCK_ENABLE_GAUSSIAN_ALPHA_GAMMA
| #define ROCK_ENABLE_GAUSSIAN_ALPHA_GAMMA |
Gaussian distribution of both pitch factor and Lorentz factor otherwise uniform distribution
◆ ROCK_ENABLE_GPU
◆ ROCK_PARALLELIZATION
| #define ROCK_PARALLELIZATION |
◆ ROCK_REAL_TYPE
◆ ROCK_STRIDE
| #define ROCK_STRIDE |
( |
| TYPE, |
|
|
| DIM ) |
- Parameters
-
| TYPE | Type of the element |
| DIM | Dimension of data if there was no padding |
◆ ROCK_STRING_CAT2
| #define ROCK_STRING_CAT2 |
( |
| a, |
|
|
| b ) |
◆ ROCK_STRING_CAT3
| #define ROCK_STRING_CAT3 |
( |
| a, |
|
|
| b, |
|
|
| c ) |
◆ ROCK_STRINGFY
| #define ROCK_STRINGFY |
( |
| X | ) |
|
◆ ROCK_VERSION_MAJOR
| #define ROCK_VERSION_MAJOR |
There are breaking changes Major versions
Major version of client binding == major version of CROCK
◆ ROCK_VERSION_MINOR
| #define ROCK_VERSION_MINOR |
Minor versions do not contain breaking changes
Minor version of client binding <= major version of CROCK
◆ ROCK_VERSION_PATCH
| #define ROCK_VERSION_PATCH |
◆ TDM_STRIDE
| #define TDM_STRIDE |
( |
| rows | ) |
|