| 
    XGCa
    
   | 
 
#include <col_grid.hpp>

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 *, HostType > | 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 | 
| 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, HostType > | n_subcycles | 
| Number of subcycles for each vertex.  More... | |
| View< float *, CLayout, HostType > | timing_all | 
| View< bool[1], CLayout, HostType > | timing_available | 
| VertexList | vertices | 
| bool | async_reassign | 
| bool | diag_on | 
| std::shared_ptr< XGC_IO_Stream > | io_stream | 
      
  | 
  inline | 
      
  | 
  inline | 
Numerical options
< Switches file-output of convergence status of the collision operator on/off @parent: col_param:col_mode=4

| void CollisionGrid< Device >::angle_avg | ( | int | mb_n_nodes, | 
| int | gri, | ||
| int | grj, | ||
| CollisionVelocityGrids< Device > & | col_vgrids, | ||
| TmpColData< Device > & | tcd | ||
| ) | const | 

      
  | 
  static | 

      
  | 
  static | 

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


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

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

| void CollisionGrid< Device >::E_and_D | ( | int | mb_n_nodes, | 
| int | gri, | ||
| int | grj, | ||
| const CollisionVelocityGrids< Device > & | col_vgrids, | ||
| TmpColData< Device > & | tcd | ||
| ) | const | 

      
  | 
  static | 

      
  | 
  static | 
      
  | 
  inlinestatic | 


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

      
  | 
  inlinestatic | 

      
  | 
  static | 
| 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 | 
| 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 | 

      
  | 
  static | 

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

      
  | 
  inline | 

| bool CollisionGrid< Device >::async_reassign | 
| int CollisionGrid< Device >::batch_size | 
| bool CollisionGrid< Device >::diag_on | 
| int CollisionGrid< Device >::ginkgo_max_iterations | 
| double CollisionGrid< Device >::ginkgo_residual_reduction | 
| std::shared_ptr<XGC_IO_Stream> CollisionGrid< Device >::io_stream | 
| Collisions::LinAlgBackend CollisionGrid< Device >::labackend | 
| int CollisionGrid< Device >::max_n_subcycles | 
Maximum number of subcycles that may be attempted.
| View<int*,CLayout,HostType> CollisionGrid< Device >::n_subcycles | 
Number of subcycles for each vertex.
| int CollisionGrid< Device >::start_step | 
starting step for collisions; should be part of step trigger
| View<float*,CLayout,HostType> CollisionGrid< Device >::timing_all | 
| View<bool[1],CLayout,HostType> CollisionGrid< Device >::timing_available | 
| VertexList CollisionGrid< Device >::vertices |