ASCOT5
Loading...
Searching...
No Matches
Macros | Typedefs
ascot5.h File Reference

Main header file for ASCOT5. More...

#include <omp.h>
#include <time.h>

Go to the source code of this file.

Macros

#define stringify(...)   #__VA_ARGS__
 
#define str_macro(c)   stringify(c)
 
#define str_pragma(c)   _Pragma(stringify(c))
 
#define __memalign__   __attribute__((aligned(64)))
 
#define NSIMD   16
 Number of particles simulated simultaneously in a particle group operations.
 
#define MAX_SPECIES   8
 Maximum number of plasma species.
 
#define MHD_MODES_MAX_NUM   512
 Maximum number of MHD modes.
 
#define MAX_ATOMIC   32
 Maximum number of atomic reactions.
 
#define NBI_MAX_DISTANCE   1e-3
 Maximum distance BBNBI traces markers in seconds.
 
#define NBI_MAX_INJ   32
 Maximum number of NBI injectors.
 
#define WIENERSLOTS   20
 Maximum number of Wiener processes stored (effectively number of time step reductions)
 
#define A5_CCOL_USE_GEOBM   1
 Determine whether to use geometric method of Box-Muller to to generate normal random numbers.
 
#define A5_EXTREMELY_SMALL_TIMESTEP   1e-12
 If adaptive time step falls below this value, produce an error.
 
#define A5_PRINTPROGRESSINTERVAL   20
 How often progress is being written (s) in the stdout file.
 
#define A5_WTIME   omp_get_wtime()
 Wall time.
 
#define INTERP_SPL_EXPL   0
 Choose whether magnetic field spline interpolation is done with an explicit (1) or compact (0) way.
 
#define A5_CCOL_USE_TABULATED   0
 Choose whether to use tabulated values for collision coefficients.
 
#define WALL_OCTREE_DEPTH   7
 Default depth of octree struct.
 

Typedefs

typedef long integer
 
typedef double real
 

Detailed Description

Main header file for ASCOT5.

This header file defines general types and structs used widely by the program as well as any features dependent on compiler defined macros.

Definition in file ascot5.h.

Macro Definition Documentation

◆ stringify

#define stringify ( ...)    #__VA_ARGS__

Stringify arguments

Definition at line 66 of file ascot5.h.

◆ str_macro

#define str_macro ( c)    stringify(c)

Wrapper to stringify for converting compiler macros to strings

Definition at line 69 of file ascot5.h.

◆ str_pragma

#define str_pragma ( c)    _Pragma(stringify(c))

Stringify argument and convert it to a directive

Definition at line 72 of file ascot5.h.

◆ __memalign__

#define __memalign__   __attribute__((aligned(64)))

This is used to tell the compiler that we want a variable aligned to 64 bits for Xeon Phi; may not be always necessary

Definition at line 76 of file ascot5.h.

◆ NSIMD

#define NSIMD   16

Number of particles simulated simultaneously in a particle group operations.

Definition at line 91 of file ascot5.h.

◆ MAX_SPECIES

#define MAX_SPECIES   8

Maximum number of plasma species.

Definition at line 95 of file ascot5.h.

◆ MHD_MODES_MAX_NUM

#define MHD_MODES_MAX_NUM   512

Maximum number of MHD modes.

Definition at line 98 of file ascot5.h.

◆ MAX_ATOMIC

#define MAX_ATOMIC   32

Maximum number of atomic reactions.

Definition at line 101 of file ascot5.h.

◆ NBI_MAX_DISTANCE

#define NBI_MAX_DISTANCE   1e-3

Maximum distance BBNBI traces markers in seconds.

Definition at line 104 of file ascot5.h.

◆ NBI_MAX_INJ

#define NBI_MAX_INJ   32

Maximum number of NBI injectors.

Definition at line 107 of file ascot5.h.

◆ WIENERSLOTS

#define WIENERSLOTS   20

Maximum number of Wiener processes stored (effectively number of time step reductions)

Definition at line 111 of file ascot5.h.

◆ A5_CCOL_USE_GEOBM

#define A5_CCOL_USE_GEOBM   1

Determine whether to use geometric method of Box-Muller to to generate normal random numbers.

Definition at line 115 of file ascot5.h.

◆ A5_EXTREMELY_SMALL_TIMESTEP

#define A5_EXTREMELY_SMALL_TIMESTEP   1e-12

If adaptive time step falls below this value, produce an error.

Definition at line 118 of file ascot5.h.

◆ A5_PRINTPROGRESSINTERVAL

#define A5_PRINTPROGRESSINTERVAL   20

How often progress is being written (s) in the stdout file.

Definition at line 121 of file ascot5.h.

◆ A5_WTIME

#define A5_WTIME   omp_get_wtime()

Wall time.

Definition at line 124 of file ascot5.h.

◆ INTERP_SPL_EXPL

#define INTERP_SPL_EXPL   0

Choose whether magnetic field spline interpolation is done with an explicit (1) or compact (0) way.

Definition at line 128 of file ascot5.h.

◆ A5_CCOL_USE_TABULATED

#define A5_CCOL_USE_TABULATED   0

Choose whether to use tabulated values for collision coefficients.

Definition at line 131 of file ascot5.h.

◆ WALL_OCTREE_DEPTH

#define WALL_OCTREE_DEPTH   7

Default depth of octree struct.

Definition at line 134 of file ascot5.h.

Typedef Documentation

◆ integer

typedef long integer

We use a custom type real to represent floating point numbers; precision can be defined compile-time. Double precision integer

Definition at line 84 of file ascot5.h.

◆ real

typedef double real

Double precision float

Definition at line 85 of file ascot5.h.