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];
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.
ref(),
psi,
source, interfaceBouCoeffs, interfaces, cmpt);
305 if (lowerPtr_ || upperPtr_)
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];
#define forAll(list, i)
Loop across all elements in list.
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 clear() const
If object pointer points to valid object:
A face is a list of labels corresponding to mesh vertices.
T & ref() const
Return non-const reference or generate a fatal error.
void size(const label)
Override size to be inconsistent with allocated storage.
void Tmul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix transpose multiplication with updated interfaces.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
tmp< scalarField > H1() const
void Amul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix multiplication with updated interfaces.
void residual(scalarField &rA, const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
void sumA(scalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
Sum the coefficients on each row of the matrix.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
iterator begin()
Return an iterator to begin traversing the UList.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
volScalarField scalarField(fieldObject, mesh)
bool set(const label) const
Is element set.
label size() const
Return the number of elements in the UPtrList.
fvModels source(alpha1, mixture.thermo1().rho())
const lduAddressing & lduAddr() const
Return the LDU addressing.
A cell is defined as a list of faces with extra functionality.
const volScalarField & psi
A class for managing temporary objects.