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 "my_subview.hpp"
#include "electric_field.hpp"
#include "update_ptl_weights.hpp"
#include "field_weights.hpp"
#include "gyro_radius.hpp"
#include "grid_field_pack.hpp"
#include "charge_sum_and_gyroaverage.hpp"
#include "scatter.hpp"
Include dependency graph for scatter.cpp:

Classes

class  ScatterTemplates< KT, PIT >
 
class  ScatterTemplates< DriftKin, PIT >
 
class  ScatterTemplates< GyroKin, PIT >
 

Functions

void var_transpose_copy (Kokkos::View< double ***, Kokkos::LayoutRight, HostType > &dest_view, const Kokkos::View< double ***, Kokkos::LayoutRight, DeviceType > &src_view)
 
void calculate_charge (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charge< DeviceType > &charge, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp)
 
template<class Device >
KOKKOS_INLINE_FUNCTION void deltaf_particle_weight_adj (const Species< Device > &species, const MagneticField< Device > &magnetic_field, const Simulation< Device > &sml, 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 > &charge, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const GridFieldPack< Device, PIT > &gfpack, const Simulation< Device > &sml, int i_item)
 
template<KinType KT, PhiInterpType PIT>
void scatter (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridFieldPack< DeviceType, PIT > &gfpack, const Species< DeviceType > &species, const Charge< DeviceType > &charge)
 
template void scatter< DriftKin, PhiInterpType::None > (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridFieldPack< DeviceType, PhiInterpType::None > &gfpack, const Species< DeviceType > &species, const Charge< DeviceType > &charge)
 
template void scatter< GyroKin, PhiInterpType::None > (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const GridFieldPack< DeviceType, PhiInterpType::None > &gfpack, const Species< DeviceType > &species, const Charge< DeviceType > &charge)
 

Function Documentation

void calculate_charge ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
ElectricField< DeviceType > &  electric_field,
Charge< DeviceType > &  charge,
Plasma plasma,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device >
KOKKOS_INLINE_FUNCTION void deltaf_particle_weight_adj ( const Species< Device > &  species,
const MagneticField< Device > &  magnetic_field,
const Simulation< Device > &  sml,
int  i_simd,
const Simd< double > &  psi,
const SimdVector2D x,
double  upar,
Simd< double > &  Ah,
const SimdParticles part,
double &  particle_weight 
)

Here is the caller graph for this function:

template<class Device , KinType KT, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void particle_scatter_c ( const Species< Device > &  species,
const Charge< Device > &  charge,
const Grid< Device > &  grid,
const MagneticField< Device > &  magnetic_field,
const GridFieldPack< Device, PIT > &  gfpack,
const Simulation< Device > &  sml,
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, PhiInterpType PIT>
void scatter ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const GridFieldPack< DeviceType, PIT > &  gfpack,
const Species< DeviceType > &  species,
const Charge< DeviceType > &  charge 
)

Here is the call graph for this function:

template void scatter< DriftKin, PhiInterpType::None > ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const GridFieldPack< DeviceType, PhiInterpType::None > &  gfpack,
const Species< DeviceType > &  species,
const Charge< DeviceType > &  charge 
)
template void scatter< GyroKin, PhiInterpType::None > ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const GridFieldPack< DeviceType, PhiInterpType::None > &  gfpack,
const Species< DeviceType > &  species,
const Charge< DeviceType > &  charge 
)
void var_transpose_copy ( Kokkos::View< double ***, Kokkos::LayoutRight, HostType > &  dest_view,
const Kokkos::View< double ***, Kokkos::LayoutRight, DeviceType > &  src_view 
)

Here is the call graph for this function: