XGC1
|
#include "globals.hpp"
#include "magnetic_field.hpp"
#include "grid.hpp"
#include "particles.hpp"
#include "species.hpp"
#include "boundaries.hpp"
#include "perturbed_B_field.hpp"
#include "push_physics.hpp"
#include "sort.hpp"
#include "shift.hpp"
#include "unfused_push_algorithm.hpp"
#include "get_current_local_pid.hpp"
Functions | |
void | set_phase0_kernel (Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &phase0, const Species< DeviceType > &species, int n_ptl) |
template<class Device , KinType KT> | |
KOKKOS_INLINE_FUNCTION void | derivs_kernel_c (const Species< Device > &species, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const GridFieldPack< Device, PIT_GLOBAL > &gfpack, const PushControls &push_controls, const PerturbedBField< Device > &perturbed_B_field, const Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy, const View< int *, CLayout, DeviceType > ¤t_tr, const double time, const int i_item) |
template<class Device , KinType KT> | |
void | derivs_kernel (const Species< Device > &species, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const GridFieldPack< Device, PIT_GLOBAL > &gfpack, const GridFieldPack< Device, PIT_GLOBAL > &gfpack_near, const PushControls &push_controls, const PerturbedBField< Device > &perturbed_B_field, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy, View< int *, CLayout, DeviceType > ¤t_tr, double time, int n_ptl_in_near_field) |
void | update_phases_kernel (const Species< DeviceType > &species, int n_ptl, const Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &phase0, double local_dt, const Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy) |
void | update_sum_kernel (Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy_sum, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy) |
void | update_sum2x_kernel (Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy_sum, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy) |
void | boundaries_kernel (const Species< DeviceType > &species, const PushControls &push_controls, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, const HeatDiagnostics< DeviceType > &heat_diag, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &phase0, View< int *, CLayout, DeviceType > ¤t_tr) |
void | get_local_pid_sort_key (SortViews< DeviceType > &sort_views, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, const Species< DeviceType > &species) |
void | bin_by_key (const SortViews< DeviceType > &sort_views, int n_ptl, int n_bins) |
View< int *, HostType > | get_near_field_dest_adjustment (const MyMPI &mpi, const View< int *, CLayout, HostType > &sort_count, int near_field_pid) |
void | adjust_key (View< int *, CLayout, DeviceType > &key, const View< int *, HostType > &near_field_dest_adjustment_h, int near_field_pid, int my_rank, int n_ptl) |
void | local_shift (const PushControls &push_controls, Species< DeviceType > &species, SortViews< DeviceType > &sort_views, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, UnfusedPushTmpViews< DeviceType > &unfused_push_tmp_views, bool send_intermediate_values, bool use_near_field) |
void | unfused_electron_push_kernel (Species< DeviceType > &species, const PushControls &push_controls, const DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridFieldPack< DeviceType, PIT_GLOBAL > &gfpack, const GridFieldPack< DeviceType, PIT_GLOBAL > &gfpack_near, const PerturbedBField< DeviceType > &perturbed_B_field, SortViews< DeviceType > &sort_views, const Sheath< DeviceType > &sheath, const Neutrals< DeviceType > &neutrals, const HeatDiagnostics< DeviceType > &heat_diag, UnfusedPushTmpViews< DeviceType > &tmp, int ncycles_per_launch, double dt) |
void adjust_key | ( | View< int *, CLayout, DeviceType > & | key, |
const View< int *, HostType > & | near_field_dest_adjustment_h, | ||
int | near_field_pid, | ||
int | my_rank, | ||
int | n_ptl | ||
) |
void bin_by_key | ( | const SortViews< DeviceType > & | sort_views, |
int | n_ptl, | ||
int | n_bins | ||
) |
Generate the permutation array
void boundaries_kernel | ( | const Species< DeviceType > & | species, |
const PushControls & | push_controls, | ||
const Grid< DeviceType > & | grid, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const Sheath< DeviceType > & | sheath, | ||
const Neutrals< DeviceType > & | neutrals, | ||
const HeatDiagnostics< DeviceType > & | heat_diag, | ||
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | phase0, | ||
View< int *, CLayout, DeviceType > & | current_tr | ||
) |
void derivs_kernel | ( | const Species< Device > & | species, |
const Grid< Device > & | grid, | ||
const MagneticField< Device > & | magnetic_field, | ||
const GridFieldPack< Device, PIT_GLOBAL > & | gfpack, | ||
const GridFieldPack< Device, PIT_GLOBAL > & | gfpack_near, | ||
const PushControls & | push_controls, | ||
const PerturbedBField< Device > & | perturbed_B_field, | ||
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy, | ||
View< int *, CLayout, DeviceType > & | current_tr, | ||
double | time, | ||
int | n_ptl_in_near_field | ||
) |
KOKKOS_INLINE_FUNCTION void derivs_kernel_c | ( | const Species< Device > & | species, |
const Grid< Device > & | grid, | ||
const MagneticField< Device > & | magnetic_field, | ||
const GridFieldPack< Device, PIT_GLOBAL > & | gfpack, | ||
const PushControls & | push_controls, | ||
const PerturbedBField< Device > & | perturbed_B_field, | ||
const Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy, | ||
const View< int *, CLayout, DeviceType > & | current_tr, | ||
const double | time, | ||
const int | i_item | ||
) |
void get_local_pid_sort_key | ( | SortViews< DeviceType > & | sort_views, |
const Grid< DeviceType > & | grid, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
const Species< DeviceType > & | species | ||
) |
View<int*,HostType> get_near_field_dest_adjustment | ( | const MyMPI & | mpi, |
const View< int *, CLayout, HostType > & | sort_count, | ||
int | near_field_pid | ||
) |
void local_shift | ( | const PushControls & | push_controls, |
Species< DeviceType > & | species, | ||
SortViews< DeviceType > & | sort_views, | ||
const Grid< DeviceType > & | grid, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
UnfusedPushTmpViews< DeviceType > & | unfused_push_tmp_views, | ||
bool | send_intermediate_values, | ||
bool | use_near_field | ||
) |
void set_phase0_kernel | ( | Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | phase0, |
const Species< DeviceType > & | species, | ||
int | n_ptl | ||
) |
void unfused_electron_push_kernel | ( | Species< DeviceType > & | species, |
const PushControls & | push_controls, | ||
const DomainDecomposition< DeviceType > & | pol_decomp, | ||
const Grid< DeviceType > & | grid, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const GridFieldPack< DeviceType, PIT_GLOBAL > & | gfpack, | ||
const GridFieldPack< DeviceType, PIT_GLOBAL > & | gfpack_near, | ||
const PerturbedBField< DeviceType > & | perturbed_B_field, | ||
SortViews< DeviceType > & | sort_views, | ||
const Sheath< DeviceType > & | sheath, | ||
const Neutrals< DeviceType > & | neutrals, | ||
const HeatDiagnostics< DeviceType > & | heat_diag, | ||
UnfusedPushTmpViews< DeviceType > & | tmp, | ||
int | ncycles_per_launch, | ||
double | dt | ||
) |
void update_phases_kernel | ( | const Species< DeviceType > & | species, |
int | n_ptl, | ||
const Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | phase0, | ||
double | local_dt, | ||
const Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy | ||
) |
void update_sum2x_kernel | ( | Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy_sum, |
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy | ||
) |
void update_sum_kernel | ( | Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy_sum, |
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > & | dy | ||
) |