XGC1
|
For description see source file. More...
#include <pseudo_inverse.hpp>
Public Member Functions | |
Pseudo_inverse () | |
void | resize_on_device_and_host (int nthreads, int n_non_ad, int nnode, int max_n_ptl_on_node, int n_grid_points) |
void | resize_to_zero () |
void | resize_alpha_weights_to_zero () |
void | send_device_to_host () |
void | send_host_to_device () |
void | send_ptl_device_to_host () |
void | send_grid_host_to_device () |
void | set_vgrid_filled (Kokkos::View< bool **, Kokkos::LayoutRight, DeviceType > vgrid_filled_in) |
void | zero_out_grid_weights () |
Public Attributes | |
Kokkos::View < PseudoInversePetscObjects *, Kokkos::LayoutRight, HostType > | obj |
Stores number of threads PseudoInversePetscObjects. More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Device > | ptl_coords |
Stores particle velocity coordinates: v_para(non-adiabatic species, node, 2*(particle index on node)); v_perp(non-adiabatic species, node, 2*(particle index on node) + 1) More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Kokkos::HostSpace > | ptl_coords_h |
host version of ptl_coords More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Device > | ptl_weights |
Stores particle weights: weight(non-adiabatic species, node, particle index on node) More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Kokkos::HostSpace > | ptl_weights_h |
host version of ptl_weights More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Device > | ptl_alpha_weights |
Stores particle alpha (see sml_f0_grid_alpha) weights: weight(non-adiabatic species, node, particle index on node) More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Kokkos::HostSpace > | ptl_alpha_weights_h |
host version of ptl_alpha_weights More... | |
Kokkos::View< int ***, Kokkos::LayoutRight, Device > | ptl_indices |
Stores particle indices: index(non-adiabatic species, node, particle index on node) More... | |
Kokkos::View< int ***, Kokkos::LayoutRight, Kokkos::HostSpace > | ptl_indices_h |
host version of ptl_indices More... | |
Kokkos::View< int **, Kokkos::LayoutRight, Device > | n_ptl |
Stores number of particles (non-adiabatic species, node) More... | |
Kokkos::View< int **, Kokkos::LayoutRight, Kokkos::HostSpace > | n_ptl_h |
host version of n_ptl More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Device > | grid_coords |
Stores velocity grid coordinates: v_para(non-adiabatic species, node, 2*(grid point index)); v_perp(non-adiabatic species, node, 2*(grid point index) + 1) More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Kokkos::HostSpace > | grid_coords_h |
host version of grid_coords More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Device > | grid_weights |
Stores velocity grid weights: weight(non-adiabatic species, node, grid point index) More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Kokkos::HostSpace > | grid_weights_h |
host version of grid_weights More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Device > | grid_alpha_weights |
Stores velocity grid alpha (see sml_f0_grid_alpha) weights: weight(non-adiabatic species, node, grid point index) More... | |
Kokkos::View< double ***, Kokkos::LayoutRight, Kokkos::HostSpace > | grid_alpha_weights_h |
host version of grid_alpha_weights More... | |
Kokkos::View< bool **, Kokkos::LayoutRight, Device > | vgrid_filled |
Stores whether a node has no empty velocity cells (non-adiabatic species, node) More... | |
Kokkos::View< bool **, Kokkos::LayoutRight, Kokkos::HostSpace > | vgrid_filled_h |
host version of vgrid_filled More... | |
int | expected_n_grid_points |
Expected number of grid points returned from PETSc. More... | |
bool | force |
Whether to force pseudo-inverse even if a node has empty velocity cells. More... | |
bool | do_particles_to_grid_petsc |
Whether the particles -> velocity grid interpolation should be done without or with (probably slower) PETSc. More... | |
bool | use_delta_grid |
Whether to only map delta-grid weights. More... | |
int | n_nonadiabatic_species |
Number of nonadiabatic species. More... | |
For description see source file.
|
inline |
|
inline |
|
inline |
Functions for memory allocation
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
bool Pseudo_inverse< Device >::do_particles_to_grid_petsc |
Whether the particles -> velocity grid interpolation should be done without or with (probably slower) PETSc.
int Pseudo_inverse< Device >::expected_n_grid_points |
Expected number of grid points returned from PETSc.
bool Pseudo_inverse< Device >::force |
Whether to force pseudo-inverse even if a node has empty velocity cells.
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::grid_alpha_weights |
Stores velocity grid alpha (see sml_f0_grid_alpha) weights: weight(non-adiabatic species, node, grid point index)
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::grid_alpha_weights_h |
host version of grid_alpha_weights
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::grid_coords |
Stores velocity grid coordinates: v_para(non-adiabatic species, node, 2*(grid point index)); v_perp(non-adiabatic species, node, 2*(grid point index) + 1)
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::grid_coords_h |
host version of grid_coords
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::grid_weights |
Stores velocity grid weights: weight(non-adiabatic species, node, grid point index)
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::grid_weights_h |
host version of grid_weights
int Pseudo_inverse< Device >::n_nonadiabatic_species |
Number of nonadiabatic species.
Kokkos::View<int**, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::n_ptl |
Stores number of particles (non-adiabatic species, node)
Kokkos::View<int**, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::n_ptl_h |
host version of n_ptl
Kokkos::View<PseudoInversePetscObjects*, Kokkos::LayoutRight, HostType> Pseudo_inverse< Device >::obj |
Stores number of threads PseudoInversePetscObjects.
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::ptl_alpha_weights |
Stores particle alpha (see sml_f0_grid_alpha) weights: weight(non-adiabatic species, node, particle index on node)
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_alpha_weights_h |
host version of ptl_alpha_weights
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::ptl_coords |
Stores particle velocity coordinates: v_para(non-adiabatic species, node, 2*(particle index on node)); v_perp(non-adiabatic species, node, 2*(particle index on node) + 1)
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_coords_h |
host version of ptl_coords
Kokkos::View<int***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::ptl_indices |
Stores particle indices: index(non-adiabatic species, node, particle index on node)
Kokkos::View<int***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_indices_h |
host version of ptl_indices
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::ptl_weights |
Stores particle weights: weight(non-adiabatic species, node, particle index on node)
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_weights_h |
host version of ptl_weights
bool Pseudo_inverse< Device >::use_delta_grid |
Whether to only map delta-grid weights.
Kokkos::View<bool**, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::vgrid_filled |
Stores whether a node has no empty velocity cells (non-adiabatic species, node)
Kokkos::View<bool**, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::vgrid_filled_h |
host version of vgrid_filled