DILUKernels.hpp
Go to the documentation of this file.
Definition: DILUKernels.hpp:29 void computeDiluDiagonal(T *reorderedMat, int *rowIndices, int *colIndices, int *reorderedToNatural, int *naturalToReordered, size_t *diagIndices, int startIdx, int rowsInLevelSet, T *dInv, int threadBlockSize) Computes the ILU0 of the diagonal elements of the reordered matrix and stores it in a reordered vecto... void solveUpperLevelSetNoReorder(const T *mat, const int *rowIndices, const int *colIndices, const size_t *indexConversion, int startIdx, int rowsInLevelSet, const T *dInv, T *v, int threadBlockSize, cudaStream_t stream) Perform an upper solve on certain rows in a matrix that can safely be computed in parallel. void computeDiluDiagonalNoReorder(const T *mat, const int *rowIndices, const int *colIndices, const size_t *indexConversion, const size_t *diagIndices, int startIdx, int rowsInLevelSet, T *dInv, int threadBlockSize) Computes the DILU of a BCSR matrix and stores it in a vector containing the diagonal blocks. void solveLowerLevelSetNoReorder(const T *mat, const int *rowIndices, const int *colIndices, const size_t *indexConversion, int startIdx, int rowsInLevelSet, const T *dInv, const T *d, T *v, int threadBlockSize, cudaStream_t stream) Perform a lower solve on certain rows in a matrix that can safely be computed in parallel. void solveLowerLevelSetSplit(MatrixScalar *reorderedUpperMat, int *rowIndices, int *colIndices, int *indexConversion, int startIdx, int rowsInLevelSet, const DiagonalScalar *dInv, const LinearSolverScalar *d, LinearSolverScalar *v, int threadBlockSize, cudaStream_t stream) Perform a lower solve on certain rows in a matrix that can safely be computed in parallel. void solveLowerLevelSet(T *reorderedMat, int *rowIndices, int *colIndices, int *indexConversion, int startIdx, int rowsInLevelSet, const T *dInv, const T *d, T *v, int threadBlockSize, cudaStream_t stream) Perform a lower solve on certain rows in a matrix that can safely be computed in parallel. void solveUpperLevelSet(T *reorderedMat, int *rowIndices, int *colIndices, int *indexConversion, int startIdx, int rowsInLevelSet, const T *dInv, T *v, int threadBlockSize, cudaStream_t stream) Perform an upper solve on certain rows in a matrix that can safely be computed in parallel. void computeDiluDiagonalSplit(const InputScalar *srcReorderedLowerMat, int *lowerRowIndices, int *lowerColIndices, const InputScalar *srcReorderedUpperMat, int *upperRowIndices, int *upperColIndices, const InputScalar *srcDiagonal, int *reorderedToNatural, int *naturalToReordered, int startIdx, int rowsInLevelSet, InputScalar *dInv, OutputScalar *dstDiagonal, OutputScalar *dstLowerMat, OutputScalar *dstUpperMat, int threadBlockSize) Computes the ILU0 of the diagonal elements of the split reordered matrix and stores it in a reordered... void solveUpperLevelSetSplit(MatrixScalar *reorderedUpperMat, int *rowIndices, int *colIndices, int *indexConversion, int startIdx, int rowsInLevelSet, const DiagonalScalar *dInv, LinearSolverScalar *v, int threadBlockSize, cudaStream_t stream) Perform an upper solve on certain rows in a matrix that can safely be computed in parallel. |