19#ifndef OPM_CUISTL_CUSPARSE_MATRIX_OPERATIONS_HPP
20#define OPM_CUISTL_CUSPARSE_MATRIX_OPERATIONS_HPP
34template <
class T,
int blocksize>
53template <
class T,
int blocksize>
79template <
class T,
int blocksize>
105template <
class T,
int blocksize>
109 int* reorderedToNatural,
110 int* naturalToReordered,
125template <
class T,
int blocksize>
127 T* srcMatrix,
int* srcRowIndices, T* dstMatrix,
int* dstRowIndices,
int* naturalToReordered,
size_t numberOfRows);
Contains wrappers to make the CuBLAS library behave as a modern C++ library with function overlading.
Definition cublas_safe_call.hpp:32
void computeDiluDiagonal(T *reorderedMat, int *rowIndices, int *colIndices, int *reorderedToNatural, int *naturalToReordered, int startIdx, int rowsInLevelSet, T *dInv)
Computes the ILU0 of the diagonal elements of the reordered matrix and stores it in a reordered vecto...
void computeLowerSolveLevelSet(T *reorderedMat, int *rowIndices, int *colIndices, int *indexConversion, int startIdx, int rowsInLevelSet, const T *dInv, const T *d, T *v)
Perform a lower solve on certain rows in a matrix that can safely be computed in parallel.
void computeUpperSolveLevelSet(T *reorderedMat, int *rowIndices, int *colIndices, int *indexConversion, int startIdx, int rowsInLevelSet, const T *dInv, T *v)
Perform an upper solve on certain rows in a matrix that can safely be computed in parallel.
void invertDiagonalAndFlatten(T *mat, int *rowIndices, int *colIndices, size_t numberOfRows, T *vec)
This function receives a matrix, and the inverse of the matrix containing only its diagonal is stored...
void copyMatDataToReordered(T *srcMatrix, int *srcRowIndices, T *dstMatrix, int *dstRowIndices, int *naturalToReordered, size_t numberOfRows)
Reorders the elements of a matrix by copying them from one matrix to another using a permutation list...