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

#include <heat_diagnostics.hpp>

Public Member Functions

 HeatDiagnostics (int heat_mode_in, int heat_nsection_in, int heat_npsi_in, int heat_nr_in, int heat_nz_in, double *heat_rmin_in, double *heat_rmax_in, double *heat_dr_in, double *heat_zmin_in, double *heat_zmax_in, double *heat_dz_in, double *heat_pmin_in, double *heat_dp_in, int nspecies, int nthreads)
 
 HeatDiagnostics (int heat_mode_in, int heat_nseg_in, int heat_nphi_in, double heat_delta_phi_in, double *heat_r2_in, double *heat_z2_in, int nspecies, int nthreads)
 
 HeatDiagnostics ()
 
KOKKOS_INLINE_FUNCTION void heat_port (const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const Simd< bool > &just_left_the_grid, const Simd< double > &w, const Simd< double > &pot, const Simd< double > &epara, const Simd< double > &eperp, const SimdConstants &ct, const SimdPhase &old_ph, const SimdVector2D &xff_old, const SimdPhase &new_ph, int stype) const
 
KOKKOS_INLINE_FUNCTION int wall_cross2 (double r1, double z1, double r2, double z2) const
 

Public Attributes

int heat_mode
 Using mode 1 or mode 2. More...
 
int heat_nsection
 Number of sections. More...
 
int heat_npsi
 Number of psi bins. More...
 
int heat_nr
 Number of r bins. More...
 
int heat_nz
 Number of z bins. More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_rmin
 First r bin. More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_rmax
 End of last r bin. More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_dr
 dr More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_zmin
 First z bin. More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_zmax
 End of last z bin. More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_dz
 dz More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_pmin
 First psi min. More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_dp
 dpsi More...
 
Kokkos::View< double
******, Kokkos::LayoutRight,
Device > 
heat_pv
 Array for the heat diagnostic in (r,z) More...
 
Kokkos::View< double
*****, Kokkos::LayoutRight,
Device > 
heat_pv_psi
 Array for the heat diagnostic in (psi) More...
 
int heat_nseg
 Number of segments. More...
 
int heat_nphi
 Number of phi bins. More...
 
double heat_delta_phi
 dphi More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_r2
 r2? More...
 
Kokkos::View< double
*, Kokkos::LayoutRight, Device > 
heat_z2
 z2? More...
 
Kokkos::View< double
*****, Kokkos::LayoutRight,
Device > 
heat_pv_psi2
 Array for the heat diagnostic in (psi^2) More...
 

Constructor & Destructor Documentation

template<class Device >
HeatDiagnostics< Device >::HeatDiagnostics ( int  heat_mode_in,
int  heat_nsection_in,
int  heat_npsi_in,
int  heat_nr_in,
int  heat_nz_in,
double *  heat_rmin_in,
double *  heat_rmax_in,
double *  heat_dr_in,
double *  heat_zmin_in,
double *  heat_zmax_in,
double *  heat_dz_in,
double *  heat_pmin_in,
double *  heat_dp_in,
int  nspecies,
int  nthreads 
)

Here is the call graph for this function:

template<class Device >
HeatDiagnostics< Device >::HeatDiagnostics ( int  heat_mode_in,
int  heat_nseg_in,
int  heat_nphi_in,
double  heat_delta_phi_in,
double *  heat_r2_in,
double *  heat_z2_in,
int  nspecies,
int  nthreads 
)

Here is the call graph for this function:

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

Member Function Documentation

template<class Device>
KOKKOS_INLINE_FUNCTION void HeatDiagnostics< Device >::heat_port ( const Grid< Device > &  grid,
const MagneticField< Device > &  magnetic_field,
const Simd< bool > &  just_left_the_grid,
const Simd< double > &  w,
const Simd< double > &  pot,
const Simd< double > &  epara,
const Simd< double > &  eperp,
const SimdConstants ct,
const SimdPhase old_ph,
const SimdVector2D xff_old,
const SimdPhase new_ph,
int  sp_type 
) const

Write heat diagnostics to an array

Parameters
[in]just_left_the_gridVector boolean of particles that left
[in]wVector of w1 changes
[in]potVector of local sheath potentials
[in]eparaVector of parallel energy
[in]eperpVector of perpendicular energy
[in]ctVector of particle constants
[in]old_phVector of particles' previous phase
[in]xff_oldVector of particles' previous field following coordinates
[in]new_phVector of particles' new phase
[in]sp_typeType of species (only electrons now)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device >
KOKKOS_INLINE_FUNCTION int HeatDiagnostics< Device >::wall_cross2 ( double  r1,
double  z1,
double  r2,
double  z2 
) const

This is a general routine for identifying the segment of a closed polygon intersected by the input segment. If no intersection is found, the routine returns 0.

The particular application in this code is to determine which segment of the boundary was crossed by a particle, with the crossing have been previously flagged by subroutine wall_check. The first point of the segment is the previous location of the particle. The second is its current location, which should be outside the boundary. Should this segment not intersect the boundary for some reason, the routine will return 0.

Parameters
[in]r1old r coordinate
[in]z1old z coordinate
[in]r2new r coordinate
[in]z2new z coordinate
Returns
Wall segment

Member Data Documentation

template<class Device>
double HeatDiagnostics< Device >::heat_delta_phi

dphi

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_dp

dpsi

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_dr

dr

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_dz

dz

template<class Device>
int HeatDiagnostics< Device >::heat_mode

Using mode 1 or mode 2.

template<class Device>
int HeatDiagnostics< Device >::heat_nphi

Number of phi bins.

template<class Device>
int HeatDiagnostics< Device >::heat_npsi

Number of psi bins.

template<class Device>
int HeatDiagnostics< Device >::heat_nr

Number of r bins.

template<class Device>
int HeatDiagnostics< Device >::heat_nsection

Number of sections.

template<class Device>
int HeatDiagnostics< Device >::heat_nseg

Number of segments.

template<class Device>
int HeatDiagnostics< Device >::heat_nz

Number of z bins.

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_pmin

First psi min.

template<class Device>
Kokkos::View<double******,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_pv

Array for the heat diagnostic in (r,z)

template<class Device>
Kokkos::View<double*****,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_pv_psi

Array for the heat diagnostic in (psi)

template<class Device>
Kokkos::View<double*****,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_pv_psi2

Array for the heat diagnostic in (psi^2)

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_r2

r2?

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_rmax

End of last r bin.

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_rmin

First r bin.

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_z2

z2?

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_zmax

End of last z bin.

template<class Device>
Kokkos::View<double*,Kokkos::LayoutRight,Device> HeatDiagnostics< Device >::heat_zmin

First z bin.


The documentation for this class was generated from the following files: