XGC1
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, bool es_reduced_deltaf_setup=false)
 
template<MarkerType MT, MagneticFieldMode MFM>
GridFieldPackPtr copy_push_fields_to_device_drift_kin_XGC1 (const Simulation< DeviceType > &sml, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, bool near_field=false) const
 
template<MarkerType MT, MagneticFieldMode MFM>
GridFieldPackPtr copy_push_fields_to_device_gyro_kin_XGC1 (const Simulation< DeviceType > &sml, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, bool near_field=false) const
 
GridFieldPackPtr copy_push_fields_to_device (KinType kintype_in, MarkerType markertype_in, const Simulation< DeviceType > &sml, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, bool near_field=false) const
 
void get_Ah_rho_ff (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, 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 PerturbedBField< DeviceType > &perturbed_B_field, 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::DriftKinE00_ff_h
 Radial electric field from \(\langle \phi\rangle \) in field-following format. More...
 
GridField< HostType, VarType::Scalar, PhiInterpType::Planes, TorType::OnePlane, KinType::DriftKinddpotdt
 Time derivative of \(\phi - \langle \phi\rangle \) - Not field-following? More...
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKinAh_h
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::OnePlane, KinType::DriftKinAh_h_backup
 
GridField< HostType, vec2d_if_axisym< PIT_GLOBAL >), PIT_GLOBAL, TorType::OnePlane, KinType::GyroKindAh
 
GridField< HostType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, KinType::GyroKinAh
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKinAs_h
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKinAs_h_backup
 
GridField< HostType, vec2d_if_axisym< PIT_GLOBAL >), PIT_GLOBAL, TorType::OnePlane, KinType::GyroKindAs
 
GridField< HostType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, KinType::GyroKinAs
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKinAh_cv_h
 
GridField< HostType, VarType::Scalar, PhiInterpType::Planes, TorType::OnePlane, KinType::DriftKinAh_cv
 
GridField< HostType, VarType::Scalar, PhiInterpType::Planes, TorType::OnePlane, KinType::GyroKindAdt_guess
 
GridField< HostType, VarType::Scalar, PIT_GLOBAL, TorType::OnePlane, KinType::GyroKinpot
 
GridField< HostType, vec2d_if_axisym< PIT_GLOBAL >), PIT_GLOBAL, TorType::OnePlane, KinType::GyroKinE
 
GridField< HostType, VarType::Scalar, PhiInterpType::Planes, TorType::OnePlane, KinType::DriftKindpot_ff_h
 
GridField< HostType, VarType::Vector2D, PIT_GLOBAL, TorType::OnePlane, KinType::GyroKindEr_B2
 Gradient of Er/B^2. More...
 
GridField< HostType, VarType::Vector2D, PIT_GLOBAL, TorType::OnePlane, KinType::GyroKindEz_B2
 Gradient of Ez/B^2. More...
 
GridField< HostType, VarType::Vector2D, PIT_GLOBAL, TorType::OnePlane, KinType::GyroKindu2_E
 Gradient of the square (dot product) of the E x B drift. More...
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::MultiplePlanes, KinType::DriftKindpot_h
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::OnePlane, KinType::DriftKinpot0_h
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::OnePlane, KinType::DriftKindpot_n0_h
 
View< double ***, CLayout, HostTypesave_dpot0
 
View< double ***, CLayout, HostTypesave_dpot
 
View< double ***, CLayout, HostTypedpotsave
 
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...
 
GridField< HostType, VarType::Scalar, PhiInterpType::None, TorType::OnePlane, KinType::DriftKinloop_voltage_h
 
Boundary AbdH
 
Boundary pbd0
 

Constructor & Destructor Documentation

◆ ElectricField() [1/2]

template<class Device >
ElectricField< Device >::ElectricField ( )
inline

◆ ElectricField() [2/2]

template<class Device >
ElectricField< Device >::ElectricField ( NLReader::NamelistReader nlr,
const Grid< DeviceType > &  grid,
int  nrho_in,
bool  es_reduced_deltaf_setup = false 
)
inline
Here is the call graph for this function:

Member Function Documentation

◆ copy_push_fields_to_device()

template<class Device >
GridFieldPackPtr ElectricField< Device >::copy_push_fields_to_device ( KinType  kintype_in,
MarkerType  markertype_in,
const Simulation< DeviceType > &  sml,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
bool  near_field = false 
) const
inline
Here is the caller graph for this function:

◆ copy_push_fields_to_device_drift_kin_XGC1()

template<class Device >
template<MarkerType MT, MagneticFieldMode MFM>
GridFieldPackPtr ElectricField< Device >::copy_push_fields_to_device_drift_kin_XGC1 ( const Simulation< DeviceType > &  sml,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
bool  near_field = false 
) const
inline
Here is the call graph for this function:

◆ copy_push_fields_to_device_gyro_kin_XGC1()

template<class Device >
template<MarkerType MT, MagneticFieldMode MFM>
GridFieldPackPtr ElectricField< Device >::copy_push_fields_to_device_gyro_kin_XGC1 ( const Simulation< DeviceType > &  sml,
const DomainDecomposition< DeviceType > &  pol_decomp,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
bool  near_field = false 
) const
inline
Here is the call graph for this function:

◆ estimate_memory_usage()

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:

◆ get_Ah_rho_ff()

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,
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:

◆ get_potential_grad()

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 PerturbedBField< DeviceType > &  perturbed_B_field,
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

◆ AbdH

template<class Device >
Boundary ElectricField< Device >::AbdH

◆ Ah

◆ Ah_cv

◆ Ah_cv_h

◆ Ah_h

◆ Ah_h_backup

◆ As

◆ As_h

◆ As_h_backup

◆ calculate_phi_ff_on_device

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

◆ dAdt_guess

◆ dAh

◆ dAs

◆ ddpotdt

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

◆ dEr_B2

Gradient of Er/B^2.

◆ dEz_B2

Gradient of Ez/B^2.

◆ dpot_es

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

◆ dpot_ff_h

◆ dpot_h

◆ dpot_n0_h

◆ dpotsave

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

◆ du2_E

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

◆ E

◆ E00_efield

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

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

◆ E00_ff_h

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

◆ loop_voltage_h

◆ n0_m_efield

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

◆ nnode

template<class Device >
int ElectricField< Device >::nnode

◆ nphi

template<class Device >
int ElectricField< Device >::nphi

◆ nrho

template<class Device >
int ElectricField< Device >::nrho

◆ pbd0

template<class Device >
Boundary ElectricField< Device >::pbd0

◆ pot

◆ pot00_1d

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

1D flux-surface averaged potential

◆ pot0_h

◆ pot0m

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

n=0 component of the electrostatic potential before smoothing

◆ save_dpot

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

◆ save_dpot0

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

◆ turb_efield

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: