34 lduMatrix::preconditioner::
35 addasymMatrixConstructorToTable<DILUPreconditioner>
51 calcReciprocalD(rD_, sol.
matrix());
63 scalar* __restrict__ rDPtr = rD.begin();
68 const scalar*
const __restrict__ upperPtr = matrix.
upper().begin();
69 const scalar*
const __restrict__ lowerPtr = matrix.
lower().begin();
79 label nCells = rD.size();
95 scalar* __restrict__ wAPtr = wA.begin();
96 const scalar* __restrict__ rAPtr = rA.begin();
97 const scalar* __restrict__ rDPtr = rD_.begin();
99 const label*
const __restrict__ uPtr =
100 solver_.matrix().lduAddr().upperAddr().begin();
101 const label*
const __restrict__ lPtr =
102 solver_.matrix().lduAddr().lowerAddr().begin();
103 const label*
const __restrict__ losortPtr =
104 solver_.matrix().lduAddr().losortAddr().begin();
106 const scalar*
const __restrict__ upperPtr =
107 solver_.matrix().upper().begin();
108 const scalar*
const __restrict__ lowerPtr =
109 solver_.matrix().lower().begin();
111 label nCells = wA.size();
112 label nFaces = solver_.matrix().upper().size();
113 label nFacesM1 = nFaces - 1;
125 sface = losortPtr[
face];
126 wAPtr[uPtr[sface]] -=
127 rDPtr[uPtr[sface]]*lowerPtr[sface]*wAPtr[lPtr[sface]];
145 scalar* __restrict__ wTPtr = wT.begin();
146 const scalar* __restrict__ rTPtr = rT.begin();
147 const scalar* __restrict__ rDPtr = rD_.begin();
149 const label*
const __restrict__ uPtr =
150 solver_.matrix().lduAddr().upperAddr().begin();
151 const label*
const __restrict__ lPtr =
152 solver_.matrix().lduAddr().lowerAddr().begin();
153 const label*
const __restrict__ losortPtr =
154 solver_.matrix().lduAddr().losortAddr().begin();
156 const scalar*
const __restrict__ upperPtr =
157 solver_.matrix().upper().begin();
158 const scalar*
const __restrict__ lowerPtr =
159 solver_.matrix().lower().begin();
161 label nCells = wT.size();
162 label nFaces = solver_.matrix().upper().size();
163 label nFacesM1 = nFaces - 1;
181 sface = losortPtr[
face];
182 wTPtr[lPtr[sface]] -=
183 rDPtr[lPtr[sface]]*lowerPtr[sface]*wTPtr[uPtr[sface]];