38 lduMatrix::preconditioner::
39 addsymMatrixConstructorToTable<FDICPreconditioner>
46 Foam::FDICPreconditioner::FDICPreconditioner
58 std::copy(
diag.begin(),
diag.end(), rD_.begin());
60 solveScalar* __restrict__ rDPtr = rD_.begin();
61 solveScalar* __restrict__ rDuUpperPtr = rDuUpper_.begin();
62 solveScalar* __restrict__ rDlUpperPtr = rDlUpper_.begin();
64 const label*
const __restrict__ uPtr =
65 solver_.matrix().lduAddr().upperAddr().begin();
66 const label*
const __restrict__ lPtr =
67 solver_.matrix().lduAddr().lowerAddr().begin();
68 const scalar*
const __restrict__ upperPtr =
69 solver_.matrix().upper().begin();
71 const label nCells = rD_.size();
72 const label nFaces = solver_.matrix().upper().size();
102 solveScalar* __restrict__ wAPtr = wA.begin();
103 const solveScalar* __restrict__ rAPtr = rA.begin();
104 const solveScalar* __restrict__ rDPtr = rD_.begin();
106 const label*
const __restrict__ uPtr =
107 solver_.matrix().lduAddr().upperAddr().begin();
108 const label*
const __restrict__ lPtr =
109 solver_.matrix().lduAddr().lowerAddr().begin();
111 const solveScalar*
const __restrict__ rDuUpperPtr = rDuUpper_.begin();
112 const solveScalar*
const __restrict__ rDlUpperPtr = rDlUpper_.begin();
114 const label nCells = wA.size();
115 const label nFaces = solver_.matrix().upper().size();
116 const label nFacesM1 = nFaces - 1;
125 wAPtr[uPtr[
face]] -= rDuUpperPtr[
face]*wAPtr[lPtr[
face]];
130 wAPtr[lPtr[
face]] -= rDlUpperPtr[
face]*wAPtr[uPtr[
face]];