XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Collisions::CSCMatrix< Device > Class Template Reference

#include <col_grid_matrix.hpp>

Inheritance diagram for Collisions::CSCMatrix< Device >:
Inheritance graph
[legend]
Collaboration diagram for Collisions::CSCMatrix< Device >:
Collaboration graph
[legend]

Public Types

using index_type = typename GridMatrix< Device >::index_type
 
using value_type = typename GridMatrix< Device >::value_type
 
using host_type = typename GridMatrix< Device >::host_type
 
using device = typename GridMatrix< Device >::device
 
using values_array_t = typename GridMatrix< Device >::values_array_t
 
using const_values_array_t = typename GridMatrix< Device >::const_values_array_t
 
using internal_values_array_t = Kokkos::DualView< value_type ***, Kokkos::LayoutRight, Device >
 
using vector_view_t = typename GridMatrix< Device >::vector_view_t
 
using const_vector_view_t = typename GridMatrix< Device >::const_vector_view_t
 
using vector_dualview_t = typename GridMatrix< Device >::vector_dualview_t
 
using const_vector_dualview_t = typename GridMatrix< Device >::const_vector_dualview_t
 
- Public Types inherited from Collisions::GridMatrix< Device >
using index_type = int
 
using host_type = HostType
 
using device = Device
 
using value_type = double
 
using values_array_t = Kokkos::View< value_type ***, Kokkos::LayoutRight, Device, Kokkos::MemoryTraits< Kokkos::Unmanaged >>
 
using const_values_array_t = Kokkos::View< const value_type ***, Kokkos::LayoutRight, Device, Kokkos::MemoryTraits< Kokkos::Unmanaged >>
 
using vector_view_t = Kokkos::View< value_type ****, Kokkos::LayoutRight, Device >
 
using const_vector_view_t = Kokkos::View< const value_type ****, Kokkos::LayoutRight, Device >
 
using vector_dualview_t = Kokkos::DualView< value_type ****, Kokkos::LayoutRight, Device >
 
using const_vector_dualview_t = Kokkos::DualView< const value_type ****, Kokkos::LayoutRight, Device >
 

Public Member Functions

 CSCMatrix (size_type n_nodes, index_type num_species, int nvr, int nvz)
 
const_values_array_t get_const_values () const override
 
values_array_t get_values () override
 
void subtract_from_identity () override
 
void add_identity_multiply (const_vector_view_t dist_col, vector_view_t dist_iter) const override
 
void apply_solve (const_vector_dualview_t b, vector_dualview_t x) const override
 
- Public Member Functions inherited from Collisions::GridMatrix< Device >
 GridMatrix (size_type n_nodes, int n_species)
 
virtual ~GridMatrix ()
 
Kokkos::View< index_type
**, device >::HostMirror 
host_index_map_LU ()
 
Kokkos::View< index_type
**, device
device_index_map_LU () const
 
index_type get_num_nonzeros () const
 
index_type get_num_rows () const
 

Protected Member Functions

void setup_sparsity ()
 

Protected Attributes

index_type nvz_
 
index_type nvr_
 
internal_values_array_t values_
 
Kokkos::View< index_type
*, device
central_locs_
 
Kokkos::View< int *, host_typeLU_rowindx_
 
Kokkos::View< int *, host_typeLU_colptr_
 
- Protected Attributes inherited from Collisions::GridMatrix< Device >
Kokkos::DualView< index_type
**, device
index_map_
 
const index_type num_species_
 
const index_type num_nodes_
 
const size_type batch_size_
 
index_type num_rows_
 
index_type nnz_
 

Member Typedef Documentation

template<typename Device>
using Collisions::CSCMatrix< Device >::const_values_array_t = typename GridMatrix<Device>::const_values_array_t
template<typename Device>
using Collisions::CSCMatrix< Device >::const_vector_dualview_t = typename GridMatrix<Device>::const_vector_dualview_t
template<typename Device>
using Collisions::CSCMatrix< Device >::const_vector_view_t = typename GridMatrix<Device>::const_vector_view_t
template<typename Device>
using Collisions::CSCMatrix< Device >::device = typename GridMatrix<Device>::device
template<typename Device>
using Collisions::CSCMatrix< Device >::host_type = typename GridMatrix<Device>::host_type
template<typename Device>
using Collisions::CSCMatrix< Device >::index_type = typename GridMatrix<Device>::index_type
template<typename Device>
using Collisions::CSCMatrix< Device >::internal_values_array_t = Kokkos::DualView<value_type***, Kokkos::LayoutRight, Device>
template<typename Device>
using Collisions::CSCMatrix< Device >::value_type = typename GridMatrix<Device>::value_type
template<typename Device>
using Collisions::CSCMatrix< Device >::values_array_t = typename GridMatrix<Device>::values_array_t
template<typename Device>
using Collisions::CSCMatrix< Device >::vector_dualview_t = typename GridMatrix<Device>::vector_dualview_t
template<typename Device>
using Collisions::CSCMatrix< Device >::vector_view_t = typename GridMatrix<Device>::vector_view_t

Constructor & Destructor Documentation

template<typename Device>
Collisions::CSCMatrix< Device >::CSCMatrix ( size_type  n_nodes,
index_type  num_species,
int  nvr,
int  nvz 
)
inline

Member Function Documentation

template<typename Device >
void Collisions::CSCMatrix< Device >::add_identity_multiply ( const_vector_view_t  dist_col,
vector_view_t  dist_iter 
) const
overridevirtual

Implements Collisions::GridMatrix< Device >.

Here is the call graph for this function:

template<typename Device >
void Collisions::CSCMatrix< Device >::apply_solve ( const_vector_dualview_t  b,
vector_dualview_t  x 
) const
overridevirtual

Implements Collisions::GridMatrix< Device >.

Here is the call graph for this function:

template<typename Device >
CSCMatrix< Device >::const_values_array_t Collisions::CSCMatrix< Device >::get_const_values ( ) const
overridevirtual
template<typename Device >
CSCMatrix< Device >::values_array_t Collisions::CSCMatrix< Device >::get_values ( )
overridevirtual
template<typename Device >
void Collisions::CSCMatrix< Device >::setup_sparsity ( )
protected
template<typename Device >
void Collisions::CSCMatrix< Device >::subtract_from_identity ( )
overridevirtual

Subtracts the matrix from the identity: M <- I - M.

Warning
The updated matrix values must be available on the host before calling this.

Implements Collisions::GridMatrix< Device >.

Here is the call graph for this function:

Member Data Documentation

template<typename Device>
Kokkos::View<index_type*,device> Collisions::CSCMatrix< Device >::central_locs_
protected
template<typename Device>
Kokkos::View<int*,host_type> Collisions::CSCMatrix< Device >::LU_colptr_
protected
template<typename Device>
Kokkos::View<int*,host_type> Collisions::CSCMatrix< Device >::LU_rowindx_
protected
template<typename Device>
index_type Collisions::CSCMatrix< Device >::nvr_
protected
template<typename Device>
index_type Collisions::CSCMatrix< Device >::nvz_
protected
template<typename Device>
internal_values_array_t Collisions::CSCMatrix< Device >::values_
protected

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