XGC1
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
CollisionGrid< Device > Class Template Reference

#include <col_grid.hpp>

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

Public Member Functions

 CollisionGrid ()
 
 CollisionGrid (NLReader::NamelistReader &nlr, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, bool exclude_private_region, bool overwrite_existing_files)
 
bool timing_is_available () const
 
View< double *, Device > get_numeric_v_thermal_equil (int mb_n_nodes, int spi, int grj, const CollisionVelocityGrids< Device > &col_vgrids, const CollisionSpecies< Device > &col_spall) const
 
void core_delta_init (int mb_n_nodes, int gri, int grj, int spi, CollisionVelocityGrids< Device > &col_vgrids, const CollisionSpecies< Device > &col_spall) const
 
void LU_matrix (int mb_n_nodes, int gri, int grj, int spi, const CollisionVelocityGrids< Device > &col_vgrids, const TmpColData< Device > &tcd, Collisions::GridMatrix< Device > *const mtx) const
 
void picard_loop (int vpic_inner_iter_max, const CollisionVelocityGrids< Device > &col_vgrids, const CollisionSpecies< Device > &col_spall, TmpColData< Device > &tcd, const std::unique_ptr< Collisions::GridMatrix< Device >> &matrix, int mb_n_nodes, Kokkos::View< Convergence::Status *, HostType > &convergence_status) const
 
void E_and_D (int mb_n_nodes, int gri, int grj, const CollisionVelocityGrids< Device > &col_vgrids, TmpColData< Device > &tcd) const
 
void angle_avg (int mb_n_nodes, int gri, int grj, CollisionVelocityGrids< Device > &col_vgrids, TmpColData< Device > &tcd) const
 
void f_df (int mb_n_nodes, const CollisionVelocityGrids< Device > &col_vgrids, const CollisionSpecies< Device > &col_spall, int spi, int grj, TmpColData< Device > &tcd) const
 
Kokkos::View< Convergence::Status *, HostTypecore (CollisionVelocityGrids< Device > &col_vgrids, const CollisionSpecies< Device > &col_spall, TmpColData< Device > &tcd, const std::unique_ptr< Collisions::GridMatrix< Device >> &solve_matrix, int mb_n_nodes) const
 
void collision (const CollisionSpecies< Device > &col_spall, const VertexList &assigned, const View< int *, CLayout, HostType > &n_subcycles_local, double dt, const VGridDistribution< HostType > &df_out, const View< int *, CLayout, HostType > &converged_local, const View< double *, CLayout, HostType > &node_cost) const
 

Static Public Member Functions

static int get_default_batch_size ()
 
static MemoryPrediction estimate_memory_usage (NLReader::NamelistReader &nlr)
 
static KOKKOS_INLINE_FUNCTION double get_maxw_fac (double mesh_dr, double mesh_r, double numeric_vth2)
 
static KOKKOS_INLINE_FUNCTION void LU_matrix_ftn (int mesh_ind, int gri, int grj, int spi, int cell_i, int cell_j, const CollisionVelocityGrids< Device > &col_vgrids, int mprl_col, int mat_pos, double coeff1, double coeff2, const TmpColData< Device > &tcd, const Kokkos::View< int **, Device > &index_map_LU_d, typename Collisions::GridMatrix< Device >::values_array_t LU_values)
 
static KOKKOS_INLINE_FUNCTION void E_and_D_s (int idx, int mb_n_nodes, int nvrm1, int nvzm1, const TmpColData< Device > &tcd, int gri)
 
static KOKKOS_INLINE_FUNCTION void angle_avg_s (int idx, int mb_n_nodes, int nvrm1, int nvzm1, const CollisionVelocityGrids< Device > &col_vgrids, const TmpColData< Device > &tcd, int gri)
 
static KOKKOS_INLINE_FUNCTION void E_and_D_ab (int idx, int mb_n_nodes, int nvrm1, int nvzm1, const CollisionVelocityGrids< Device > &col_vgrids, const TmpColData< Device > &tcd, int gri, int grj)
 
static KOKKOS_INLINE_FUNCTION void angle_avg_ab (int idx, int mb_n_nodes, int nvrm1, int nvzm1, const CollisionVelocityGrids< Device > &col_vgrids, const TmpColData< Device > &tcd, int gri, int grj)
 

Public Attributes

int batch_size
 
Collisions::LinAlgBackend labackend
 
double ginkgo_residual_reduction
 
int ginkgo_max_iterations
 
int start_step
 starting step for collisions; should be part of step trigger More...
 
int max_n_subcycles
 Maximum number of subcycles that may be attempted. More...
 
View< int *, CLayout, HostTypen_subcycles
 Number of subcycles for each vertex. More...
 
View< float *, CLayout, HostTypetiming_all
 
View< bool[1], CLayout, HostTypetiming_available
 
VertexList vertices
 
bool async_reassign
 
bool diag_on
 
std::shared_ptr< XGC_IO_Streamio_stream
 

Constructor & Destructor Documentation

◆ CollisionGrid() [1/2]

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

◆ CollisionGrid() [2/2]

template<class Device >
CollisionGrid< Device >::CollisionGrid ( NLReader::NamelistReader nlr,
const MagneticField< DeviceType > &  magnetic_field,
const Grid< DeviceType > &  grid,
bool  exclude_private_region,
bool  overwrite_existing_files 
)
inline

Numerical options

< Switches file-output of convergence status of the collision operator on/off @parent: col_param:col_mode=4

Here is the call graph for this function:

Member Function Documentation

◆ angle_avg()

template<class Device >
void CollisionGrid< Device >::angle_avg ( int  mb_n_nodes,
int  gri,
int  grj,
CollisionVelocityGrids< Device > &  col_vgrids,
TmpColData< Device > &  tcd 
) const
Here is the call graph for this function:

◆ angle_avg_ab()

template<class Device >
KOKKOS_INLINE_FUNCTION void CollisionGrid< Device >::angle_avg_ab ( int  idx,
int  mb_n_nodes,
int  nvrm1,
int  nvzm1,
const CollisionVelocityGrids< Device > &  col_vgrids,
const TmpColData< Device > &  tcd,
int  gri,
int  grj 
)
static
Here is the call graph for this function:

◆ angle_avg_s()

template<class Device >
KOKKOS_INLINE_FUNCTION void CollisionGrid< Device >::angle_avg_s ( int  idx,
int  mb_n_nodes,
int  nvrm1,
int  nvzm1,
const CollisionVelocityGrids< Device > &  col_vgrids,
const TmpColData< Device > &  tcd,
int  gri 
)
static
Here is the call graph for this function:

◆ collision()

template<class Device >
void CollisionGrid< Device >::collision ( const CollisionSpecies< Device > &  col_spall,
const VertexList assigned,
const View< int *, CLayout, HostType > &  n_subcycles_local,
double  dt,
const VGridDistribution< HostType > &  df_out,
const View< int *, CLayout, HostType > &  converged_local,
const View< double *, CLayout, HostType > &  node_cost 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ core()

template<class Device >
Kokkos::View< Convergence::Status *, HostType > CollisionGrid< Device >::core ( CollisionVelocityGrids< Device > &  col_vgrids,
const CollisionSpecies< Device > &  col_spall,
TmpColData< Device > &  tcd,
const std::unique_ptr< Collisions::GridMatrix< Device >> &  solve_matrix,
int  mb_n_nodes 
) const
Here is the call graph for this function:

◆ core_delta_init()

template<class Device >
void CollisionGrid< Device >::core_delta_init ( int  mb_n_nodes,
int  gri,
int  grj,
int  spi,
CollisionVelocityGrids< Device > &  col_vgrids,
const CollisionSpecies< Device > &  col_spall 
) const
Here is the call graph for this function:

◆ E_and_D()

template<class Device >
void CollisionGrid< Device >::E_and_D ( int  mb_n_nodes,
int  gri,
int  grj,
const CollisionVelocityGrids< Device > &  col_vgrids,
TmpColData< Device > &  tcd 
) const
Here is the call graph for this function:

◆ E_and_D_ab()

template<class Device >
KOKKOS_INLINE_FUNCTION void CollisionGrid< Device >::E_and_D_ab ( int  idx,
int  mb_n_nodes,
int  nvrm1,
int  nvzm1,
const CollisionVelocityGrids< Device > &  col_vgrids,
const TmpColData< Device > &  tcd,
int  gri,
int  grj 
)
static
Here is the call graph for this function:

◆ E_and_D_s()

template<class Device >
KOKKOS_INLINE_FUNCTION void CollisionGrid< Device >::E_and_D_s ( int  idx,
int  mb_n_nodes,
int  nvrm1,
int  nvzm1,
const TmpColData< Device > &  tcd,
int  gri 
)
static

◆ estimate_memory_usage()

template<class Device >
static MemoryPrediction CollisionGrid< Device >::estimate_memory_usage ( NLReader::NamelistReader nlr)
inlinestatic
Here is the call graph for this function:
Here is the caller graph for this function:

◆ f_df()

template<class Device >
void CollisionGrid< Device >::f_df ( int  mb_n_nodes,
const CollisionVelocityGrids< Device > &  col_vgrids,
const CollisionSpecies< Device > &  col_spall,
int  spi,
int  grj,
TmpColData< Device > &  tcd 
) const
Here is the call graph for this function:

◆ get_default_batch_size()

template<class Device >
static int CollisionGrid< Device >::get_default_batch_size ( )
inlinestatic
Here is the caller graph for this function:

◆ get_maxw_fac()

template<class Device >
KOKKOS_INLINE_FUNCTION double CollisionGrid< Device >::get_maxw_fac ( double  mesh_dr,
double  mesh_r,
double  numeric_vth2 
)
static

◆ get_numeric_v_thermal_equil()

template<class Device >
View< double *, Device > CollisionGrid< Device >::get_numeric_v_thermal_equil ( int  mb_n_nodes,
int  spi,
int  grj,
const CollisionVelocityGrids< Device > &  col_vgrids,
const CollisionSpecies< Device > &  col_spall 
) const

◆ LU_matrix()

template<class Device >
void CollisionGrid< Device >::LU_matrix ( int  mb_n_nodes,
int  gri,
int  grj,
int  spi,
const CollisionVelocityGrids< Device > &  col_vgrids,
const TmpColData< Device > &  tcd,
Collisions::GridMatrix< Device > *const  mtx 
) const
Here is the call graph for this function:

◆ LU_matrix_ftn()

template<class Device >
KOKKOS_INLINE_FUNCTION void CollisionGrid< Device >::LU_matrix_ftn ( int  mesh_ind,
int  gri,
int  grj,
int  spi,
int  cell_i,
int  cell_j,
const CollisionVelocityGrids< Device > &  col_vgrids,
int  mprl_col,
int  mat_pos,
double  coeff1,
double  coeff2,
const TmpColData< Device > &  tcd,
const Kokkos::View< int **, Device > &  index_map_LU_d,
typename Collisions::GridMatrix< Device >::values_array_t  LU_values 
)
static
Here is the call graph for this function:

◆ picard_loop()

template<class Device >
void CollisionGrid< Device >::picard_loop ( int  vpic_inner_iter_max,
const CollisionVelocityGrids< Device > &  col_vgrids,
const CollisionSpecies< Device > &  col_spall,
TmpColData< Device > &  tcd,
const std::unique_ptr< Collisions::GridMatrix< Device >> &  matrix,
int  mb_n_nodes,
Kokkos::View< Convergence::Status *, HostType > &  convergence_status 
) const
Here is the call graph for this function:

◆ timing_is_available()

template<class Device >
bool CollisionGrid< Device >::timing_is_available ( ) const
inline
Here is the caller graph for this function:

Member Data Documentation

◆ async_reassign

template<class Device >
bool CollisionGrid< Device >::async_reassign

◆ batch_size

template<class Device >
int CollisionGrid< Device >::batch_size

◆ diag_on

template<class Device >
bool CollisionGrid< Device >::diag_on

◆ ginkgo_max_iterations

template<class Device >
int CollisionGrid< Device >::ginkgo_max_iterations

◆ ginkgo_residual_reduction

template<class Device >
double CollisionGrid< Device >::ginkgo_residual_reduction

◆ io_stream

template<class Device >
std::shared_ptr<XGC_IO_Stream> CollisionGrid< Device >::io_stream

◆ labackend

template<class Device >
Collisions::LinAlgBackend CollisionGrid< Device >::labackend

◆ max_n_subcycles

template<class Device >
int CollisionGrid< Device >::max_n_subcycles

Maximum number of subcycles that may be attempted.

◆ n_subcycles

template<class Device >
View<int*,CLayout,HostType> CollisionGrid< Device >::n_subcycles

Number of subcycles for each vertex.

◆ start_step

template<class Device >
int CollisionGrid< Device >::start_step

starting step for collisions; should be part of step trigger

◆ timing_all

template<class Device >
View<float*,CLayout,HostType> CollisionGrid< Device >::timing_all

◆ timing_available

template<class Device >
View<bool[1],CLayout,HostType> CollisionGrid< Device >::timing_available

◆ vertices

template<class Device >
VertexList CollisionGrid< Device >::vertices

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