XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | 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 Types

using pack_type = Pack< Labeled< EfieldType, Label::E >, Labeled< EfieldGyroType, Label::E_gyro >>
 

Public Member Functions

template<Label FN>
KOKKOS_INLINE_FUNCTION const auto & get () const
 
template<Label FN>
auto & get ()
 
 GridFieldPack ()
 
 GridFieldPack (KinType kintype_in, bool turb_efield_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 SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, const SimdGyroWeights< DriftKin > &rho_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 SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, const SimdGyroWeights< GyroKin > &rho_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 SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, const SimdGyroWeights< PT > &rho_wts, LocalFields &fld) const
 
KOKKOS_INLINE_FUNCTION void get_Ah (const Grid< Device > &grid, const SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, const SimdGyroWeights< GyroKin > &rho_wts, Simd< double > &Ah) const
 
KOKKOS_INLINE_FUNCTION void get_Ah (const Grid< Device > &grid, const SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts, const SimdGyroWeights< DriftKin > &rho_wts, Simd< double > &Ah) const
 
KOKKOS_INLINE_FUNCTION void get_dpot (const Grid< Device > &grid, 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...
 
pack_type pack
 
GridField< Device,
VarType::Scalar, PIT,
TorType::OnePlane,
KinType::DriftKin
dpot_ff
 
GridField< Device,
VarType::Scalar, PIT,
TorType::OnePlane,
KinType::DriftKin
loop_voltage
 

Private Attributes

KinType kintype
 
bool is_initialized
 

Member Typedef Documentation

template<class Device, PhiInterpType PIT>
using GridFieldPack< Device, PIT >::pack_type = Pack<Labeled<EfieldType, Label::E>, Labeled<EfieldGyroType, Label::E_gyro>>

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>
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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
const SimdGyroWeights< PT > &  rho_wts,
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]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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
const SimdGyroWeights< DriftKin > &  rho_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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
const SimdGyroWeights< GyroKin > &  rho_wts,
LocalFields fld 
) const
inline

Here is the call graph for this function:

template<class Device, PhiInterpType PIT>
template<Label FN>
KOKKOS_INLINE_FUNCTION const auto& GridFieldPack< Device, PIT >::get ( ) const
inline
template<class Device, PhiInterpType PIT>
template<Label FN>
auto& GridFieldPack< Device, PIT >::get ( )
inline
template<class Device, PhiInterpType PIT>
KOKKOS_INLINE_FUNCTION void GridFieldPack< Device, PIT >::get_Ah ( const Grid< Device > &  grid,
const SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
const SimdGyroWeights< GyroKin > &  rho_wts,
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 SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts,
const SimdGyroWeights< DriftKin > &  rho_wts,
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 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_ff
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>
pack_type GridFieldPack< Device, PIT >::pack
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: