XGC1
|
#include "globals.hpp"
#include "magnetic_field.hpp"
#include "grid.hpp"
#include "particles.hpp"
#include "species.hpp"
Functions | |
KOKKOS_INLINE_FUNCTION void | complain_about_hygiene (const Simd< long long int > &gid, const SimdVector2D &x, const Simd< double > &phi, const Simd< double > &rho, const Simd< double > &mu, const Simd< int > &itr, const Simd< bool > ¬_in_triangle) |
template<class Device > | |
KOKKOS_INLINE_FUNCTION void | get_current_triangles_c (const Species< Device > &species, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const Kokkos::View< int *, Kokkos::LayoutRight, Device > ¤t_triangle, int i_item) |
KOKKOS_INLINE_FUNCTION void complain_about_hygiene | ( | const Simd< long long int > & | gid, |
const SimdVector2D & | x, | ||
const Simd< double > & | phi, | ||
const Simd< double > & | rho, | ||
const Simd< double > & | mu, | ||
const Simd< int > & | itr, | ||
const Simd< bool > & | not_in_triangle | ||
) |
Output error if a particle isn't in a triangle. Actually it shouldn't be done here, but after every time the particles are moved in configuration space
[in] | gid | vector of particle IDs (don't complain about dead particles) |
[in] | x | (R,Z) coordinates of particles |
[in] | phi | toroidal angle of particles |
[in] | rho | parallel velocity coordinate of particles |
[in] | mu | magnetic moment of particles |
[in] | itr | triangle indices (-1 if outside of mesh) |
[in] | not_in_triangle | vector of whether they're in a triangle |
KOKKOS_INLINE_FUNCTION void get_current_triangles_c | ( | const Species< Device > & | species, |
const Grid< Device > & | grid, | ||
const MagneticField< Device > & | magnetic_field, | ||
const Kokkos::View< int *, Kokkos::LayoutRight, Device > & | current_triangle, | ||
int | i_item | ||
) |
Loop over particles and save the triangle they belong to
[in] | part | Particle AoSoA |
[in] | i_item | Particle/vector index |