XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | 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.

Classes

struct  is_same_type< T, U >
 
struct  is_same_type< T, T >
 

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  MarkerType { MarkerType::ReducedDeltaF, MarkerType::FullF, MarkerType::TotalF, MarkerType::None }
 
enum  FAnalyticShape { FAnalyticShape::Maxwellian, FAnalyticShape::SlowingDown, FAnalyticShape::None }
 
enum  WeightEvoEq { WeightEvoEq::Direct, WeightEvoEq::PDE, WeightEvoEq::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)
 
long long int offsets_of_even_distribution (long long int n_obj, long long int n_subsets, long long int i_subset)
 
long long int counts_of_even_distribution (long long int n_obj, long long int n_subsets, long long int i_subset)
 
std::string formatted_int2str (int input, int n_digits)
 

Variables

constexpr PhiInterpType PIT_GLOBAL = PhiInterpType::Planes
 
constexpr MarkerType MT_GLOBAL = MarkerType::TotalF
 
constexpr GeometryType GEOMETRY = GeometryType::Toroidal
 
bool global_debug_flag
 
bool global_perf_barriers_flag
 

Enumeration Type Documentation

enum FAnalyticShape
strong
Enumerator
Maxwellian 
SlowingDown 
None 
enum GeometryType
strong
Enumerator
Toroidal 
CylindricalLimit 
enum KinType
Enumerator
DriftKin 
GyroKin 
enum MarkerType
strong
Enumerator
ReducedDeltaF 
FullF 
TotalF 
None 
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 
enum WeightEvoEq
strong
Enumerator
Direct 
PDE 
None 

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:

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

std::string formatted_int2str ( int  input,
int  n_digits 
)
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:

long long int offsets_of_even_distribution ( long long int  n_obj,
long long int  n_subsets,
long long 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
bool global_perf_barriers_flag
constexpr MarkerType MT_GLOBAL = MarkerType::TotalF
constexpr PhiInterpType PIT_GLOBAL = PhiInterpType::Planes