XGC1
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_h_view_t = typename GridMatrix< Device >::vector_h_view_t
 
using const_vector_h_view_t = typename GridMatrix< Device >::const_vector_h_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_h_view_t = Kokkos::View< value_type ****, Kokkos::LayoutRight, host_type >
 
using const_vector_h_view_t = Kokkos::View< const value_type ****, Kokkos::LayoutRight, host_type >
 
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_h_view_t b_h, vector_h_view_t x_h, const_vector_view_t b, vector_view_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 **, devicedevice_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 *, devicecentral_locs_
 
Kokkos::View< int *, host_typeLU_rowindx_
 
Kokkos::View< int *, host_typeLU_colptr_
 
- Protected Attributes inherited from Collisions::GridMatrix< Device >
Kokkos::DualView< index_type **, deviceindex_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

◆ const_values_array_t

template<typename Device >
using Collisions::CSCMatrix< Device >::const_values_array_t = typename GridMatrix<Device>::const_values_array_t

◆ const_vector_dualview_t

template<typename Device >
using Collisions::CSCMatrix< Device >::const_vector_dualview_t = typename GridMatrix<Device>::const_vector_dualview_t

◆ const_vector_h_view_t

template<typename Device >
using Collisions::CSCMatrix< Device >::const_vector_h_view_t = typename GridMatrix<Device>::const_vector_h_view_t

◆ const_vector_view_t

template<typename Device >
using Collisions::CSCMatrix< Device >::const_vector_view_t = typename GridMatrix<Device>::const_vector_view_t

◆ device

template<typename Device >
using Collisions::CSCMatrix< Device >::device = typename GridMatrix<Device>::device

◆ host_type

template<typename Device >
using Collisions::CSCMatrix< Device >::host_type = typename GridMatrix<Device>::host_type

◆ index_type

template<typename Device >
using Collisions::CSCMatrix< Device >::index_type = typename GridMatrix<Device>::index_type

◆ internal_values_array_t

template<typename Device >
using Collisions::CSCMatrix< Device >::internal_values_array_t = Kokkos::DualView<value_type***, Kokkos::LayoutRight, Device>

◆ value_type

template<typename Device >
using Collisions::CSCMatrix< Device >::value_type = typename GridMatrix<Device>::value_type

◆ values_array_t

template<typename Device >
using Collisions::CSCMatrix< Device >::values_array_t = typename GridMatrix<Device>::values_array_t

◆ vector_dualview_t

template<typename Device >
using Collisions::CSCMatrix< Device >::vector_dualview_t = typename GridMatrix<Device>::vector_dualview_t

◆ vector_h_view_t

template<typename Device >
using Collisions::CSCMatrix< Device >::vector_h_view_t = typename GridMatrix<Device>::vector_h_view_t

◆ vector_view_t

template<typename Device >
using Collisions::CSCMatrix< Device >::vector_view_t = typename GridMatrix<Device>::vector_view_t

Constructor & Destructor Documentation

◆ CSCMatrix()

template<typename Device >
Collisions::CSCMatrix< Device >::CSCMatrix ( size_type  n_nodes,
index_type  num_species,
int  nvr,
int  nvz 
)
inline
Here is the call graph for this function:

Member Function Documentation

◆ add_identity_multiply()

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:

◆ apply_solve()

template<typename Device >
void Collisions::CSCMatrix< Device >::apply_solve ( const_vector_h_view_t  b_h,
vector_h_view_t  x_h,
const_vector_view_t  b,
vector_view_t  x 
) const
overridevirtual

Implements Collisions::GridMatrix< Device >.

Here is the call graph for this function:

◆ get_const_values()

template<typename Device >
CSCMatrix< Device >::const_values_array_t Collisions::CSCMatrix< Device >::get_const_values
overridevirtual

◆ get_values()

template<typename Device >
CSCMatrix< Device >::values_array_t Collisions::CSCMatrix< Device >::get_values
overridevirtual

◆ setup_sparsity()

template<typename Device >
void Collisions::CSCMatrix< Device >::setup_sparsity
protected
Here is the caller graph for this function:

◆ subtract_from_identity()

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

◆ central_locs_

template<typename Device >
Kokkos::View<index_type*,device> Collisions::CSCMatrix< Device >::central_locs_
protected

◆ LU_colptr_

template<typename Device >
Kokkos::View<int*,host_type> Collisions::CSCMatrix< Device >::LU_colptr_
protected

◆ LU_rowindx_

template<typename Device >
Kokkos::View<int*,host_type> Collisions::CSCMatrix< Device >::LU_rowindx_
protected

◆ nvr_

template<typename Device >
index_type Collisions::CSCMatrix< Device >::nvr_
protected

◆ nvz_

template<typename Device >
index_type Collisions::CSCMatrix< Device >::nvz_
protected

◆ values_

template<typename Device >
internal_values_array_t Collisions::CSCMatrix< Device >::values_
protected

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