35 lduMatrix::smoother::addsymMatrixConstructorToTable<DICSmoother>
44 const word& fieldName,
61 DICPreconditioner::calcReciprocalD(rD_, matrix_);
75 const scalar*
const __restrict__ rDPtr = rD_.begin();
76 const scalar*
const __restrict__ upperPtr = matrix_.upper().begin();
77 const label*
const __restrict__ uPtr = matrix_.lduAddr().upperAddr().begin();
78 const label*
const __restrict__ lPtr = matrix_.lduAddr().lowerAddr().begin();
82 scalar* __restrict__ rAPtr = rA.
begin();
84 for (label sweep=0; sweep<nSweeps; sweep++)
98 register label nFaces = matrix_.upper().size();
101 register label u = uPtr[
face];
102 rAPtr[u] -= rDPtr[u]*upperPtr[
face]*rAPtr[lPtr[
face]];
105 register label nFacesM1 = nFaces - 1;
108 register label l = lPtr[
face];
109 rAPtr[l] -= rDPtr[l]*upperPtr[
face]*rAPtr[uPtr[
face]];