35 lduMatrix::smoother::addasymMatrixConstructorToTable<DILUSmoother>
44 const word& fieldName,
61 DILUPreconditioner::calcReciprocalD(rD_, matrix_);
75 const scalar*
const __restrict__ rDPtr = rD_.begin();
77 const label*
const __restrict__ uPtr =
78 matrix_.lduAddr().upperAddr().begin();
79 const label*
const __restrict__ lPtr =
80 matrix_.lduAddr().lowerAddr().begin();
82 const scalar*
const __restrict__ upperPtr = matrix_.upper().begin();
83 const scalar*
const __restrict__ lowerPtr = matrix_.lower().begin();
87 scalar* __restrict__ rAPtr = rA.
begin();
89 for (label sweep=0; sweep<nSweeps; sweep++)
103 register label nFaces = matrix_.upper().size();
106 register label u = uPtr[
face];
107 rAPtr[u] -= rDPtr[u]*lowerPtr[
face]*rAPtr[lPtr[
face]];
110 register label nFacesM1 = nFaces - 1;
113 register label l = lPtr[
face];
114 rAPtr[l] -= rDPtr[l]*upperPtr[
face]*rAPtr[uPtr[
face]];