Go to the documentation of this file.
43 scalar* __restrict__ ApsiPtr = Apsi.begin();
46 const scalar*
const __restrict__ psiPtr =
psi.begin();
48 const scalar*
const __restrict__ diagPtr =
diag().begin();
50 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
51 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
53 const scalar*
const __restrict__ upperPtr = upper().begin();
54 const scalar*
const __restrict__ lowerPtr = lower().begin();
73 const label nFaces = upper().size();
77 ApsiPtr[uPtr[
face]] += lowerPtr[
face]*psiPtr[lPtr[
face]];
78 ApsiPtr[lPtr[
face]] += upperPtr[
face]*psiPtr[uPtr[
face]];
82 updateMatrixInterfaces
104 scalar* __restrict__ TpsiPtr = Tpsi.begin();
107 const scalar*
const __restrict__ psiPtr =
psi.begin();
109 const scalar*
const __restrict__ diagPtr =
diag().begin();
111 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
112 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
114 const scalar*
const __restrict__ lowerPtr = lower().begin();
115 const scalar*
const __restrict__ upperPtr = upper().begin();
133 const label nFaces = upper().size();
136 TpsiPtr[uPtr[
face]] += upperPtr[
face]*psiPtr[lPtr[
face]];
137 TpsiPtr[lPtr[
face]] += lowerPtr[
face]*psiPtr[uPtr[
face]];
141 updateMatrixInterfaces
161 scalar* __restrict__ sumAPtr = sumA.begin();
163 const scalar* __restrict__ diagPtr =
diag().begin();
165 const label* __restrict__ uPtr = lduAddr().upperAddr().begin();
166 const label* __restrict__ lPtr = lduAddr().lowerAddr().begin();
168 const scalar* __restrict__ lowerPtr = lower().begin();
169 const scalar* __restrict__ upperPtr = upper().begin();
172 const label nFaces = upper().size();
181 sumAPtr[uPtr[
face]] += lowerPtr[
face];
182 sumAPtr[lPtr[
face]] += upperPtr[
face];
187 forAll(interfaces, patchI)
189 if (interfaces.
set(patchI))
191 const labelUList& pa = lduAddr().patchAddr(patchI);
192 const scalarField& pCoeffs = interfaceBouCoeffs[patchI];
213 scalar* __restrict__ rAPtr = rA.begin();
215 const scalar*
const __restrict__ psiPtr =
psi.begin();
216 const scalar*
const __restrict__ diagPtr =
diag().begin();
217 const scalar*
const __restrict__ sourcePtr = source.begin();
219 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
220 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
222 const scalar*
const __restrict__ upperPtr = upper().begin();
223 const scalar*
const __restrict__ lowerPtr = lower().begin();
263 const label nFaces = upper().size();
272 updateMatrixInterfaces
293 residual(trA(),
psi, source, interfaceBouCoeffs, interfaces, cmpt);
309 scalar* __restrict__ H1Ptr = H1_.begin();
314 const scalar* __restrict__ lowerPtr =
lower().begin();
315 const scalar* __restrict__ upperPtr =
upper().begin();
321 H1Ptr[uPtr[
face]] -= lowerPtr[
face];
322 H1Ptr[lPtr[
face]] -= upperPtr[
face];
const lduAddressing & lduAddr() const
Return the LDU addressing.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
void Amul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix multiplication with updated interfaces.
#define forAll(list, i)
Loop across all elements in list.
A class for managing temporary objects.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
scalarField * lowerPtr_
Coefficients (not including interfaces)
virtual const labelUList & upperAddr() const =0
Return upper addressing.
iterator begin()
Return an iterator to begin traversing the UList.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
tmp< scalarField > H1() const
void sumA(scalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
Sum the coefficients on each row of the matrix.
void residual(scalarField &rA, const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
const volScalarField & psi
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
volScalarField scalarField(fieldObject, mesh)
bool set(const label) const
Is element set.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
A face is a list of labels corresponding to mesh vertices.
void clear() const
If object pointer points to valid object:
A cell is defined as a list of faces with extra functionality.
void Tmul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix transpose multiplication with updated interfaces.