XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Enumerations | Functions | Variables
globals.hpp File Reference
#include <limits.h>
#include <string>
#include <cassert>
#include "space_settings.hpp"
#include "array_deep_copy.hpp"
#include "access_add.hpp"
#include "simd.hpp"
#include "constants.hpp"
Include dependency graph for globals.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  SpeciesType { ELECTRON = 0, MAIN_ION = 1 }
 
enum  KinType { DriftKin =0, GyroKin =1 }
 
enum  PhiInterpType { PhiInterpType::Planes, PhiInterpType::None }
 
enum  GeometryType { GeometryType::Toroidal, GeometryType::CylindricalLimit }
 
enum  ParticlePhase {
  PIR = 0, PIZ, PIP, PIRHO,
  PIW1, PIW2, PTL_NPHASE
}
 
enum  ParticleConsts { PIM = 0, PIW0, PIF0, PTL_NCONST }
 

Functions

int get_num_cpu_threads ()
 
bool is_rank_zero ()
 
void exit_XGC (std::string msg)
 
KOKKOS_INLINE_FUNCTION void assert_XGC (bool cond, const char *msg)
 
bool causes_multiplication_overflow (int a, int b)
 
bool causes_addition_overflow (int a, int b)
 
template<GeometryType GT>
KOKKOS_INLINE_FUNCTION double geometry_switch (double a, double b)
 
template<>
KOKKOS_INLINE_FUNCTION double geometry_switch< GeometryType::Toroidal > (double a, double b)
 
template<>
KOKKOS_INLINE_FUNCTION double geometry_switch< GeometryType::CylindricalLimit > (double a, double b)
 
template<GeometryType GT>
KOKKOS_INLINE_FUNCTION
constexpr bool 
use_toroidal_terms ()
 
template<>
KOKKOS_INLINE_FUNCTION
constexpr bool 
use_toroidal_terms< GeometryType::CylindricalLimit > ()
 
template<>
KOKKOS_INLINE_FUNCTION
constexpr bool 
use_toroidal_terms< GeometryType::Toroidal > ()
 
KOKKOS_INLINE_FUNCTION int divide_and_round_up (int a, int b)
 
KOKKOS_INLINE_FUNCTION unsigned positive_modulo (int value, unsigned m)
 

Variables

constexpr PhiInterpType PIT_GLOBAL = PhiInterpType::None
 
constexpr GeometryType GEOMETRY = GeometryType::Toroidal
 
bool global_debug_flag
 

Enumeration Type Documentation

enum GeometryType
strong
Enumerator
Toroidal 
CylindricalLimit 
enum KinType
Enumerator
DriftKin 
GyroKin 
Enumerator
PIM 

Magnetic moment mu.

PIW0 

W0.

PIF0 

F0.

PTL_NCONST 
Enumerator
PIR 

r coordinate

PIZ 

z coordinate

PIP 

phi coordinate

PIRHO 

gyroradius

PIW1 

1st weight

PIW2 

2nd weight

PTL_NPHASE 
enum PhiInterpType
strong
Enumerator
Planes 
None 
Enumerator
ELECTRON 
MAIN_ION 

Function Documentation

KOKKOS_INLINE_FUNCTION void assert_XGC ( bool  cond,
const char *  msg 
)

Here is the caller graph for this function:

bool causes_addition_overflow ( int  a,
int  b 
)
inline

Here is the caller graph for this function:

bool causes_multiplication_overflow ( int  a,
int  b 
)
inline

Here is the caller graph for this function:

KOKKOS_INLINE_FUNCTION int divide_and_round_up ( int  a,
int  b 
)

Here is the caller graph for this function:

void exit_XGC ( std::string  msg)
inline

Here is the caller graph for this function:

template<GeometryType GT>
KOKKOS_INLINE_FUNCTION double geometry_switch ( double  a,
double  b 
)

Returns the first input argument if using normal toroidal geometry, and the second input argument if using the cylindrical limit

Parameters
[in]ais the first option
[in]bis the second option
Returns
double the chosen option
template<>
KOKKOS_INLINE_FUNCTION double geometry_switch< GeometryType::CylindricalLimit > ( double  a,
double  b 
)
template<>
KOKKOS_INLINE_FUNCTION double geometry_switch< GeometryType::Toroidal > ( double  a,
double  b 
)
int get_num_cpu_threads ( )
inline

Here is the caller graph for this function:

bool is_rank_zero ( )
inline

Here is the caller graph for this function:

KOKKOS_INLINE_FUNCTION unsigned positive_modulo ( int  value,
unsigned  m 
)

Here is the caller graph for this function:

template<GeometryType GT>
KOKKOS_INLINE_FUNCTION constexpr bool use_toroidal_terms ( )

Returns true if using normal toroidal geometry, false if using the cylindrical limit

template<>
KOKKOS_INLINE_FUNCTION constexpr bool use_toroidal_terms< GeometryType::CylindricalLimit > ( )
template<>
KOKKOS_INLINE_FUNCTION constexpr bool use_toroidal_terms< GeometryType::Toroidal > ( )

Variable Documentation

constexpr GeometryType GEOMETRY = GeometryType::Toroidal
bool global_debug_flag
constexpr PhiInterpType PIT_GLOBAL = PhiInterpType::None