#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"
Go to the source code of this file.
|
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
} |
|
Enumerator |
---|
Toroidal |
|
CylindricalLimit |
|
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 |
|
Enumerator |
---|
ELECTRON |
|
MAIN_ION |
|
KOKKOS_INLINE_FUNCTION void assert_XGC |
( |
bool |
cond, |
|
|
const char * |
msg |
|
) |
| |
bool causes_addition_overflow |
( |
int |
a, |
|
|
int |
b |
|
) |
| |
|
inline |
bool causes_multiplication_overflow |
( |
int |
a, |
|
|
int |
b |
|
) |
| |
|
inline |
KOKKOS_INLINE_FUNCTION int divide_and_round_up |
( |
int |
a, |
|
|
int |
b |
|
) |
| |
void exit_XGC |
( |
std::string |
msg | ) |
|
|
inline |
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] | a | is the first option |
[in] | b | is the second option |
- Returns
- double the chosen option
int get_num_cpu_threads |
( |
| ) |
|
|
inline |
KOKKOS_INLINE_FUNCTION unsigned positive_modulo |
( |
int |
value, |
|
|
unsigned |
m |
|
) |
| |
template<GeometryType GT>
KOKKOS_INLINE_FUNCTION constexpr bool use_toroidal_terms |
( |
| ) |
|
Returns true if using normal toroidal geometry, false if using the cylindrical limit