XGC1
|
#include <col_grid.hpp>
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, HostType > | n_subcycles |
Number of subcycles for each vertex. More... | |
bool | diag_on |
std::shared_ptr< XGC_IO_Stream > | io_stream |
|
inline |
|
inline |
Numerical options
< Swithes file-output of convergence status of the collision operator on/off
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 | ( | 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 |
Kokkos::View< Convergence::Status *, HostType > CollisionGrid< Device >::core | ( | CollisionVelocityGrids< Device > & | col_vgrids, |
CollisionSpecies< Device > & | col_spall, | ||
TmpColData< Device > & | tcd, | ||
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 >::core_init | ( | int | isp, |
int | mesh_ind, | ||
const 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 |
|
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, | ||
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 |
int CollisionGrid< Device >::batch_size |
bool CollisionGrid< Device >::diag_on |
int CollisionGrid< Device >::ginkgo_max_iterations |
double CollisionGrid< Device >::ginkgo_residual_reduction |
double CollisionGrid< Device >::inner_psi_bound |
Inner psi bound; collisions skipped below this.
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.
double CollisionGrid< Device >::outer_psi_bound |
Outer psi bound; collisions skipped above this.
int CollisionGrid< Device >::start_step |
starting step for collisions; should be part of step trigger