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

#include <grid_field_pack.hpp>

Inheritance diagram for GridFieldPack< Device, PIT >:
Inheritance graph
[legend]
Collaboration diagram for GridFieldPack< Device, PIT >:
Collaboration graph
[legend]

Public Member Functions

 GridFieldPack ()
 
 GridFieldPack (KinType kintype_in, bool turb_efield_in, int nrho_in, double inv_drho_in)
 
bool can_reuse (KinType kintype_in)
 
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 FieldCorrection &corr, 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 FieldCorrection &corr, 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 SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, SimdGyroRadius< PT > &rho, LocalFields &fld) const
 
KOKKOS_INLINE_FUNCTION void get_Ah (const Grid< Device > &grid, const Simd< double > &fld_phi, const SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, SimdGyroRadius< GyroKin > &rho, Simd< double > &Ah) const
 
KOKKOS_INLINE_FUNCTION void get_Ah (const Grid< Device > &grid, const Simd< double > &fld_phi, const SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, SimdGyroRadius< DriftKin > &rho, Simd< double > &Ah) const
 
KOKKOS_INLINE_FUNCTION void get_dpot (const Grid< Device > &grid, const Simd< double > &fld_phi, const SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, 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...
 
int nrho
 Gyroavg dimension (not including 0) - Used if kintype==GyroKin. More...
 
double inv_drho
 1.0 over rho spacing - Used if kintype==Gyrokin More...
 
GridField< Device,
vec2d_if_axisym< PIT >), PIT,
TorType::OnePlane,
KinType::GyroKin
E_rho
 
GridField< Device,
VarType::Scalar, PIT,
TorType::OnePlane,
KinType::DriftKin
dpot
 
GridField< Device,
VarType::Scalar, PIT,
TorType::OnePlane,
KinType::DriftKin
loop_voltage
 

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,
int  nrho_in,
double  inv_drho_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>
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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
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 FieldCorrection corr,
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 FieldCorrection corr,
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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
SimdGyroRadius< GyroKin > &  rho,
Simd< double > &  Ah 
) 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 >::get_Ah ( const Grid< Device > &  grid,
const Simd< double > &  fld_phi,
const SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
SimdGyroRadius< DriftKin > &  rho,
Simd< double > &  Ah 
) const
inline

Here is the call 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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
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>
GridField<Device, VarType::Scalar,PIT, TorType::OnePlane, KinType::DriftKin> GridFieldPack< Device, PIT >::dpot
template<class Device, PhiInterpType PIT>
GridField<Device, vec2d_if_axisym<PIT>),PIT, TorType::OnePlane, KinType::GyroKin> GridFieldPack< Device, PIT >::E_rho
template<class Device, PhiInterpType PIT>
double GridFieldPack< Device, PIT >::inv_drho

1.0 over rho spacing - Used if kintype==Gyrokin

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>
GridField<Device, VarType::Scalar,PIT, TorType::OnePlane, KinType::DriftKin> GridFieldPack< Device, PIT >::loop_voltage
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 >::nrho

Gyroavg dimension (not including 0) - Used if kintype==GyroKin.

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: