XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Functions
scatter.cpp File Reference
#include <iostream>
#include <Kokkos_Core.hpp>
#include <Kokkos_Atomic.hpp>
#include "timer_macro.hpp"
#include "electric_field.hpp"
#include "perturbed_B_field.hpp"
#include "send_particles.hpp"
#include "update_ptl_weights.hpp"
#include "field_weights.hpp"
#include "gyro_radius.hpp"
#include "field_gather.hpp"
#include "scatter.hpp"
Include dependency graph for scatter.cpp:

Classes

class  ScatterTemplates< KT >
 
class  ScatterTemplates< DriftKin >
 
class  ScatterTemplates< GyroKin >
 

Functions

void copy_electron_charge_contribution_to_fortran (FortranPtr psn_fptr, double *edensity_out, int n_nodes, int n_threads)
 
void copy_electron_current_contribution_to_fortran (FortranPtr psn_fptr, double *ejpar_re_out, double *ejpar_im_out, int n_nodes, int n_tor, int n_threads)
 
void copy_ion_charge_contribution_to_fortran (FortranPtr psn_fptr, double *edensity_out, int nrho_p1, int n_nodes, int n_threads)
 
void copy_ion_current_contribution_to_fortran (FortranPtr psn_fptr, double *ejpar_re_out, double *ejpar_im_out, int n_nodes, int n_tor, int n_threads)
 
void mpi_sum_electron_contribution (FortranPtr grid_fptr, FortranPtr psn_fptr, FortranPtr spall_fptr)
 
void mpi_gyroaverage (FortranPtr grid_fptr, FortranPtr psn_fptr, FortranPtr spall_fptr)
 
void get_adjust_eden (FortranPtr grid_fptr, FortranPtr psn_fptr)
 
ScalarFieldPlanesget_Ah_rho_ff_loc ()
 
ScalarFieldPlanesget_Ah_cv_phi_ff_loc ()
 
void electron_charge (FortranPtr grid_fptr, FortranPtr psn_fptr, FortranPtr spall_fptr, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const Charge< DeviceType > &charge, TmpSpecies< DeviceType > &tmp_species, Species< DeviceType > &species, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp)
 
void ion_charge (FortranPtr grid_fptr, FortranPtr psn_fptr, FortranPtr spall_fptr, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const Charge< DeviceType > &charge, TmpSpecies< DeviceType > &tmp_species, std::vector< Species< DeviceType >> &all_species, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp)
 
template<KinType KT>
void scatter (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const Species< DeviceType > &species, const Charge< DeviceType > &charge, const TmpSpecies< DeviceType > &tmp_species)
 
template void scatter< DriftKin > (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const Species< DeviceType > &species, const Charge< DeviceType > &charge, const TmpSpecies< DeviceType > &tmp_species)
 
template void scatter< GyroKin > (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field, const Species< DeviceType > &species, const Charge< DeviceType > &charge, const TmpSpecies< DeviceType > &tmp_species)
 
void copy_scatter_results_from_device (FortranPtr psn_fptr, const Simulation< DeviceType > &sml, const Charge< DeviceType > &charge)
 
void copy_gyro_scatter_results_from_device (FortranPtr psn_fptr, const Simulation< DeviceType > &sml, const Charge< DeviceType > &charge)
 
template<class Device , KinType KT>
KOKKOS_INLINE_FUNCTION void particle_scatter_c (const Species< Device > &species, const TmpSpecies< Device > &tmp_species, const Charge< Device > &charge, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const ElectricField< Device > &electric_field, const Simulation< Device > &sml, const PerturbedBField< Device > &perturbed_B_field, int i_item)
 

Function Documentation

void copy_electron_charge_contribution_to_fortran ( FortranPtr  psn_fptr,
double *  edensity_out,
int  n_nodes,
int  n_threads 
)

Here is the caller graph for this function:

void copy_electron_current_contribution_to_fortran ( FortranPtr  psn_fptr,
double *  ejpar_re_out,
double *  ejpar_im_out,
int  n_nodes,
int  n_tor,
int  n_threads 
)

Here is the caller graph for this function:

void copy_gyro_scatter_results_from_device ( FortranPtr  psn_fptr,
const Simulation< DeviceType > &  sml,
const Charge< DeviceType > &  charge 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void copy_ion_charge_contribution_to_fortran ( FortranPtr  psn_fptr,
double *  edensity_out,
int  nrho_p1,
int  n_nodes,
int  n_threads 
)

Here is the caller graph for this function:

void copy_ion_current_contribution_to_fortran ( FortranPtr  psn_fptr,
double *  ejpar_re_out,
double *  ejpar_im_out,
int  n_nodes,
int  n_tor,
int  n_threads 
)

Here is the caller graph for this function:

void copy_scatter_results_from_device ( FortranPtr  psn_fptr,
const Simulation< DeviceType > &  sml,
const Charge< DeviceType > &  charge 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void electron_charge ( FortranPtr  grid_fptr,
FortranPtr  psn_fptr,
FortranPtr  spall_fptr,
const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const Charge< DeviceType > &  charge,
TmpSpecies< DeviceType > &  tmp_species,
Species< DeviceType > &  species,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void get_adjust_eden ( FortranPtr  grid_fptr,
FortranPtr  psn_fptr 
)
ScalarFieldPlanes* get_Ah_cv_phi_ff_loc ( )

Here is the caller graph for this function:

ScalarFieldPlanes* get_Ah_rho_ff_loc ( )

Here is the caller graph for this function:

void ion_charge ( FortranPtr  grid_fptr,
FortranPtr  psn_fptr,
FortranPtr  spall_fptr,
const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const Charge< DeviceType > &  charge,
TmpSpecies< DeviceType > &  tmp_species,
std::vector< Species< DeviceType >> &  all_species,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void mpi_gyroaverage ( FortranPtr  grid_fptr,
FortranPtr  psn_fptr,
FortranPtr  spall_fptr 
)

Here is the caller graph for this function:

void mpi_sum_electron_contribution ( FortranPtr  grid_fptr,
FortranPtr  psn_fptr,
FortranPtr  spall_fptr 
)

Here is the caller graph for this function:

template<class Device , KinType KT>
KOKKOS_INLINE_FUNCTION void particle_scatter_c ( const Species< Device > &  species,
const TmpSpecies< Device > &  tmp_species,
const Charge< Device > &  charge,
const Grid< Device > &  grid,
const MagneticField< Device > &  magnetic_field,
const ElectricField< Device > &  electric_field,
const Simulation< Device > &  sml,
const PerturbedBField< Device > &  perturbed_B_field,
int  i_item 
)

Scatter electron charge density information onto the grid

Parameters
[in]partParticle AoSoA
[in]i_itemParticle/vector index

Here is the call graph for this function:

template<KinType KT>
void scatter ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const Species< DeviceType > &  species,
const Charge< DeviceType > &  charge,
const TmpSpecies< DeviceType > &  tmp_species 
)

Here is the call graph for this function:

template void scatter< DriftKin > ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const Species< DeviceType > &  species,
const Charge< DeviceType > &  charge,
const TmpSpecies< DeviceType > &  tmp_species 
)

Here is the caller graph for this function:

template void scatter< GyroKin > ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const ElectricField< DeviceType > &  electric_field,
const PerturbedBField< DeviceType > &  perturbed_B_field,
const Species< DeviceType > &  species,
const Charge< DeviceType > &  charge,
const TmpSpecies< DeviceType > &  tmp_species 
)

Here is the caller graph for this function: