XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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,
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...
 

Detailed Description

template<class Device>
class Pseudo_inverse< Device >

For description see source file.

Constructor & Destructor Documentation

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

Member Function Documentation

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

Here is the caller graph for this function:

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:

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

Here is the caller graph for this function:

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

Here is the caller graph for this function:

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

Here is the caller graph for this function:

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:

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

Here is the caller graph for this function:

Member Data Documentation

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.

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

Expected number of grid points returned from PETSc.

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

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

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)

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

host version of grid_alpha_weights

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)

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

host version of grid_coords

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)

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

host version of grid_weights

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

Number of nonadiabatic species.

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

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

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

host version of n_ptl

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

Stores number of threads PseudoInversePetscObjects.

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)

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

host version of ptl_alpha_weights

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)

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

host version of ptl_coords

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)

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

host version of ptl_indices

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)

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

host version of ptl_weights

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

Whether to only map delta-grid weights.

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)

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: