30 template<
class Type,
class DType,
class LUType>
37 LduMatrix<Type, DType, LUType>::preconditioner(sol),
38 rD(sol.matrix().
diag().size())
40 DType* __restrict__ rDPtr = rD.
begin();
41 const DType* __restrict__ DPtr = this->
solver_.
matrix().diag().begin();
55 template<
class Type,
class DType,
class LUType>
60 template<
class Type,
class DType,
class LUType>
67 Type* __restrict__ wAPtr = wA.
begin();
68 const Type* __restrict__ rAPtr = rA.
begin();
69 const DType* __restrict__ rDPtr = rD.begin();
virtual void precondition(Field< Type > &wA, const Field< Type > &rA) const
Return wA the preconditioned form of residual rA.
DiagonalPreconditioner(const typename LduMatrix< Type, DType, LUType >::solver &sol, const dictionary &preconditionerDict)
Construct from matrix components and preconditioner data dictionary.
virtual void read(const dictionary &preconditionerDict)
Read and reset the preconditioner parameters from the given.
Pre-declare SubField and related Field type.
const solver & solver_
Reference to the base-solver this preconditioner is used with.
Abstract base-class for LduMatrix solvers.
const LduMatrix< Type, DType, LUType > & matrix() const
LduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
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....
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 dot(FieldField< Field1, typename innerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)