41 if (lowerPtr_ || upperPtr_)
45 Type* __restrict__ HpsiPtr = Hpsi.
begin();
47 const Type* __restrict__ psiPtr =
psi.begin();
52 const scalar* __restrict__ lowerPtr =
lower().
begin();
53 const scalar* __restrict__ upperPtr =
upper().
begin();
59 HpsiPtr[uPtr[
face]] -= lowerPtr[
face]*psiPtr[lPtr[
face]];
60 HpsiPtr[lPtr[
face]] -= upperPtr[
face]*psiPtr[uPtr[
face]];
81 if (lowerPtr_ || upperPtr_)
104 <<
"Cannot calculate faceH"
105 " the matrix does not have any off-diagonal coefficients."
Pre-declare SubField and related Field type.
void size(const label)
Override size to be inconsistent with allocated storage.
label size() const
Return the number of elements in the UList.
iterator begin()
Return an iterator to begin traversing the UList.
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.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
tmp< Field< Type > > faceH(const Field< Type > &) const
tmp< Field< Type > > H(const Field< Type > &) const
const lduAddressing & lduAddr() const
Return the LDU addressing.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const volScalarField & psi
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.