19#ifndef OPM_ILU0_KERNELS_HPP
20#define OPM_ILU0_KERNELS_HPP
23namespace Opm::gpuistl::detail::ILU0
40template <
class T,
int blocksize>
41void solveUpperLevelSet(T* reorderedMat,
65template <
class T,
int blocksize>
66void solveLowerLevelSet(T* reorderedMat,
92template <
int blocksize,
class LinearSolverScalar,
class MatrixScalar>
93void solveUpperLevelSetSplit(MatrixScalar* reorderedMat,
99 const MatrixScalar* dInv,
100 LinearSolverScalar* v,
101 int threadBlockSize);
120template <
int blocksize,
class LinearSolverScalar,
class MatrixScalar>
121void solveLowerLevelSetSplit(MatrixScalar* reorderedLowerMat,
124 int* indexConversion,
127 const LinearSolverScalar* d,
128 LinearSolverScalar* v,
129 int threadBlockSize);
147template <
class T,
int blocksize>
148void LUFactorization(T* reorderedMat,
151 int* naturalToReordered,
152 int* reorderedToNatual,
153 size_t rowsInLevelSet,
155 int threadBlockSize);
179template <
int blocksize,
class InputScalar,
class OutputScalar,
bool copyResultToOtherMatrix>
180void LUFactorizationSplit(InputScalar* srcReorderedLowerMat,
181 int* lowerRowIndices,
182 int* lowerColIndices,
183 InputScalar* srcReorderedUpperMat,
184 int* upperRowIndices,
185 int* upperColIndices,
186 InputScalar* srcDiagonal,
187 OutputScalar* dstReorderedLowerMat,
188 OutputScalar* dstReorderedUpperMat,
189 OutputScalar* dstDiagonal,
190 int* reorderedToNatural,
191 int* naturalToReordered,
194 int threadBlockSize);