19 #ifndef OPM_DILU_KERNELS_HPP 20 #define OPM_DILU_KERNELS_HPP 24 #include <cuda_runtime.h> 25 #include <opm/simulators/linalg/gpuistl/detail/kernel_enums.hpp> 47 template <
class T,
int blocksize>
48 void solveLowerLevelSet(T* reorderedMat,
73 template <
class T,
int blocksize>
74 void solveLowerLevelSetNoReorder(
const T* mat,
75 const int* rowIndices,
76 const int* colIndices,
77 const size_t* indexConversion,
102 template <
int blocksize,
class LinearSolverScalar,
class MatrixScalar,
class DiagonalScalar>
103 void solveLowerLevelSetSplit(MatrixScalar* reorderedUpperMat,
106 int* indexConversion,
109 const DiagonalScalar* dInv,
110 const LinearSolverScalar* d,
111 LinearSolverScalar* v,
113 cudaStream_t stream);
130 template <
class T,
int blocksize>
131 void solveUpperLevelSet(T* reorderedMat,
134 int* indexConversion,
140 cudaStream_t stream);
155 template <
class T,
int blocksize>
156 void solveUpperLevelSetNoReorder(
const T* mat,
157 const int* rowIndices,
158 const int* colIndices,
159 const size_t* indexConversion,
165 cudaStream_t stream);
182 template <
int blocksize,
class LinearSolverScalar,
class MatrixScalar,
class DiagonalScalar>
183 void solveUpperLevelSetSplit(MatrixScalar* reorderedUpperMat,
186 int* indexConversion,
189 const DiagonalScalar* dInv,
190 LinearSolverScalar* v,
192 cudaStream_t stream);
210 template <
class T,
int blocksize>
211 void computeDiluDiagonal(T* reorderedMat,
214 int* reorderedToNatural,
215 int* naturalToReordered,
220 int threadBlockSize);
234 template <
class T,
int blocksize>
235 void computeDiluDiagonalNoReorder(
const T* mat,
236 const int* rowIndices,
237 const int* colIndices,
238 const size_t* indexConversion,
239 const size_t* diagIndices,
243 int threadBlockSize);
266 template <
int blocksize,
class InputScalar,
class OutputScalar, MatrixStorageMPScheme>
267 void computeDiluDiagonalSplit(
const InputScalar* srcReorderedLowerMat,
268 int* lowerRowIndices,
269 int* lowerColIndices,
270 const InputScalar* srcReorderedUpperMat,
271 int* upperRowIndices,
272 int* upperColIndices,
273 const InputScalar* srcDiagonal,
274 int* reorderedToNatural,
275 int* naturalToReordered,
279 OutputScalar* dstDiagonal,
280 OutputScalar* dstLowerMat,
281 OutputScalar* dstUpperMat,
282 int threadBlockSize);
Definition: DILUKernels.hpp:28