1 #ifndef GYRO_RADIUS_HPP
2 #define GYRO_RADIUS_HPP
10 template<
class Device>
17 double B = sqrt( br*br + bz*bz + bphi*bphi );
26 #if defined(XGC1) && defined(NEWGYROMATRIX)
40 template<
class Device>
50 for (
int i_simd = 0; i_simd<SIMD_SIZE; i_simd++){
52 phimax[i_simd] = phimin[i_simd] + grid.
delta_phi;
58 for (
int iphi=0; iphi<2; iphi++){
62 for (
int i_simd = 0; i_simd<SIMD_SIZE; i_simd++){
63 double r = xp[iphi].
r[i_simd];
64 double z = xp[iphi].
z[i_simd];
68 double B = sqrt( br*br + bz*bz + bphi*bphi );
69 rho[i_simd]=sqrt(2.0*B*mu[i_simd]/(ti*
EV_2_J));
76 KOKKOS_INLINE_FUNCTION
int irho(
int i_simd)
const{
78 return rho_wts[0].i[i_simd];
98 template<
class Device>
102 for (
int i_simd = 0; i_simd<SIMD_SIZE; i_simd++){
109 KOKKOS_INLINE_FUNCTION
int irho(
int i_simd)
const{
110 return rho_wts.
i[i_simd];
123 template<
class Device>
126 KOKKOS_INLINE_FUNCTION
int irho(
int i_simd)
const{
double delta_phi
Distance between planes.
Definition: grid.hpp:177
KOKKOS_INLINE_FUNCTION int get_plane_index(double phi) const
Definition: grid.tpp:147
KOKKOS_INLINE_FUNCTION void wedge_modulo_phi(Simd< double > &phi_mod) const
Definition: grid.tpp:100
Definition: magnetic_field.hpp:12
Definition: species.hpp:75
double c2_2m
c2/2m
Definition: species.hpp:87
GyroAverageMatrices< Device > gyro_avg_matrices
Definition: species.hpp:151
Eq::Profile< Device > eq_temp
Definition: species.hpp:136
constexpr double EV_2_J
Conversion rate ev to J.
Definition: constants.hpp:5
@ GyroKin
Definition: globals.hpp:90
@ DriftKin
Definition: globals.hpp:89
KOKKOS_INLINE_FUNCTION double gyro_radius(const MagneticField< Device > &magnetic_field, double r, double z, double phi, double mu, double c2_2m)
Definition: gyro_radius.hpp:11
real(8), parameter phi
Definition: load_balance_constraint_mod.F90:18
Definition: magnetic_field.F90:1
KOKKOS_INLINE_FUNCTION int irho(int i_simd) const
Definition: gyro_radius.hpp:126
KOKKOS_INLINE_FUNCTION SimdGyroWeights(const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const Species< DeviceType > &species, const SimdVector &v, Simd< double > &mu)
Definition: gyro_radius.hpp:124
KOKKOS_INLINE_FUNCTION SimdGyroWeights()
Definition: gyro_radius.hpp:120
KOKKOS_INLINE_FUNCTION SimdGyroWeights()
Definition: gyro_radius.hpp:95
SimdLinearWeights rho_wts
Definition: gyro_radius.hpp:87
KOKKOS_INLINE_FUNCTION int irho(int i_simd) const
Definition: gyro_radius.hpp:109
KOKKOS_INLINE_FUNCTION SimdGyroWeights(const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const Species< DeviceType > &species, const SimdVector &v, Simd< double > &mu)
Definition: gyro_radius.hpp:99
Definition: gyro_radius.hpp:24
Definition: linear_weights.hpp:46
Simd< int > i
Definition: linear_weights.hpp:47
KOKKOS_INLINE_FUNCTION void set(Simd< double > var, double inv_d)
Definition: linear_weights.hpp:62
Simd< double > z
Definition: simd.hpp:141
Simd< double > r
Definition: simd.hpp:140
KOKKOS_INLINE_FUNCTION SimdVector2D & x()
Definition: simd.hpp:156
Simd< double > z
Definition: simd.hpp:151
Simd< double > r
Definition: simd.hpp:150
Simd< double > phi
Definition: simd.hpp:152