XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
FieldGather< PT > Struct Template Reference

#include <field_gather.hpp>

Public Member Functions

KOKKOS_INLINE_FUNCTION void gather (SimdVector &vec, int i_simd, double wp, const double(&wphi)[2], const double(&rvec)[2], const double(&zvec)[2], const VectorFieldPlanes &field) const
 
KOKKOS_INLINE_FUNCTION void gather (SimdVector &vec, int i_simd, double wp, const double(&wphi)[2], const double(&rvec)[2], const double(&zvec)[2], const Vector2DFieldPlanes &field) const
 
KOKKOS_INLINE_FUNCTION void gather (Simd< double > &sca, int i_simd, double wp, const double(&wphi)[2], const ScalarFieldPlanes &field) const
 
KOKKOS_INLINE_FUNCTION void gather (SimdVector &vec, int i_simd, double wp, const FieldWeights< PT > &wts, const double(&rvec)[2], const double(&zvec)[2], const InvVectorFieldPlanes &field, const InvVectorFieldPlanes &field2) const
 
KOKKOS_INLINE_FUNCTION void gather (Simd< double > &sca, int i_simd, double wp, const FieldWeights< PT > &wts, const ScalarFieldPlanes &field, const ScalarFieldPlanes &field2) const
 
KOKKOS_INLINE_FUNCTION void gather (SimdVector &vec, int i_simd, double wp, const double(&rvec)[2], const double(&zvec)[2], const FieldXGCa &field) const
 
KOKKOS_INLINE_FUNCTION void gather (SimdVector &vec, int i_simd, double wp, const FieldWeights< PT > &wts, const double(&rvec)[2], const double(&zvec)[2], const FieldXGCa &field, const FieldXGCa &field2) const
 
KOKKOS_INLINE_FUNCTION void phi_from_para (SimdVector &vec, int i_simd, const SimdVector &B, double Bmag) const
 
template<class Device >
KOKKOS_INLINE_FUNCTION void get_Ah (const ElectricField< Device > fields, const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< PT > &rho, Simd< double > &Ah) const
 
template<class Device >
KOKKOS_INLINE_FUNCTION void get_Ah_cv (const ElectricField< Device > fields, const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< PT > &rho, Simd< double > &Ah_cv) const
 
template<class Device >
KOKKOS_INLINE_FUNCTION void get_dpot (const ElectricField< Device > &fields, const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, Simd< double > &dpot_out) const
 
template<class Device , typename T >
KOKKOS_INLINE_FUNCTION void gather_all_fields (const ElectricField< Device > &fields, const Simulation< Device > &sml, int i_simd, int node, double wp, const double(&rvec)[2], const double(&zvec)[2], T &wts, LocalFields &fld) const
 
template<class Device >
KOKKOS_INLINE_FUNCTION void fields_at_point (const ElectricField< Device > fields, const Simulation< Device > &sml, const Grid< Device > &grid, const SimdVector &B, const SimdVector2D &gradpsi, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< PT > &rho, LocalFields &fld) const
 
template<>
KOKKOS_INLINE_FUNCTION void gather_all_fields (const ElectricField< Device > &fields, const Simulation< Device > &sml, int i_simd, int node, double wp, const double(&rvec)[2], const double(&zvec)[2], T &wts, LocalFields &fld) const
 
template<>
KOKKOS_INLINE_FUNCTION void gather_all_fields (const ElectricField< Device > &fields, const Simulation< Device > &sml, int i_simd, int node, double wp, const double(&rvec)[2], const double(&zvec)[2], T &wts, LocalFields &fld) const
 
template<>
KOKKOS_INLINE_FUNCTION void get_Ah (const ElectricField< Device > fields, const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< GyroKin > &rho, Simd< double > &Ah) const
 
template<>
KOKKOS_INLINE_FUNCTION void get_Ah (const ElectricField< Device > fields, const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< DriftKin > &rho, Simd< double > &Ah) const
 
template<>
KOKKOS_INLINE_FUNCTION void get_Ah_cv (const ElectricField< Device > fields, const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< DriftKin > &rho, Simd< double > &Ah_cv) const
 

Member Function Documentation

template<KinType PT>
template<class Device >
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::fields_at_point ( const ElectricField< Device >  fields,
const Simulation< Device > &  sml,
const Grid< Device > &  grid,
const SimdVector B,
const SimdVector2D gradpsi,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< PT > &  rho,
LocalFields fld 
) const

Get electric field vector for a vector of particle locations

Parameters
[in]smlSimulation parameters
[in]gridThe grid object
[in]BThe magnetic field vector
[in]gradpsiGradients of psi
[in]fld_phiPhi coordinate
[in]itrTriangle the particles are in
[in]pWeighting of triangle vertices
[out]EElectric field vector
[out]E00,ddpotdt00 E-field and dPhi/dt for DELTAF_CONV
[out]dAh,Ah,dAs,As,Ah_cv|| comp. of Vector potential (only for EXPLICIT_EM)

Here is the call graph for this function:

Here is the caller graph for this function:

template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( SimdVector vec,
int  i_simd,
double  wp,
const double(&)  wphi[2],
const double(&)  rvec[2],
const double(&)  zvec[2],
const VectorFieldPlanes field 
) const
template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( SimdVector vec,
int  i_simd,
double  wp,
const double(&)  wphi[2],
const double(&)  rvec[2],
const double(&)  zvec[2],
const Vector2DFieldPlanes field 
) const
template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( Simd< double > &  sca,
int  i_simd,
double  wp,
const double(&)  wphi[2],
const ScalarFieldPlanes field 
) const
template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( SimdVector vec,
int  i_simd,
double  wp,
const FieldWeights< PT > &  wts,
const double(&)  rvec[2],
const double(&)  zvec[2],
const InvVectorFieldPlanes field,
const InvVectorFieldPlanes field2 
) const
template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( Simd< double > &  sca,
int  i_simd,
double  wp,
const FieldWeights< PT > &  wts,
const ScalarFieldPlanes field,
const ScalarFieldPlanes field2 
) const
template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( SimdVector vec,
int  i_simd,
double  wp,
const double(&)  rvec[2],
const double(&)  zvec[2],
const FieldXGCa field 
) const

Single operation, gathers field info from a grid point

Parameters
[out]vec,:vector to be gathered into
[in]i_simd,:which vector index
[in]wp,:triangle vertex weight
[in]rvec,:field correction
[in]zvec,:field correction
[in]field,:the field info at the grid point
template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather ( SimdVector vec,
int  i_simd,
double  wp,
const FieldWeights< PT > &  wts,
const double(&)  rvec[2],
const double(&)  zvec[2],
const FieldXGCa field,
const FieldXGCa field2 
) const
template<KinType PT>
template<class Device , typename T >
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::gather_all_fields ( const ElectricField< Device > &  fields,
const Simulation< Device > &  sml,
int  i_simd,
int  node,
double  wp,
const double(&)  rvec[2],
const double(&)  zvec[2],
T &  wts,
LocalFields fld 
) const
inline
template<>
KOKKOS_INLINE_FUNCTION void FieldGather< DriftKin >::gather_all_fields ( const ElectricField< Device > &  fields,
const Simulation< Device > &  sml,
int  i_simd,
int  node,
double  wp,
const double(&)  rvec[2],
const double(&)  zvec[2],
T &  wts,
LocalFields fld 
) const
template<>
KOKKOS_INLINE_FUNCTION void FieldGather< GyroKin >::gather_all_fields ( const ElectricField< Device > &  fields,
const Simulation< Device > &  sml,
int  i_simd,
int  node,
double  wp,
const double(&)  rvec[2],
const double(&)  zvec[2],
T &  wts,
LocalFields fld 
) const
template<KinType PT>
template<class Device >
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::get_Ah ( const ElectricField< Device >  fields,
const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< PT > &  rho,
Simd< double > &  Ah 
) const

Here is the caller graph for this function:

template<>
KOKKOS_INLINE_FUNCTION void FieldGather< GyroKin >::get_Ah ( const ElectricField< Device >  fields,
const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< GyroKin > &  rho,
Simd< double > &  Ah 
) const
template<>
KOKKOS_INLINE_FUNCTION void FieldGather< DriftKin >::get_Ah ( const ElectricField< Device >  fields,
const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< DriftKin > &  rho,
Simd< double > &  Ah 
) const
template<KinType PT>
template<class Device >
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::get_Ah_cv ( const ElectricField< Device >  fields,
const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< PT > &  rho,
Simd< double > &  Ah_cv 
) const

Here is the caller graph for this function:

template<>
KOKKOS_INLINE_FUNCTION void FieldGather< DriftKin >::get_Ah_cv ( const ElectricField< Device >  fields,
const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< DriftKin > &  rho,
Simd< double > &  Ah_cv 
) const
template<KinType PT>
template<class Device >
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::get_dpot ( const ElectricField< Device > &  fields,
const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
Simd< double > &  dpot_out 
) const

Here is the call graph for this function:

Here is the caller graph for this function:

template<KinType PT>
KOKKOS_INLINE_FUNCTION void FieldGather< PT >::phi_from_para ( SimdVector vec,
int  i_simd,
const SimdVector B,
double  Bmag 
) const

The documentation for this struct was generated from the following file: