XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ElectricField< Device > Struct Template Reference

#include <electric_field.hpp>

Collaboration diagram for ElectricField< Device >:
Collaboration graph
[legend]

Public Member Functions

 ElectricField ()
 
 ElectricField (NLReader::NamelistReader &nlr, const Grid< DeviceType > &grid, int nrho_in, double dt=1.0, double psi_norm=1.0)
 
template<PhiInterpType PIT>
GridFieldPack< Device, PIT > copy_push_fields_to_device (KinType kintype_in, const Simulation< DeviceType > &sml, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Smoothing &smoothing, bool near_field=false) const
 
template<PhiInterpType PIT>
GridFieldPack< Device, PIT > copy_Ah_cv_to_device_as_Ah (KinType kintype_in, const DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid) const
 
template<PhiInterpType PIT>
GridFieldPack< Device, PIT > copy_Ah_ff_to_device (KinType kintype_in, const DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid) const
 
template<PhiInterpType PIT>
GridFieldPack< Device, PIT > copy_dpot_to_device (KinType kintype_in) const
 
void get_Ah_rho_ff (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, Smoothing &smoothing, Species< DeviceType > &species)
 
void get_potential_grad (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, Smoothing &smoothing, const View< double *, CLayout, HostType > &spitzer_resistivity, Species< DeviceType > &species)
 

Static Public Member Functions

static MemoryPrediction estimate_memory_usage (NLReader::NamelistReader &nlr, const Grid< DeviceType > &grid)
 

Public Attributes

int nnode
 
int nphi
 
int nrho
 
bool calculate_phi_ff_on_device
 
bool turb_efield
 E-field calculated only with \(<\phi>\) if .false., psndpot will still contain all (n=0,|m|>0) and (|n|>0,m) modes. More...
 
bool E00_efield
 Flux-surface averaged potential not used for calculating the electric field if .false. More...
 
bool n0_m_efield
 
GridField< HostType,
VarType::Vector2D, PIT_GLOBAL,
TorType::OnePlane,
KinType::DriftKin
E00_ff_h
 Radial electric field from \(\langle \phi\rangle \) in field-following format. More...
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::Planes,
TorType::OnePlane,
KinType::DriftKin
ddpotdt
 Time derivative of \(\phi - \langle \phi\rangle \) - Not field-following? More...
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::MultiplePlanes,
KinType::DriftKin
Ah_h
 
GridField< HostType,
vec2d_if_axisym< PIT_GLOBAL >
), PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
dAh
 
GridField< HostType,
VarType::Scalar, PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
Ah
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::MultiplePlanes,
KinType::DriftKin
As_h
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::MultiplePlanes,
KinType::DriftKin
As_h_backup
 
GridField< HostType,
vec2d_if_axisym< PIT_GLOBAL >
), PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
dAs
 
GridField< HostType,
VarType::Scalar, PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
As
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::MultiplePlanes,
KinType::DriftKin
Ah_cv_h
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::Planes,
TorType::OnePlane,
KinType::DriftKin
Ah_cv
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::Planes,
TorType::OnePlane,
KinType::GyroKin
Epar_em
 
GridField< HostType,
VarType::Scalar, PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
pot
 
GridField< HostType,
vec2d_if_axisym< PIT_GLOBAL >
), PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
E
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::Planes,
TorType::OnePlane,
KinType::DriftKin
dpot_ff_h
 
GridField< HostType,
VarType::Vector2D, PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
dEr_B2
 Gradient of Er/B^2. More...
 
GridField< HostType,
VarType::Vector2D, PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
dEz_B2
 Gradient of Ez/B^2. More...
 
GridField< HostType,
VarType::Vector2D, PIT_GLOBAL,
TorType::OnePlane,
KinType::GyroKin
du2_E
 Gradient of the square (dot product) of the E x B drift. More...
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::MultiplePlanes,
KinType::DriftKin
dpot_h
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::OnePlane,
KinType::DriftKin
pot0_h
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::OnePlane,
KinType::DriftKin
dpot_n0_h
 
View< double ***, CLayout,
HostType
save_dpot0
 
View< double ***, CLayout,
HostType
save_dpot
 
View< double ***, CLayout,
HostType
dpotsave
 
View< double *, CLayout, HostTypedpot_es
 
View< double *, CLayout, HostTypepot0m
 n=0 component of the electrostatic potential before smoothing More...
 
View< double *, CLayout, HostTypepot00_1d
 1D flux-surface averaged potential More...
 
Simple00Solver simple00
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::OnePlane,
KinType::DriftKin
loop_voltage_h
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::OnePlane,
KinType::DriftKin
jpara_diff_previous_h
 
GridField< HostType,
VarType::Scalar,
PhiInterpType::None,
TorType::OnePlane,
KinType::DriftKin
jpara_diff_integral_h
 
BiasPotential bias_potential
 

Constructor & Destructor Documentation

template<class Device>
ElectricField< Device >::ElectricField ( )
inline
template<class Device>
ElectricField< Device >::ElectricField ( NLReader::NamelistReader nlr,
const Grid< DeviceType > &  grid,
int  nrho_in,
double  dt = 1.0,
double  psi_norm = 1.0 
)
inline

Here is the call graph for this function:

Member Function Documentation

template<class Device>
template<PhiInterpType PIT>
GridFieldPack<Device, PIT> ElectricField< Device >::copy_Ah_cv_to_device_as_Ah ( KinType  kintype_in,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Grid< DeviceType > &  grid 
) const
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
template<PhiInterpType PIT>
GridFieldPack<Device, PIT> ElectricField< Device >::copy_Ah_ff_to_device ( KinType  kintype_in,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Grid< DeviceType > &  grid 
) const
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
template<PhiInterpType PIT>
GridFieldPack<Device, PIT> ElectricField< Device >::copy_dpot_to_device ( KinType  kintype_in) const
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
template<PhiInterpType PIT>
GridFieldPack<Device, PIT> ElectricField< Device >::copy_push_fields_to_device ( KinType  kintype_in,
const Simulation< DeviceType > &  sml,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
Smoothing smoothing,
bool  near_field = false 
) const
inline

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
static MemoryPrediction ElectricField< Device >::estimate_memory_usage ( NLReader::NamelistReader nlr,
const Grid< DeviceType > &  grid 
)
inlinestatic

Here is the call graph for this function:

template<class Device>
void ElectricField< Device >::get_Ah_rho_ff ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
Smoothing smoothing,
Species< DeviceType > &  species 
)
inline

Calculates gyro-averaged Ah, field following

Parameters
[in]smlis the simulation object
[in]gridis the grid object
[in]magnetic_fieldis the magnetic field object
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
void ElectricField< Device >::get_potential_grad ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
Smoothing smoothing,
const View< double *, CLayout, HostType > &  spitzer_resistivity,
Species< DeviceType > &  species 
)
inline

Calculates gyro-averaged electric field, electric potential in field-following coordinates (if XGC1) If EM, also calculates analogous magnetic potential and gradients

Parameters
[in]smlis the simulation object
[in]gridis the grid object
[in]magnetic_fieldis the magnetic field object
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

template<class Device>
BiasPotential ElectricField< Device >::bias_potential
template<class Device>
bool ElectricField< Device >::calculate_phi_ff_on_device

Time derivative of \(\phi - \langle \phi\rangle \) - Not field-following?

Gradient of Er/B^2.

Gradient of Ez/B^2.

template<class Device>
View<double*,CLayout, HostType> ElectricField< Device >::dpot_es
template<class Device>
View<double***,CLayout, HostType> ElectricField< Device >::dpotsave

Gradient of the square (dot product) of the E x B drift.

template<class Device>
bool ElectricField< Device >::E00_efield

Flux-surface averaged potential not used for calculating the electric field if .false.

Radial electric field from \(\langle \phi\rangle \) in field-following format.

template<class Device>
bool ElectricField< Device >::n0_m_efield
template<class Device>
int ElectricField< Device >::nnode
template<class Device>
int ElectricField< Device >::nphi
template<class Device>
int ElectricField< Device >::nrho
template<class Device>
View<double*,CLayout, HostType> ElectricField< Device >::pot00_1d

1D flux-surface averaged potential

template<class Device>
View<double*,CLayout, HostType> ElectricField< Device >::pot0m

n=0 component of the electrostatic potential before smoothing

template<class Device>
View<double***,CLayout, HostType> ElectricField< Device >::save_dpot
template<class Device>
View<double***,CLayout, HostType> ElectricField< Device >::save_dpot0
template<class Device>
Simple00Solver ElectricField< Device >::simple00
template<class Device>
bool ElectricField< Device >::turb_efield

E-field calculated only with \(<\phi>\) if .false., psndpot will still contain all (n=0,|m|>0) and (|n|>0,m) modes.


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