34 lduMatrix::preconditioner::
35 addsymMatrixConstructorToTable<FDICPreconditioner>
42 Foam::FDICPreconditioner::FDICPreconditioner
53 scalar* __restrict__ rDPtr = rD_.begin();
54 scalar* __restrict__ rDuUpperPtr = rDuUpper_.begin();
55 scalar* __restrict__ rDlUpperPtr = rDlUpper_.begin();
57 const label*
const __restrict__ uPtr =
58 solver_.matrix().lduAddr().upperAddr().begin();
59 const label*
const __restrict__ lPtr =
60 solver_.matrix().lduAddr().lowerAddr().begin();
61 const scalar*
const __restrict__ upperPtr = solver_.matrix().upper().begin();
63 register label nCells = rD_.size();
64 register label nFaces = solver_.matrix().upper().size();
68 rDPtr[uPtr[
face]] -=
sqr(upperPtr[
face])/rDPtr[lPtr[face]];
94 scalar* __restrict__ wAPtr = wA.
begin();
95 const scalar* __restrict__ rAPtr = rA.
begin();
96 const scalar* __restrict__ rDPtr = rD_.begin();
98 const label*
const __restrict__ uPtr =
99 solver_.matrix().lduAddr().upperAddr().begin();
100 const label*
const __restrict__ lPtr =
101 solver_.matrix().lduAddr().lowerAddr().begin();
103 const scalar*
const __restrict__ rDuUpperPtr = rDuUpper_.begin();
104 const scalar*
const __restrict__ rDlUpperPtr = rDlUpper_.begin();
106 register label nCells = wA.
size();
107 register label nFaces = solver_.matrix().upper().size();
108 register label nFacesM1 = nFaces - 1;
117 wAPtr[uPtr[
face]] -= rDuUpperPtr[
face]*wAPtr[lPtr[
face]];
122 wAPtr[lPtr[
face]] -= rDlUpperPtr[
face]*wAPtr[uPtr[
face]];