XGCa
Public Member Functions | Public Attributes | List of all members
Sheath< Device > Class Template Reference

#include <sheath.hpp>

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

Public Member Functions

 Sheath (const Grid< Device > &grid, const Simulation< Device > &sml)
 
 Sheath ()
 
KOKKOS_INLINE_FUNCTION void deposition_diagnostics_and_w1 (const Species< Device > &species, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const Neutrals< Device > &neutrals, const HeatDiagnostics< Device > &heat_diag, const SimdParticles &old_part, SimdParticles &part, const SimdVector2D &xff, const Simd< int > &iphi, const Simd< double > &en_para, const Simd< double > &en_perp, SimdPhase &new_phase, const Simd< int > &widx, const Simd< bool > &just_left_the_grid, bool update_lost, bool update_ilost, bool update_neutrals, bool update_heat_diag, Simd< double > &dw) const
 
KOKKOS_INLINE_FUNCTION void save_sheath_ptl_info (const PushControls &push_controls, const Species< Device > &species, const Grid< Device > &grid, int i_item, const SimdParticles &old_part, SimdParticles &part, const Simd< int > &iphi, const Simd< double > &en_para, const Simd< double > &en_perp, const SimdPhase &new_phase, const Simd< int > &widx, const Simd< bool > &just_left_the_grid) const
 
KOKKOS_INLINE_FUNCTION void sheath_calculation (const PushControls &push_controls, const Species< Device > &species, const Grid< Device > &grid, const MagneticField< Device > &magnetic_field, const Neutrals< Device > &neutrals, const HeatDiagnostics< Device > &heat_diag, int i_item, const SimdParticles &old_part, const Simd< bool > &not_in_triangle, SimdParticles &part, SimdGridWeights< Order::One, PIT_GLOBAL > &grid_wts_new, Simd< double > &dw) const
 
void write_checkpoint_files (const XGC_IO_Stream &stream) const
 
void reorder_sheath_pot (const Grid< DeviceType > &grid) const
 
void read_checkpoint_files (const Grid< DeviceType > &grid, const XGC_IO_Stream &stream, int version)
 
void clear_device_views () const
 
void copy_pot_to_device () const
 
void setup_mode_2 (int n_tmp)
 
void deallocate_particles ()
 
void mode_1_copy_to_host () const
 
void mode_2_copy_to_host () const
 
void copy_lost_to_host () const
 
 Sheath (const Grid< DeviceType > &grid, const Simulation< DeviceType > &sml)
 
void write_checkpoint_files (const XGC_IO_Stream &stream) const
 
void reorder_sheath_pot (const Grid< DeviceType > &grid) const
 
void read_checkpoint_files (const Grid< DeviceType > &grid, const XGC_IO_Stream &stream, int version)
 
void clear_device_views () const
 
void copy_pot_to_device () const
 
void setup_mode_2 (int n_tmp)
 
void deallocate_particles ()
 
void mode_1_copy_to_host () const
 
void mode_2_copy_to_host () const
 
void copy_lost_to_host () const
 

Public Attributes

View< double **, CLayout, Device > pot
 Sheath potential. More...
 
View< double ***, CLayout, Device > lost
 Tracker of particles lost to the sheath. More...
 
View< double ***, CLayout, Device > ilost
 Tracker of ions lost to the sheath. More...
 
View< double ***, CLayout, Device > en_max
 The most energetic particle that hit the wall in a given section. More...
 
bool adjust
 Whether to adjust the sheath. More...
 
SheathParticles< Device > particles
 

Constructor & Destructor Documentation

◆ Sheath() [1/3]

template<class Device >
Sheath< Device >::Sheath ( const Grid< Device > &  grid,
const Simulation< Device > &  sml 
)

◆ Sheath() [2/3]

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

◆ Sheath() [3/3]

Sheath< DeviceType >::Sheath ( const Grid< DeviceType > &  grid,
const Simulation< DeviceType > &  sml 
)

Constructor for sheath object

Here is the call graph for this function:

Member Function Documentation

◆ clear_device_views() [1/2]

void Sheath< DeviceType >::clear_device_views ( ) const

◆ clear_device_views() [2/2]

template<class Device >
void Sheath< Device >::clear_device_views ( ) const
Here is the caller graph for this function:

◆ copy_lost_to_host() [1/2]

void Sheath< DeviceType >::copy_lost_to_host ( ) const
Here is the call graph for this function:

◆ copy_lost_to_host() [2/2]

template<class Device >
void Sheath< Device >::copy_lost_to_host ( ) const
Here is the caller graph for this function:

◆ copy_pot_to_device() [1/2]

void Sheath< DeviceType >::copy_pot_to_device ( ) const
Here is the call graph for this function:

◆ copy_pot_to_device() [2/2]

template<class Device >
void Sheath< Device >::copy_pot_to_device ( ) const
Here is the caller graph for this function:

◆ deallocate_particles() [1/2]

void Sheath< DeviceType >::deallocate_particles ( )

◆ deallocate_particles() [2/2]

template<class Device >
void Sheath< Device >::deallocate_particles ( )
Here is the caller graph for this function:

◆ deposition_diagnostics_and_w1()

template<class Device >
KOKKOS_INLINE_FUNCTION void Sheath< Device >::deposition_diagnostics_and_w1 ( const Species< Device > &  species,
const Grid< Device > &  grid,
const MagneticField< Device > &  magnetic_field,
const Neutrals< Device > &  neutrals,
const HeatDiagnostics< Device > &  heat_diag,
const SimdParticles old_part,
SimdParticles part,
const SimdVector2D xff,
const Simd< int > &  iphi,
const Simd< double > &  en_para,
const Simd< double > &  en_perp,
SimdPhase new_phase,
const Simd< int > &  widx,
const Simd< bool > &  just_left_the_grid,
bool  update_lost,
bool  update_ilost,
bool  update_neutrals,
bool  update_heat_diag,
Simd< double > &  dw 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mode_1_copy_to_host() [1/2]

void Sheath< DeviceType >::mode_1_copy_to_host ( ) const
Here is the call graph for this function:

◆ mode_1_copy_to_host() [2/2]

template<class Device >
void Sheath< Device >::mode_1_copy_to_host ( ) const
Here is the caller graph for this function:

◆ mode_2_copy_to_host() [1/2]

void Sheath< DeviceType >::mode_2_copy_to_host ( ) const
Here is the call graph for this function:

◆ mode_2_copy_to_host() [2/2]

template<class Device >
void Sheath< Device >::mode_2_copy_to_host ( ) const
Here is the caller graph for this function:

◆ read_checkpoint_files() [1/2]

void Sheath< DeviceType >::read_checkpoint_files ( const Grid< DeviceType > &  grid,
const XGC_IO_Stream stream,
int  version 
)
Here is the call graph for this function:

◆ read_checkpoint_files() [2/2]

template<class Device >
void Sheath< Device >::read_checkpoint_files ( const Grid< DeviceType > &  grid,
const XGC_IO_Stream stream,
int  version 
)
Here is the caller graph for this function:

◆ reorder_sheath_pot() [1/2]

void Sheath< DeviceType >::reorder_sheath_pot ( const Grid< DeviceType > &  grid) const
Here is the call graph for this function:

◆ reorder_sheath_pot() [2/2]

template<class Device >
void Sheath< Device >::reorder_sheath_pot ( const Grid< DeviceType > &  grid) const

◆ save_sheath_ptl_info()

template<class Device >
KOKKOS_INLINE_FUNCTION void Sheath< Device >::save_sheath_ptl_info ( const PushControls push_controls,
const Species< Device > &  species,
const Grid< Device > &  grid,
int  i_item,
const SimdParticles old_part,
SimdParticles part,
const Simd< int > &  iphi,
const Simd< double > &  en_para,
const Simd< double > &  en_perp,
const SimdPhase new_phase,
const Simd< int > &  widx,
const Simd< bool > &  just_left_the_grid 
) const
Here is the call graph for this function:

◆ setup_mode_2() [1/2]

void Sheath< DeviceType >::setup_mode_2 ( int  n_tmp)
Here is the call graph for this function:

◆ setup_mode_2() [2/2]

template<class Device >
void Sheath< Device >::setup_mode_2 ( int  n_tmp)
Here is the caller graph for this function:

◆ sheath_calculation()

template<class Device >
KOKKOS_INLINE_FUNCTION void Sheath< Device >::sheath_calculation ( const PushControls push_controls,
const Species< Device > &  species,
const Grid< Device > &  grid,
const MagneticField< Device > &  magnetic_field,
const Neutrals< Device > &  neutrals,
const HeatDiagnostics< Device > &  heat_diag,
int  i_item,
const SimdParticles old_part,
const Simd< bool > &  not_in_grid,
SimdParticles part,
SimdGridWeights< Order::One, PIT_GLOBAL > &  grid_wts_new,
Simd< double > &  dw 
) const

Sheath calculation during push. Determine where particle goes if it leaves the grid, and track it for later adjustments to the sheath

Parameters
[in]old_partVector of old particle phases
[in]not_in_gridVector of whether the particles are in the grid or not
[in,out]partVector of the new particle phases
[out]partVector of the new grid triangle indices
[out]partVector of the p weights of the triangle vertices
[out]dwIf dw is zero after sheath_calculation, the particles did not hit the divertor (just reflected by sheath).
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_checkpoint_files() [1/2]

void Sheath< DeviceType >::write_checkpoint_files ( const XGC_IO_Stream stream) const
Here is the call graph for this function:

◆ write_checkpoint_files() [2/2]

template<class Device >
void Sheath< Device >::write_checkpoint_files ( const XGC_IO_Stream stream) const
Here is the caller graph for this function:

Member Data Documentation

◆ adjust

template<class Device >
bool Sheath< Device >::adjust

Whether to adjust the sheath.

◆ en_max

template<class Device >
View<double***,CLayout,Device> Sheath< Device >::en_max

The most energetic particle that hit the wall in a given section.

◆ ilost

template<class Device >
View<double***,CLayout,Device> Sheath< Device >::ilost

Tracker of ions lost to the sheath.

◆ lost

template<class Device >
View<double***,CLayout,Device> Sheath< Device >::lost

Tracker of particles lost to the sheath.

◆ particles

template<class Device >
SheathParticles<Device> Sheath< Device >::particles

◆ pot

template<class Device >
View<double**,CLayout,Device> Sheath< Device >::pot

Sheath potential.


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