XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
shift.hpp File Reference
#include "domain_decomposition.hpp"
#include "grid.hpp"
#include "sheath.hpp"
Include dependency graph for shift.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void shift (FortranPtr spall_fptr, const Simulation< DeviceType > &sml, const Species< DeviceType > &species, const GeneratePermutation< DeviceType > &pid_gen_perm, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, TmpSpecies< DeviceType > &tmp_species, const SheathParticles< DeviceType > &sheath_particles, int isp)
 
void shift_all_species (FortranPtr spall_fptr, const Simulation< DeviceType > &sml, const std::vector< Species< DeviceType >> &all_species, const GeneratePermutation< DeviceType > &pid_gen_perm, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const DomainDecomposition< DeviceType > &pol_decomp, TmpSpecies< DeviceType > &tmp_species)
 

Function Documentation

void shift ( FortranPtr  spall_fptr,
const Simulation< DeviceType > &  sml,
const Species< DeviceType > &  species,
const GeneratePermutation< DeviceType > &  pid_gen_perm,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
TmpSpecies< DeviceType > &  tmp_species,
const SheathParticles< DeviceType > &  sheath_particles,
int  isp 
)
void shift_all_species ( FortranPtr  spall_fptr,
const Simulation< DeviceType > &  sml,
const std::vector< Species< DeviceType >> &  all_species,
const GeneratePermutation< DeviceType > &  pid_gen_perm,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
TmpSpecies< DeviceType > &  tmp_species 
)

Shifts particles between MPI ranks. First the particles are sorted by destination rank The particles are packed into a buffer and sent with an MPI all-to-all Then they are unpacked from the receiving buffer back into the particle AoSoA The same is done for phase0, needed for ions

Parameters
[in]spall_fptris the pointer to the fortran particles
[in]smlis needed for the sort
[in]all_speciesis the vector of all species
[in]pid_gen_permis needed for the sort
[in]gridis needed for the sort
[in]magnetic_fieldis needed for the sort
[in]pol_decompis needed for the sort
[in,out]tmp_speciesis where the particles are located on device
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function: