XGC1
|
#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<class Device > | |
void | get_perm_array (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, bool sort_phase0) |
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 sort_phase0, 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) |
|
inline |
Generate the permutation array
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 | sort_phase0, | ||
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, | ||
bool | sort_phase0 | ||
) |
void sort_sheath_particles | ( | const SortViews< DeviceType > & | sort_views, |
const SheathParticles< DeviceType > & | sheath_particles, | ||
int | n_ptl | ||
) |