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

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 > &current_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 > &current_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 > &current_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 *, HostTypeget_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)
 

Function Documentation

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 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void bin_by_key ( const SortViews< DeviceType > &  sort_views,
int  n_ptl,
int  n_bins 
)

Generate the permutation array

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)

Here is the call graph for this function:

Here is the caller graph for this function:

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 > &  current_tr,
double  time,
int  n_ptl_in_near_field 
)

Here is the call graph for this function:

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 > &  current_tr,
const double  time,
const int  i_item 
)

Here is the call graph for this function:

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 
)

Here is the call graph for this function:

Here is the caller graph for this function:

View<int*,HostType> get_near_field_dest_adjustment ( const MyMPI mpi,
const View< int *, CLayout, HostType > &  sort_count,
int  near_field_pid 
)

Here is the caller graph for this function:

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 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void set_phase0_kernel ( Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  phase0,
const Species< DeviceType > &  species,
int  n_ptl 
)

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void update_sum2x_kernel ( Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  dy_sum,
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  dy 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void update_sum_kernel ( Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  dy_sum,
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  dy 
)

Here is the call graph for this function:

Here is the caller graph for this function: