XGC1
Public Member Functions | Public Attributes | List of all members
Pseudo_inverse< Device > Class Template Reference

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, HostTypeobj
 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...
 

Detailed Description

template<class Device>
class Pseudo_inverse< Device >

For description see source file.

Constructor & Destructor Documentation

◆ Pseudo_inverse()

template<class Device >
Pseudo_inverse< Device >::Pseudo_inverse ( )
inline

Member Function Documentation

◆ resize_alpha_weights_to_zero()

template<class Device >
void Pseudo_inverse< Device >::resize_alpha_weights_to_zero ( )
inline
Here is the caller graph for this function:

◆ resize_on_device_and_host()

template<class Device >
void Pseudo_inverse< Device >::resize_on_device_and_host ( int  nthreads,
int  n_non_ad,
int  nnode,
int  max_n_ptl_on_node,
int  n_grid_points 
)
inline

Functions for memory allocation

Here is the caller graph for this function:

◆ resize_to_zero()

template<class Device >
void Pseudo_inverse< Device >::resize_to_zero ( )
inline
Here is the caller graph for this function:

◆ send_device_to_host()

template<class Device >
void Pseudo_inverse< Device >::send_device_to_host ( )
inline

◆ send_grid_host_to_device()

template<class Device >
void Pseudo_inverse< Device >::send_grid_host_to_device ( )
inline
Here is the caller graph for this function:

◆ send_host_to_device()

template<class Device >
void Pseudo_inverse< Device >::send_host_to_device ( )
inline

◆ send_ptl_device_to_host()

template<class Device >
void Pseudo_inverse< Device >::send_ptl_device_to_host ( )
inline
Here is the caller graph for this function:

◆ set_vgrid_filled()

template<class Device >
void Pseudo_inverse< Device >::set_vgrid_filled ( Kokkos::View< bool **, Kokkos::LayoutRight, DeviceType vgrid_filled_in)
inline
Here is the caller graph for this function:

◆ zero_out_grid_weights()

template<class Device >
void Pseudo_inverse< Device >::zero_out_grid_weights ( )
inline
Here is the caller graph for this function:

Member Data Documentation

◆ do_particles_to_grid_petsc

template<class Device >
bool Pseudo_inverse< Device >::do_particles_to_grid_petsc

Whether the particles -> velocity grid interpolation should be done without or with (probably slower) PETSc.

◆ expected_n_grid_points

template<class Device >
int Pseudo_inverse< Device >::expected_n_grid_points

Expected number of grid points returned from PETSc.

◆ force

template<class Device >
bool Pseudo_inverse< Device >::force

Whether to force pseudo-inverse even if a node has empty velocity cells.

◆ grid_alpha_weights

template<class Device >
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)

◆ grid_alpha_weights_h

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::grid_alpha_weights_h

host version of grid_alpha_weights

◆ grid_coords

template<class Device >
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)

◆ grid_coords_h

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::grid_coords_h

host version of grid_coords

◆ grid_weights

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::grid_weights

Stores velocity grid weights: weight(non-adiabatic species, node, grid point index)

◆ grid_weights_h

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::grid_weights_h

host version of grid_weights

◆ n_nonadiabatic_species

template<class Device >
int Pseudo_inverse< Device >::n_nonadiabatic_species

Number of nonadiabatic species.

◆ n_ptl

template<class Device >
Kokkos::View<int**, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::n_ptl

Stores number of particles (non-adiabatic species, node)

◆ n_ptl_h

template<class Device >
Kokkos::View<int**, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::n_ptl_h

host version of n_ptl

◆ obj

template<class Device >
Kokkos::View<PseudoInversePetscObjects*, Kokkos::LayoutRight, HostType> Pseudo_inverse< Device >::obj

Stores number of threads PseudoInversePetscObjects.

◆ ptl_alpha_weights

template<class Device >
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)

◆ ptl_alpha_weights_h

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_alpha_weights_h

host version of ptl_alpha_weights

◆ ptl_coords

template<class Device >
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)

◆ ptl_coords_h

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_coords_h

host version of ptl_coords

◆ ptl_indices

template<class Device >
Kokkos::View<int***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::ptl_indices

Stores particle indices: index(non-adiabatic species, node, particle index on node)

◆ ptl_indices_h

template<class Device >
Kokkos::View<int***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_indices_h

host version of ptl_indices

◆ ptl_weights

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::ptl_weights

Stores particle weights: weight(non-adiabatic species, node, particle index on node)

◆ ptl_weights_h

template<class Device >
Kokkos::View<double***, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::ptl_weights_h

host version of ptl_weights

◆ use_delta_grid

template<class Device >
bool Pseudo_inverse< Device >::use_delta_grid

Whether to only map delta-grid weights.

◆ vgrid_filled

template<class Device >
Kokkos::View<bool**, Kokkos::LayoutRight, Device> Pseudo_inverse< Device >::vgrid_filled

Stores whether a node has no empty velocity cells (non-adiabatic species, node)

◆ vgrid_filled_h

template<class Device >
Kokkos::View<bool**, Kokkos::LayoutRight, Kokkos::HostSpace> Pseudo_inverse< Device >::vgrid_filled_h

host version of vgrid_filled


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