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