XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Public Attributes | Private Attributes | List of all members
GridFieldPack< Device, PIT > Struct Template Reference

#include <grid_field_pack.hpp>

Public Member Functions

 GridFieldPack ()
 
 GridFieldPack (KinType kintype_in, bool turb_efield_in)
 
bool can_reuse (KinType kintype_in)
 
KOKKOS_INLINE_FUNCTION void field_correction (int i_simd, double basis, double gamma_psi, const SimdVector2D &gradpsi, double *rvec, double *zvec) const
 
KOKKOS_INLINE_FUNCTION void phi_from_para (SimdVector &vec, int i_simd, const SimdVector &B, double Bmag) const
 
KOKKOS_INLINE_FUNCTION void gather_all_fields (const PushControls &push_controls, int i_simd, int i_node, double wp, const double(&rvec)[2], const double(&zvec)[2], const FieldWeights< DriftKin, PIT > &wts, LocalFields &fld) const
 
KOKKOS_INLINE_FUNCTION void gather_all_fields (const PushControls &push_controls, int i_simd, int node, double wp, const double(&rvec)[2], const double(&zvec)[2], const FieldWeights< GyroKin, PIT > &wts, LocalFields &fld) const
 
template<KinType PT>
KOKKOS_INLINE_FUNCTION void fields_at_point (const PushControls &push_controls, 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
 
KOKKOS_INLINE_FUNCTION void get_Ah (const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< GyroKin > &rho, Simd< double > &Ah) const
 
KOKKOS_INLINE_FUNCTION void get_Ah (const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< DriftKin > &rho, Simd< double > &Ah) const
 
KOKKOS_INLINE_FUNCTION void get_Ah_cv (const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, SimdGyroRadius< DriftKin > &rho, Simd< double > &Ah_cv) const
 
KOKKOS_INLINE_FUNCTION void get_dpot (const Grid< Device > &grid, const Simd< double > &fld_phi, const Simd< int > &itr, const SimdGridVec &p, Simd< double > &dpot_out) const
 

Public Attributes

bool turb_efield
 
int phi_offset
 Offset for phi_ff field decomposition. More...
 
int node_offset
 Offset for phi_ff field decomposition. More...
 
Kokkos::View< Field
< VarType::Vector2D, PIT >
**, Kokkos::LayoutRight,
Device > 
E_rho
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
dpot
 

Private Attributes

KinType kintype
 
bool is_initialized
 

Constructor & Destructor Documentation

template<class Device, PhiInterpType PIT>
GridFieldPack< Device, PIT >::GridFieldPack ( )
inline
template<class Device, PhiInterpType PIT>
GridFieldPack< Device, PIT >::GridFieldPack ( KinType  kintype_in,
bool  turb_efield_in 
)
inline

Member Function Documentation

template<class Device, PhiInterpType PIT>
bool GridFieldPack< Device, PIT >::can_reuse ( KinType  kintype_in)
inline

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::field_correction ( int  i_simd,
double  basis,
double  gamma_psi,
const SimdVector2D gradpsi,
double *  rvec,
double *  zvec 
) const
inline

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
template<KinType PT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::fields_at_point ( const PushControls push_controls,
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
inline

Get electric field vector for a vector of particle locations

Parameters
[in]push_controlsPushControls 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]rho
[out]fldLocal fields object

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::gather_all_fields ( const PushControls push_controls,
int  i_simd,
int  i_node,
double  wp,
const double(&)  rvec[2],
const double(&)  zvec[2],
const FieldWeights< DriftKin, PIT > &  wts,
LocalFields fld 
) const
inline

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::gather_all_fields ( const PushControls push_controls,
int  i_simd,
int  node,
double  wp,
const double(&)  rvec[2],
const double(&)  zvec[2],
const FieldWeights< GyroKin, PIT > &  wts,
LocalFields fld 
) const
inline
template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::get_Ah ( const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< GyroKin > &  rho,
Simd< double > &  Ah 
) const
inline

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::get_Ah ( const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< DriftKin > &  rho,
Simd< double > &  Ah 
) const
inline
template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::get_Ah_cv ( const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
SimdGyroRadius< DriftKin > &  rho,
Simd< double > &  Ah_cv 
) const
inline

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::get_dpot ( const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const Simd< int > &  itr,
const SimdGridVec p,
Simd< double > &  dpot_out 
) const
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::phi_from_para ( SimdVector vec,
int  i_simd,
const SimdVector B,
double  Bmag 
) const
inline

Here is the caller graph for this function:

Member Data Documentation

template<class Device, PhiInterpType PIT>
Kokkos::View<double*,Kokkos::LayoutRight,Device> GridFieldPack< Device, PIT >::dpot
template<class Device, PhiInterpType PIT>
Kokkos::View<Field<VarType::Vector2D,PIT>**,Kokkos::LayoutRight,Device> GridFieldPack< Device, PIT >::E_rho
template<class Device, PhiInterpType PIT>
bool GridFieldPack< Device, PIT >::is_initialized
private
template<class Device, PhiInterpType PIT>
KinType GridFieldPack< Device, PIT >::kintype
private
template<class Device, PhiInterpType PIT>
int GridFieldPack< Device, PIT >::node_offset

Offset for phi_ff field decomposition.

template<class Device, PhiInterpType PIT>
int GridFieldPack< Device, PIT >::phi_offset

Offset for phi_ff field decomposition.

template<class Device, PhiInterpType PIT>
bool GridFieldPack< Device, PIT >::turb_efield

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