#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"
Classes | |
class | ScatterTemplates< KT > |
class | ScatterTemplates< DriftKin > |
class | ScatterTemplates< GyroKin > |
Functions | |
void | copy_electron_charge_contribution_to_fortran (double *edensity_out, int n_nodes, int n_threads) |
void | copy_electron_current_contribution_to_fortran (double *ejpar_re_out, double *ejpar_im_out, int n_nodes, int n_tor, int n_threads, int ipc) |
void | copy_ion_charge_contribution_to_fortran (double *edensity_out, int nrho_p1, int n_nodes, int n_threads) |
void | copy_ion_current_contribution_to_fortran (double *ejpar_re_out, double *ejpar_im_out, int n_nodes, int n_tor, int n_threads) |
void | mpi_sum_electron_contribution (int ipc) |
void | mpi_gyroaverage (int ipc) |
void | electron_charge (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, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp) |
void | ion_charge (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, Plasma &plasma, 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 (const Simulation< DeviceType > &sml, const Charge< DeviceType > &charge) |
void | copy_gyro_scatter_results_from_device (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) |
void copy_electron_charge_contribution_to_fortran | ( | double * | edensity_out, |
int | n_nodes, | ||
int | n_threads | ||
) |
void copy_electron_current_contribution_to_fortran | ( | double * | ejpar_re_out, |
double * | ejpar_im_out, | ||
int | n_nodes, | ||
int | n_tor, | ||
int | n_threads, | ||
int | ipc | ||
) |
void copy_gyro_scatter_results_from_device | ( | const Simulation< DeviceType > & | sml, |
const Charge< DeviceType > & | charge | ||
) |
void copy_ion_charge_contribution_to_fortran | ( | double * | edensity_out, |
int | nrho_p1, | ||
int | n_nodes, | ||
int | n_threads | ||
) |
void copy_ion_current_contribution_to_fortran | ( | double * | ejpar_re_out, |
double * | ejpar_im_out, | ||
int | n_nodes, | ||
int | n_tor, | ||
int | n_threads | ||
) |
void copy_scatter_results_from_device | ( | const Simulation< DeviceType > & | sml, |
const Charge< DeviceType > & | charge | ||
) |
void electron_charge | ( | 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, | ||
Plasma & | plasma, | ||
const VelocityGrid & | vgrid, | ||
const DomainDecomposition< DeviceType > & | pol_decomp | ||
) |
void ion_charge | ( | 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, | ||
Plasma & | plasma, | ||
const VelocityGrid & | vgrid, | ||
const DomainDecomposition< DeviceType > & | pol_decomp | ||
) |
void mpi_gyroaverage | ( | int | ipc | ) |
void mpi_sum_electron_contribution | ( | int | ipc | ) |
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
[in] | part | Particle AoSoA |
[in] | i_item | Particle/vector index |
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 | ||
) |