XGCa
Public Types | Public Member Functions | Protected Attributes | List of all members
Collisions::GridMatrix< Device > Class Template Referenceabstract

#include <col_grid_matrix.hpp>

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

Public Types

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

 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
 
virtual const_values_array_t get_const_values () const =0
 
virtual values_array_t get_values ()=0
 
virtual void subtract_from_identity ()=0
 
virtual void add_identity_multiply (const_vector_view_t dist_col, vector_view_t dist_iter) const =0
 
virtual 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 =0
 
index_type get_num_nonzeros () const
 
index_type get_num_rows () const
 

Protected Attributes

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::GridMatrix< Device >::const_values_array_t = Kokkos::View<const value_type***, Kokkos::LayoutRight, Device, Kokkos::MemoryTraits<Kokkos::Unmanaged> >

◆ const_vector_dualview_t

template<typename Device >
using Collisions::GridMatrix< Device >::const_vector_dualview_t = Kokkos::DualView<const value_type****, Kokkos::LayoutRight, Device>

◆ const_vector_h_view_t

template<typename Device >
using Collisions::GridMatrix< Device >::const_vector_h_view_t = Kokkos::View<const value_type****, Kokkos::LayoutRight, host_type>

◆ const_vector_view_t

template<typename Device >
using Collisions::GridMatrix< Device >::const_vector_view_t = Kokkos::View<const value_type****, Kokkos::LayoutRight, Device>

◆ device

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

◆ host_type

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

◆ index_type

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

◆ value_type

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

◆ values_array_t

template<typename Device >
using Collisions::GridMatrix< Device >::values_array_t = Kokkos::View<value_type***, Kokkos::LayoutRight, Device, Kokkos::MemoryTraits<Kokkos::Unmanaged> >

◆ vector_dualview_t

template<typename Device >
using Collisions::GridMatrix< Device >::vector_dualview_t = Kokkos::DualView<value_type****, Kokkos::LayoutRight, Device>

◆ vector_h_view_t

template<typename Device >
using Collisions::GridMatrix< Device >::vector_h_view_t = Kokkos::View<value_type****, Kokkos::LayoutRight, host_type>

◆ vector_view_t

template<typename Device >
using Collisions::GridMatrix< Device >::vector_view_t = Kokkos::View<value_type****, Kokkos::LayoutRight, Device>

Constructor & Destructor Documentation

◆ GridMatrix()

template<typename Device >
Collisions::GridMatrix< Device >::GridMatrix ( size_type  n_nodes,
int  n_species 
)
inline

◆ ~GridMatrix()

template<typename Device >
virtual Collisions::GridMatrix< Device >::~GridMatrix ( )
inlinevirtual

Member Function Documentation

◆ add_identity_multiply()

template<typename Device >
virtual void Collisions::GridMatrix< Device >::add_identity_multiply ( const_vector_view_t  dist_col,
vector_view_t  dist_iter 
) const
pure virtual

◆ apply_solve()

template<typename Device >
virtual void Collisions::GridMatrix< 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
pure virtual

◆ device_index_map_LU()

template<typename Device >
Kokkos::View<index_type**, device> Collisions::GridMatrix< Device >::device_index_map_LU ( ) const
inline
Here is the caller graph for this function:

◆ get_const_values()

template<typename Device >
virtual const_values_array_t Collisions::GridMatrix< Device >::get_const_values ( ) const
pure virtual

◆ get_num_nonzeros()

template<typename Device >
index_type Collisions::GridMatrix< Device >::get_num_nonzeros ( ) const
inline

◆ get_num_rows()

template<typename Device >
index_type Collisions::GridMatrix< Device >::get_num_rows ( ) const
inline

◆ get_values()

template<typename Device >
virtual values_array_t Collisions::GridMatrix< Device >::get_values ( )
pure virtual

Implemented in Collisions::CSCMatrix< Device >.

Here is the caller graph for this function:

◆ host_index_map_LU()

template<typename Device >
Kokkos::View<index_type**, device>::HostMirror Collisions::GridMatrix< Device >::host_index_map_LU ( )
inline

◆ subtract_from_identity()

template<typename Device >
virtual void Collisions::GridMatrix< Device >::subtract_from_identity ( )
pure virtual

Member Data Documentation

◆ batch_size_

template<typename Device >
const size_type Collisions::GridMatrix< Device >::batch_size_
protected

◆ index_map_

template<typename Device >
Kokkos::DualView<index_type**,device> Collisions::GridMatrix< Device >::index_map_
protected

◆ nnz_

template<typename Device >
index_type Collisions::GridMatrix< Device >::nnz_
protected

◆ num_nodes_

template<typename Device >
const index_type Collisions::GridMatrix< Device >::num_nodes_
protected

◆ num_rows_

template<typename Device >
index_type Collisions::GridMatrix< Device >::num_rows_
protected

◆ num_species_

template<typename Device >
const index_type Collisions::GridMatrix< Device >::num_species_
protected

Location of central cell in each row of the matrix Turns out this is only needed on the host.


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