XGCa
Functions
sort.cpp File Reference
#include <Kokkos_Sort.hpp>
#include "globals.hpp"
#include "magnetic_field.hpp"
#include "grid.hpp"
#include "particles.hpp"
#include "species.hpp"
#include "get_current_triangles.hpp"
#include "get_current_pid.hpp"
#include "get_current_local_pid.hpp"
#include "sheath.hpp"
#include "sort.hpp"
Include dependency graph for sort.cpp:

Functions

template<typename BinToHotIdxFunc , typename HotToBinIdxFunc >
void FillCountHierarchical (int n_ptl, const View< int *, CLayout, DeviceType > &key, const View< int *, CLayout, DeviceType > &count, int team_size, int n_hotspot_bins, BinToHotIdxFunc bin_to_hot_idx, HotToBinIdxFunc hot_to_bin_idx)
 
template<typename BinToHotIdxFunc , typename HotToBinIdxFunc >
void WritePermHierarchical (int n_ptl, const View< int *, CLayout, DeviceType > &key, const View< unsigned int *, CLayout, DeviceType > &place, const View< int *, CLayout, DeviceType > &iperm, int team_size, int n_hotspot_bins, BinToHotIdxFunc bin_to_hot_idx, HotToBinIdxFunc hot_to_bin_idx)
 
template<typename BinToHotIdxFunc , typename HotToBinIdxFunc >
void get_perm_array_hierarchical (const SortViews< DeviceType > &sort_views, int n_ptl, int n_bins, bool use_hierarchical, int team_size, int n_hotspot_bins, BinToHotIdxFunc bin_to_hot_idx, HotToBinIdxFunc hot_to_bin_idx)
 
void get_perm_array (const SortViews< DeviceType > &sort_views, int n_ptl, int n_bins)
 
template<class Device >
void get_perm_array_kokkos (const SortViews< Device > &sort_views, int n_ptl, int n_bins)
 
template<class DataType >
void sort_aosoa (const SortViews< DeviceType > &sort_views, const Cabana::AoSoA< DataType, DeviceType, VEC_LEN > &aosoa, int n_ptl)
 
void sort_sheath_particles (const SortViews< DeviceType > &sort_views, const SheathParticles< DeviceType > &sheath_particles, int n_ptl)
 
void sort_particles_by_triangle (SortViews< DeviceType > &sort_views, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Species< DeviceType > &species, const SheathParticles< DeviceType > &sheath_particles, bool sort_sheath_ptl)
 
void sort_particles_by_pid (SortViews< DeviceType > &sort_views, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, const Species< DeviceType > &species, bool plane_sort_only)
 
int sort_particles_by_field_id (SortViews< DeviceType > &sort_views, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, const Species< DeviceType > &species, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &phase0, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy_sum, bool sort_intermediate_values)
 
void sort_particles_by_key (SortViews< DeviceType > &sort_views, const Species< DeviceType > &species, int n_bins, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &phase0, Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &dy_sum, bool sort_intermediate_values)
 

Function Documentation

◆ FillCountHierarchical()

template<typename BinToHotIdxFunc , typename HotToBinIdxFunc >
void FillCountHierarchical ( int  n_ptl,
const View< int *, CLayout, DeviceType > &  key,
const View< int *, CLayout, DeviceType > &  count,
int  team_size,
int  n_hotspot_bins,
BinToHotIdxFunc  bin_to_hot_idx,
HotToBinIdxFunc  hot_to_bin_idx 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_perm_array()

void get_perm_array ( const SortViews< DeviceType > &  sort_views,
int  n_ptl,
int  n_bins 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_perm_array_hierarchical()

template<typename BinToHotIdxFunc , typename HotToBinIdxFunc >
void get_perm_array_hierarchical ( const SortViews< DeviceType > &  sort_views,
int  n_ptl,
int  n_bins,
bool  use_hierarchical,
int  team_size,
int  n_hotspot_bins,
BinToHotIdxFunc  bin_to_hot_idx,
HotToBinIdxFunc  hot_to_bin_idx 
)

Generate the permutation array

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_perm_array_kokkos()

template<class Device >
void get_perm_array_kokkos ( const SortViews< Device > &  sort_views,
int  n_ptl,
int  n_bins 
)
inline
Here is the call graph for this function:

◆ sort_aosoa()

template<class DataType >
void sort_aosoa ( const SortViews< DeviceType > &  sort_views,
const Cabana::AoSoA< DataType, DeviceType, VEC_LEN > &  aosoa,
int  n_ptl 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_particles_by_field_id()

int sort_particles_by_field_id ( SortViews< DeviceType > &  sort_views,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Species< DeviceType > &  species,
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  phase0,
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  dy_sum,
bool  sort_intermediate_values 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_particles_by_key()

void sort_particles_by_key ( SortViews< DeviceType > &  sort_views,
const Species< DeviceType > &  species,
int  n_bins,
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  phase0,
Cabana::AoSoA< PhaseDataTypes, DeviceType, VEC_LEN > &  dy_sum,
bool  sort_intermediate_values 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_particles_by_pid()

void sort_particles_by_pid ( SortViews< DeviceType > &  sort_views,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Species< DeviceType > &  species,
bool  plane_sort_only 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_particles_by_triangle()

void sort_particles_by_triangle ( SortViews< DeviceType > &  sort_views,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const Species< DeviceType > &  species,
const SheathParticles< DeviceType > &  sheath_particles,
bool  sort_sheath_ptl 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sort_sheath_particles()

void sort_sheath_particles ( const SortViews< DeviceType > &  sort_views,
const SheathParticles< DeviceType > &  sheath_particles,
int  n_ptl 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ WritePermHierarchical()

template<typename BinToHotIdxFunc , typename HotToBinIdxFunc >
void WritePermHierarchical ( int  n_ptl,
const View< int *, CLayout, DeviceType > &  key,
const View< unsigned int *, CLayout, DeviceType > &  place,
const View< int *, CLayout, DeviceType > &  iperm,
int  team_size,
int  n_hotspot_bins,
BinToHotIdxFunc  bin_to_hot_idx,
HotToBinIdxFunc  hot_to_bin_idx 
)
Here is the call graph for this function:
Here is the caller graph for this function: