| 
    XGCa
    
   | 
 
#include <iostream>#include <Kokkos_Core.hpp>#include <Kokkos_Atomic.hpp>#include "timer_macro.hpp"#include "my_subview.hpp"#include "electric_field.hpp"#include "update_ptl_weights.hpp"#include "gyro_radius.hpp"#include "grid_field_pack.hpp"#include "charge_sum_and_gyroaverage.hpp"#include "scatter.hpp"
Functions | |
| template<KinType KT> | |
| void | var_transpose_in_place (const View< double ***, CLayout, DeviceType > &dest_view, const GridField< DeviceType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, KT, SCATTER_TYPE_GLOBAL > &src_field) | 
| template<KinType KT> | |
| void | calculate_charge (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charge< DeviceType, KT > &charge, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, bool fullf_only) | 
| template void | calculate_charge< KinType::DriftKin > (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charge< DeviceType, KinType::DriftKin > &charge, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, bool fullf_only) | 
| template void | calculate_charge< KinType::GyroKin > (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charge< DeviceType, KinType::GyroKin > &charge, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, bool fullf_only) | 
| void | charge_offset_fullf_setup (NLReader::NamelistReader &nlr, const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, Charges &charges) | 
| template<class Device > | |
| KOKKOS_INLINE_FUNCTION void | deltaf_particle_weight_adj (const Species< Device > &species, const MagneticField< Device > &magnetic_field, bool do_cv_adjustment, bool cv_full_weight, int i_simd, const Simd< double > &psi, const SimdVector2D &x, double upar, Simd< double > &Ah, const SimdParticles &part, double &particle_weight) | 
| template<class Device , KinType KT, PhiInterpType PIT> | |
| KOKKOS_INLINE_FUNCTION void | particle_scatter_c (const Species< Device > &species, const Charge< Device, KT > &charge, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const GridField< DeviceType, VarType::Scalar, PIT, TorType::OnePlane, KT > &Ah_gf, bool exclude_private, bool do_cv_adjustment, bool cv_full_weight, int i_item) | 
| template<KinType KT, PhiInterpType PIT> | |
| void | scatter (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridField< DeviceType, VarType::Scalar, PIT, TorType::OnePlane, KT > &Ah_gf, const Species< DeviceType > &species, bool exclude_private, bool do_cv_adjustment, bool cv_full_weight, const Charge< DeviceType, KT > &charge) | 
| template void | scatter< DriftKin, PIT_GLOBAL > (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridField< DeviceType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, DriftKin > &Ah_gf, const Species< DeviceType > &species, bool exclude_private, bool do_cv_adjustment, bool cv_full_weight, const Charge< DeviceType, DriftKin > &charge) | 
| template void | scatter< GyroKin, PIT_GLOBAL > (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridField< DeviceType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, GyroKin > &Ah_gf, const Species< DeviceType > &species, bool exclude_private, bool do_cv_adjustment, bool cv_full_weight, const Charge< DeviceType, GyroKin > &charge) | 
| void calculate_charge | ( | const Simulation< DeviceType > & | sml, | 
| const Grid< DeviceType > & | grid, | ||
| const MagneticField< DeviceType > & | magnetic_field, | ||
| ElectricField< DeviceType > & | electric_field, | ||
| Charge< DeviceType, KT > & | charge, | ||
| Plasma & | plasma, | ||
| const VelocityGrid & | vgrid, | ||
| const DomainDecomposition< DeviceType > & | pol_decomp, | ||
| bool | fullf_only | ||
| ) | 


| template void calculate_charge< KinType::DriftKin > | ( | const Simulation< DeviceType > & | sml, | 
| const Grid< DeviceType > & | grid, | ||
| const MagneticField< DeviceType > & | magnetic_field, | ||
| ElectricField< DeviceType > & | electric_field, | ||
| Charge< DeviceType, KinType::DriftKin > & | charge, | ||
| Plasma & | plasma, | ||
| const VelocityGrid & | vgrid, | ||
| const DomainDecomposition< DeviceType > & | pol_decomp, | ||
| bool | fullf_only | ||
| ) | 
| template void calculate_charge< KinType::GyroKin > | ( | const Simulation< DeviceType > & | sml, | 
| const Grid< DeviceType > & | grid, | ||
| const MagneticField< DeviceType > & | magnetic_field, | ||
| ElectricField< DeviceType > & | electric_field, | ||
| Charge< DeviceType, KinType::GyroKin > & | charge, | ||
| Plasma & | plasma, | ||
| const VelocityGrid & | vgrid, | ||
| const DomainDecomposition< DeviceType > & | pol_decomp, | ||
| bool | fullf_only | ||
| ) | 
| void charge_offset_fullf_setup | ( | NLReader::NamelistReader & | nlr, | 
| const Simulation< DeviceType > & | sml, | ||
| const Grid< DeviceType > & | grid, | ||
| const MagneticField< DeviceType > & | magnetic_field, | ||
| ElectricField< DeviceType > & | electric_field, | ||
| Plasma & | plasma, | ||
| const VelocityGrid & | vgrid, | ||
| const DomainDecomposition< DeviceType > & | pol_decomp, | ||
| Charges & | charges | ||
| ) | 


| KOKKOS_INLINE_FUNCTION void deltaf_particle_weight_adj | ( | const Species< Device > & | species, | 
| const MagneticField< Device > & | magnetic_field, | ||
| bool | do_cv_adjustment, | ||
| bool | cv_full_weight, | ||
| int | i_simd, | ||
| const Simd< double > & | psi, | ||
| const SimdVector2D & | x, | ||
| double | upar, | ||
| Simd< double > & | Ah, | ||
| const SimdParticles & | part, | ||
| double & | particle_weight | ||
| ) | 

| KOKKOS_INLINE_FUNCTION void particle_scatter_c | ( | const Species< Device > & | species, | 
| const Charge< Device, KT > & | charge, | ||
| const Grid< Device > & | grid, | ||
| const MagneticField< Device > & | magnetic_field, | ||
| const GridField< DeviceType, VarType::Scalar, PIT, TorType::OnePlane, KT > & | Ah_gf, | ||
| bool | exclude_private, | ||
| bool | do_cv_adjustment, | ||
| bool | cv_full_weight, | ||
| int | i_item | ||
| ) | 
Scatter electron charge density information onto the grid
| [in] | part | Particle AoSoA | 
| [in] | i_item | Particle/vector index | 

| void scatter | ( | const Grid< DeviceType > & | grid, | 
| const MagneticField< DeviceType > & | magnetic_field, | ||
| const GridField< DeviceType, VarType::Scalar, PIT, TorType::OnePlane, KT > & | Ah_gf, | ||
| const Species< DeviceType > & | species, | ||
| bool | exclude_private, | ||
| bool | do_cv_adjustment, | ||
| bool | cv_full_weight, | ||
| const Charge< DeviceType, KT > & | charge | ||
| ) | 


| template void scatter< DriftKin, PIT_GLOBAL > | ( | const Grid< DeviceType > & | grid, | 
| const MagneticField< DeviceType > & | magnetic_field, | ||
| const GridField< DeviceType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, DriftKin > & | Ah_gf, | ||
| const Species< DeviceType > & | species, | ||
| bool | exclude_private, | ||
| bool | do_cv_adjustment, | ||
| bool | cv_full_weight, | ||
| const Charge< DeviceType, DriftKin > & | charge | ||
| ) | 
| template void scatter< GyroKin, PIT_GLOBAL > | ( | const Grid< DeviceType > & | grid, | 
| const MagneticField< DeviceType > & | magnetic_field, | ||
| const GridField< DeviceType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, GyroKin > & | Ah_gf, | ||
| const Species< DeviceType > & | species, | ||
| bool | exclude_private, | ||
| bool | do_cv_adjustment, | ||
| bool | cv_full_weight, | ||
| const Charge< DeviceType, GyroKin > & | charge | ||
| ) | 
| void var_transpose_in_place | ( | const View< double ***, CLayout, DeviceType > & | dest_view, | 
| const GridField< DeviceType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, KT, SCATTER_TYPE_GLOBAL > & | src_field | ||
| ) | 
