XGC1
|
#include "timer_macro.hpp"
#include "space_settings.hpp"
#include "grid.hpp"
#include "magnetic_field.hpp"
#include "electric_field.hpp"
#include "species.hpp"
#include "gyro_radius.hpp"
#include "grid_field_pack.hpp"
#include "pullback_weight.hpp"
Functions | |
template<class Device > | |
KOKKOS_INLINE_FUNCTION double | get_dw (const MagneticField< Device > &magnetic_field, const Species< Device > &species, double upar, const Simd< double > &psi, const Simd< double > &Ah, const SimdParticles &part, int direction, int i_simd) |
template<KinType KT, class Device > | |
KOKKOS_INLINE_FUNCTION void | pullback_weight_c (const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const GridFieldPack< Device, PIT_GLOBAL > &gfpack, const Species< Device > &species, int direction, const int idx) |
void | pullback_weight (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, ElectricField< DeviceType > &electric_field, Species< DeviceType > &species, int direction) |
void | all_species_pullback_weight (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, ElectricField< DeviceType > &electric_field, Plasma &plasma, int direction) |
void all_species_pullback_weight | ( | const Grid< DeviceType > & | grid, |
const MagneticField< DeviceType > & | magnetic_field, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
ElectricField< DeviceType > & | electric_field, | ||
Plasma & | plasma, | ||
int | direction | ||
) |
Perform the pullback transformation on all non-adiabatic species.
[in] | grid | is used to get weights for the field gather |
[in] | magnetic_field | is needed for psi and B calculation |
[in] | electric_field | is used for magnetic potential Ah |
[in] | plasma | contains all species and particle data |
[in] | direction | is the direction of the pullback (-1 or 1) |
KOKKOS_INLINE_FUNCTION double get_dw | ( | const MagneticField< Device > & | magnetic_field, |
const Species< Device > & | species, | ||
double | upar, | ||
const Simd< double > & | psi, | ||
const Simd< double > & | Ah, | ||
const SimdParticles & | part, | ||
int | direction, | ||
int | i_simd | ||
) |
void pullback_weight | ( | const Grid< DeviceType > & | grid, |
const MagneticField< DeviceType > & | magnetic_field, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
ElectricField< DeviceType > & | electric_field, | ||
Species< DeviceType > & | species, | ||
int | direction | ||
) |
Performs the pullback transformation of the particle weights \( w_1 \leftarrow w_1 + \sigma q_s/T_s v_\parallel*A_\parallel^{h} \) This is currently a linearized form of the pullback transform
[in] | grid | is used to get weights for the field gather |
[in] | magnetic_field | is needed for psi and B calculation |
[in] | electric_field | is used for magnetic potential Ah |
[in,out] | species | used for species-specific parameters and particles |
[in] | direction | is the direction of the pullback (-1 or 1) |
KOKKOS_INLINE_FUNCTION void pullback_weight_c | ( | const Grid< Device > & | grid, |
const MagneticField< Device > & | magnetic_field, | ||
const GridFieldPack< Device, PIT_GLOBAL > & | gfpack, | ||
const Species< Device > & | species, | ||
int | direction, | ||
const int | idx | ||
) |
Kernel to perform the pullback transformation of the particle weights \( w_1 \leftarrow w_1 + \sigma q_s/T_s v_\parallel*A_\parallel^{h} \) This is currently a linearized form of the pullback transform
[in] | grid | is used to get weights for the field gather |
[in] | magnetic_field | is needed for psi and B calculation |
[in] | electric_field | is used for magnetic potential Ah |
[in,out] | species | used for species-specific parameters and particles |
[in] | direction | is the direction of the pullback (-1 or 1) |
[in] | idx | is the particle or vector index |