ROCK 1.9.1
Relativistic Oscillator Calculation Kit
Loading...
Searching...
No Matches
config.h File Reference

Go to the source code of this file.

Macros

#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

Macro Definition Documentation

◆ DIM_HARM

#define 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

#define DIM_TDM ( rows)

◆ MAX_HARM

#define MAX_HARM

◆ MIN_HARM

#define 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

#define 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

#define ROCK_ENABLE_GPU

◆ ROCK_PARALLELIZATION

#define ROCK_PARALLELIZATION

◆ ROCK_REAL_TYPE

#define ROCK_REAL_TYPE

One of {FLT, DBL, LDBL}.

◆ ROCK_STRIDE

#define ROCK_STRIDE ( TYPE,
DIM )
Parameters
TYPEType of the element
DIMDimension 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)