XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 overwrite_existing_files)
 
void core_init (int isp, int mesh_ind, const CollisionVelocityGrids< Device > &col_vgrids, const CollisionSpecies< Device > &col_spall) 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, CollisionSpecies< Device > &col_spall, TmpColData< Device > &tcd, int mb_n_nodes, Kokkos::View< Convergence::Status *, HostType > &convergence_status, Kokkos::View< Convergence::Moments *, HostType > &moments) 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, CollisionSpecies< Device > &col_spall, TmpColData< Device > &tcd, int mb_n_nodes) const
 
void collision (std::vector< Species< DeviceType >> &all_species, const Moments &moments, const DomainDecomposition< DeviceType > &pol_decomp, const View< bool *, HostType > &in_range, bool symmetric_f, const VGridDistribution< HostType > &f0_f, VGridDistribution< HostType > &df_out, double dt, View< int *, CLayout, HostType > &converged_all, View< double *, CLayout, HostType > &node_cost) const
 

Static Public Member Functions

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
 
double inner_psi_bound
 Inner psi bound; collisions skipped below this. More...
 
double outer_psi_bound
 Outer psi bound; collisions skipped above this. More...
 
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...
 
bool diag_on
 
std::shared_ptr< XGC_IO_Streamio_stream
 

Constructor & Destructor Documentation

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

Numerical options

< Swithes file-output of convergence status of the collision operator on/off

Member Function Documentation

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:

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:

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:

template<class Device >
void CollisionGrid< Device >::collision ( std::vector< Species< DeviceType >> &  all_species,
const Moments moments,
const DomainDecomposition< DeviceType > &  pol_decomp,
const View< bool *, HostType > &  in_range,
bool  symmetric_f,
const VGridDistribution< HostType > &  f0_f,
VGridDistribution< HostType > &  df_out,
double  dt,
View< int *, CLayout, HostType > &  converged_all,
View< double *, CLayout, HostType > &  node_cost 
) const

Here is the call graph for this function:

Here is the caller graph for this function:

template<class Device>
Kokkos::View< Convergence::Status *, HostType > CollisionGrid< Device >::core ( CollisionVelocityGrids< Device > &  col_vgrids,
CollisionSpecies< Device > &  col_spall,
TmpColData< Device > &  tcd,
int  mb_n_nodes 
) const

Here is the call graph for this function:

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:

template<class Device>
void CollisionGrid< Device >::core_init ( int  isp,
int  mesh_ind,
const CollisionVelocityGrids< Device > &  col_vgrids,
const CollisionSpecies< Device > &  col_spall 
) const
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:

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:

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
template<class Device>
static MemoryPrediction CollisionGrid< Device >::estimate_memory_usage ( NLReader::NamelistReader nlr)
inlinestatic

Here is the caller graph for this function:

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:

template<class Device >
KOKKOS_INLINE_FUNCTION double CollisionGrid< Device >::get_maxw_fac ( double  mesh_dr,
double  mesh_r,
double  numeric_vth2 
)
static
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
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:

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:

template<class Device>
void CollisionGrid< Device >::picard_loop ( int  vpic_inner_iter_max,
const CollisionVelocityGrids< Device > &  col_vgrids,
CollisionSpecies< Device > &  col_spall,
TmpColData< Device > &  tcd,
int  mb_n_nodes,
Kokkos::View< Convergence::Status *, HostType > &  convergence_status,
Kokkos::View< Convergence::Moments *, HostType > &  moments 
) const

Here is the call graph for this function:

Member Data Documentation

template<class Device>
int CollisionGrid< Device >::batch_size
template<class Device>
bool CollisionGrid< Device >::diag_on
template<class Device>
int CollisionGrid< Device >::ginkgo_max_iterations
template<class Device>
double CollisionGrid< Device >::ginkgo_residual_reduction
template<class Device>
double CollisionGrid< Device >::inner_psi_bound

Inner psi bound; collisions skipped below this.

template<class Device>
std::shared_ptr<XGC_IO_Stream> CollisionGrid< Device >::io_stream
template<class Device>
Collisions::LinAlgBackend CollisionGrid< Device >::labackend
template<class Device>
int CollisionGrid< Device >::max_n_subcycles

Maximum number of subcycles that may be attempted.

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

Number of subcycles for each vertex.

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

Outer psi bound; collisions skipped above this.

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

starting step for collisions; should be part of step trigger


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