|
XGCa
|
#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"
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) |
| 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 | ||
| ) |


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


| 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


|
inline |

| void sort_aosoa | ( | const SortViews< DeviceType > & | sort_views, |
| const Cabana::AoSoA< DataType, DeviceType, VEC_LEN > & | aosoa, | ||
| int | n_ptl | ||
| ) |


| 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 | ||
| ) |


| 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 | ||
| ) |


| 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_sheath_particles | ( | const SortViews< DeviceType > & | sort_views, |
| const SheathParticles< DeviceType > & | sheath_particles, | ||
| int | n_ptl | ||
| ) |


| 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 | ||
| ) |

