34 lduMatrix::preconditioner::
35 addsymMatrixConstructorToTable<DICPreconditioner>
49 rD_(sol.matrix().
diag())
63 scalar* __restrict__ rDPtr = rD.
begin();
67 const scalar*
const __restrict__ upperPtr = matrix.
upper().
begin();
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();
102 const scalar*
const __restrict__ upperPtr =
103 solver_.matrix().upper().begin();
106 label nFaces = solver_.matrix().upper().size();
107 label nFacesM1 = nFaces - 1;
Simplified diagonal-based incomplete Cholesky preconditioner for symmetric matrices (symmetric equiva...
static void calcReciprocalD(scalarField &rD, const lduMatrix &matrix)
Calculate the reciprocal of the preconditioned diagonal.
DICPreconditioner(const lduMatrix::solver &, const dictionary &solverControlsUnused)
Construct from matrix components and preconditioner solver controls.
virtual void precondition(scalarField &wA, const scalarField &rA, const direction cmpt=0) const
Return wA the preconditioned form of residual rA.
void size(const label)
Override size to be inconsistent with allocated storage.
iterator begin()
Return an iterator to begin traversing the UList.
A cell is defined as a list of faces with extra functionality.
A list of keyword definitions, which are a keyword followed by any number of values (e....
A face is a list of labels corresponding to mesh vertices.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
Abstract base-class for lduMatrix solvers.
const lduMatrix & matrix() const
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
const lduAddressing & lduAddr() const
Return the LDU addressing.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
defineTypeNameAndDebug(combustionModel, 0)
lduMatrix::preconditioner::addsymMatrixConstructorToTable< DICPreconditioner > addDICPreconditionerSymMatrixConstructorToTable_