XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
pullback_weight.cpp File Reference
#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"
Include dependency graph for pullback_weight.cpp:

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)
 

Function Documentation

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.

Parameters
[in]gridis used to get weights for the field gather
[in]magnetic_fieldis needed for psi and B calculation
[in]electric_fieldis used for magnetic potential Ah
[in]plasmacontains all species and particle data
[in]directionis the direction of the pullback (-1 or 1)
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)

Here is the caller graph for this function:

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

Parameters
[in]gridis used to get weights for the field gather
[in]magnetic_fieldis needed for psi and B calculation
[in]electric_fieldis used for magnetic potential Ah
[in,out]speciesused for species-specific parameters and particles
[in]directionis the direction of the pullback (-1 or 1)
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)

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

Parameters
[in]gridis used to get weights for the field gather
[in]magnetic_fieldis needed for psi and B calculation
[in]electric_fieldis used for magnetic potential Ah
[in,out]speciesused for species-specific parameters and particles
[in]directionis the direction of the pullback (-1 or 1)
[in]idxis the particle or vector index
Returns
void

Here is the call graph for this function: