| XGCa
    | 
#include "timer_macro.hpp"#include "my_subview.hpp"#include "grid_deriv.hpp"#include "get_potential_grad.hpp"
| Classes | |
| class | InputPotential< Device, DeviceIn > | 
| Functions | |
| void | get_field_Ah_cv_ff (const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKin > &Ah_cv_h, const GridField< HostType, VarType::Scalar, PhiInterpType::Planes, TorType::OnePlane, KinType::DriftKin > &Ah_cv_ff) | 
| template<class DeviceOut , VarType VT, PhiInterpType PIT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double ****, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VT, PIT, TorType::OnePlane, KinType::GyroKin > &field) | 
| template<class DeviceOut , PhiInterpType PIT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double ***, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VarType::Scalar, PIT, TorType::OnePlane, KinType::GyroKin > &field) | 
| template<class DeviceOut , VarType VT, PhiInterpType PIT, TorType TT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double ***, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VT, PIT, TT, KinType::DriftKin > &field, int i_plane) | 
| template<class DeviceOut , PhiInterpType PIT, TorType TT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double **, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VarType::Scalar, PIT, TT, KinType::DriftKin > &field, int i_plane) | 
| template<class DeviceOut , VarType VT, PhiInterpType PIT, TorType TT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double ****, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VT, PIT, TT, KinType::DriftKin > &field) | 
| template<class DeviceOut , PhiInterpType PIT, TorType TT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double ***, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VarType::Scalar, PIT, TT, KinType::DriftKin > &field) | 
| template<class DeviceOut , VarType VT, PhiInterpType PIT, TorType TT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double ***, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VT, PIT, TT, KinType::GyroKin > &field, int i_plane) | 
| template<class DeviceOut , PhiInterpType PIT, TorType TT> | |
| void | transpose_and_set_field (const View< double *, CLayout, DeviceType > &scratch, const View< double **, CLayout, DeviceType > &tmp_field, GridField< DeviceOut, VarType::Scalar, PIT, TT, KinType::GyroKin > &field, int i_plane) | 
| void | get_pot (const View< double *, CLayout, DeviceType > &potential, const Field00< DeviceType > &field00, bool ignore_poloidal_dpot, View< double *, CLayout, DeviceType > full_potential) | 
| void | get_poloidal_grad (const Grid< DeviceType > &grid, const GradientMatrices< DeviceType > &grad_matrices, const View< double *, CLayout, DeviceType > &potential, const Field00< DeviceType > &field00, bool ignore_poloidal_dpot, View< double *, CLayout, DeviceType > gradient_r, View< double *, CLayout, DeviceType > gradient_z) | 
| void | transpose_for_gyroavg (const View< double ***, CLayout, DeviceType > &gradient, View< double ****, CLayout, DeviceType > &gradient_rho) | 
| template<class DeviceIn > | |
| void | calculate_potential (bool reuse_right_plane_as_left_plane, int i_plane, const InputPotential< DeviceType, DeviceIn > &input_potential, const Field00< DeviceType > &field00, bool ignore_poloidal_dpot, AlternatingStorage< DeviceType > &potential_alt, View< double **, CLayout, DeviceType > &potential) | 
| template<class DeviceIn > | |
| void | calculate_gradient (bool reuse_right_plane_as_left_plane, int i_plane, const Grid< DeviceType > &grid, const GradientMatrices< DeviceType > &grad_matrices, const GradParXTmp &gptx, const InputPotential< DeviceType, DeviceIn > &input_potential, const Field00< DeviceType > &field00, bool ignore_poloidal_dpot, AlternatingStorage< DeviceType > &gradient_r_alt, AlternatingStorage< DeviceType > &gradient_z_alt, View< double ***, CLayout, DeviceType > &gradient) | 
| template<class DeviceIn , class DeviceOut , VarType VT, PhiInterpType PIT, TorType TT, KinType KT> | |
| void | get_field_grad (const Grid< DeviceType > &grid, GetPotGradFieldArgs< DeviceIn, DeviceOut, VT, PIT, TT, KT > &args, GetPotentialGradTemp< DeviceType, DeviceOut > &tmp) | 
| void calculate_gradient | ( | bool | reuse_right_plane_as_left_plane, | 
| int | i_plane, | ||
| const Grid< DeviceType > & | grid, | ||
| const GradientMatrices< DeviceType > & | grad_matrices, | ||
| const GradParXTmp & | gptx, | ||
| const InputPotential< DeviceType, DeviceIn > & | input_potential, | ||
| const Field00< DeviceType > & | field00, | ||
| bool | ignore_poloidal_dpot, | ||
| AlternatingStorage< DeviceType > & | gradient_r_alt, | ||
| AlternatingStorage< DeviceType > & | gradient_z_alt, | ||
| View< double ***, CLayout, DeviceType > & | gradient | ||
| ) | 


| void calculate_potential | ( | bool | reuse_right_plane_as_left_plane, | 
| int | i_plane, | ||
| const InputPotential< DeviceType, DeviceIn > & | input_potential, | ||
| const Field00< DeviceType > & | field00, | ||
| bool | ignore_poloidal_dpot, | ||
| AlternatingStorage< DeviceType > & | potential_alt, | ||
| View< double **, CLayout, DeviceType > & | potential | ||
| ) | 


| void get_field_Ah_cv_ff | ( | const Grid< DeviceType > & | grid, | 
| const DomainDecomposition< DeviceType > & | pol_decomp, | ||
| const GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKin > & | Ah_cv_h, | ||
| const GridField< HostType, VarType::Scalar, PhiInterpType::Planes, TorType::OnePlane, KinType::DriftKin > & | Ah_cv_ff | ||
| ) | 


| void get_field_grad | ( | const Grid< DeviceType > & | grid, | 
| GetPotGradFieldArgs< DeviceIn, DeviceOut, VT, PIT, TT, KT > & | args, | ||
| GetPotentialGradTemp< DeviceType, DeviceOut > & | tmp | ||
| ) | 
Calculates a gyro-averaged potential and its gradients, in field-following coordinates (if XGC1).
| [in] | grid | is the grid object | 
| [in] | magnetic_field | is the magnetic field object | 
| [in] | input_potential | is the input potential | 
| [out] | psn_field_rho_ff | is the gyroaveraged potential (field-following if XGC1) | 
| [out] | psn_gradient_rho_ff | is the gyroaveraged gradient (field-following if XGC1) | 
| [in] | calculate_E_int | is 1 if calculating E, which has some extra steps compared to the As or Ah calculation | 


| void get_poloidal_grad | ( | const Grid< DeviceType > & | grid, | 
| const GradientMatrices< DeviceType > & | grad_matrices, | ||
| const View< double *, CLayout, DeviceType > & | potential, | ||
| const Field00< DeviceType > & | field00, | ||
| bool | ignore_poloidal_dpot, | ||
| View< double *, CLayout, DeviceType > | gradient_r, | ||
| View< double *, CLayout, DeviceType > | gradient_z | ||
| ) | 


| void get_pot | ( | const View< double *, CLayout, DeviceType > & | potential, | 
| const Field00< DeviceType > & | field00, | ||
| bool | ignore_poloidal_dpot, | ||
| View< double *, CLayout, DeviceType > | full_potential | ||
| ) | 


| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double ****, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VT, PIT, TorType::OnePlane, KinType::GyroKin > & | field | ||
| ) | 


| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double ****, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VT, PIT, TT, KinType::DriftKin > & | field | ||
| ) | 

| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double ***, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VarType::Scalar, PIT, TorType::OnePlane, KinType::GyroKin > & | field | ||
| ) | 

| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double ***, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VarType::Scalar, PIT, TT, KinType::DriftKin > & | field | ||
| ) | 

| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double ***, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VT, PIT, TT, KinType::DriftKin > & | field, | ||
| int | i_plane | ||
| ) | 

| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double ***, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VT, PIT, TT, KinType::GyroKin > & | field, | ||
| int | i_plane | ||
| ) | 

| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double **, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VarType::Scalar, PIT, TT, KinType::DriftKin > & | field, | ||
| int | i_plane | ||
| ) | 

| void transpose_and_set_field | ( | const View< double *, CLayout, DeviceType > & | scratch, | 
| const View< double **, CLayout, DeviceType > & | tmp_field, | ||
| GridField< DeviceOut, VarType::Scalar, PIT, TT, KinType::GyroKin > & | field, | ||
| int | i_plane | ||
| ) | 

| void transpose_for_gyroavg | ( | const View< double ***, CLayout, DeviceType > & | gradient, | 
| View< double ****, CLayout, DeviceType > & | gradient_rho | ||
| ) | 

