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  Order { Order::Zero, Order::One, Order::Two }
 
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)
 
int offsets_of_even_distribution (int n_obj, int n_subsets, int i_subset)
 
int counts_of_even_distribution (int n_obj, int n_subsets, int i_subset)
 

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 
enum Order
strong
Enumerator
Zero 
One 
Two 
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:

int counts_of_even_distribution ( int  n_obj,
int  n_subsets,
int  i_subset 
)
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:

int offsets_of_even_distribution ( int  n_obj,
int  n_subsets,
int  i_subset 
)
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