Go to the documentation of this file.
46 solveScalar* __restrict__ ApsiPtr = Apsi.begin();
49 const solveScalar*
const __restrict__ psiPtr =
psi.begin();
51 const scalar*
const __restrict__ diagPtr =
diag().begin();
53 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
54 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
56 const scalar*
const __restrict__ upperPtr =
upper().begin();
57 const scalar*
const __restrict__ lowerPtr =
lower().begin();
81 ApsiPtr[uPtr[
face]] += lowerPtr[
face]*psiPtr[lPtr[
face]];
82 ApsiPtr[lPtr[
face]] += upperPtr[
face]*psiPtr[uPtr[
face]];
86 updateMatrixInterfaces
109 solveScalar* __restrict__ TpsiPtr = Tpsi.begin();
112 const solveScalar*
const __restrict__ psiPtr =
psi.begin();
114 const scalar*
const __restrict__ diagPtr =
diag().begin();
116 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
117 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
119 const scalar*
const __restrict__ lowerPtr =
lower().begin();
120 const scalar*
const __restrict__ upperPtr =
upper().begin();
142 TpsiPtr[uPtr[
face]] += upperPtr[
face]*psiPtr[lPtr[
face]];
143 TpsiPtr[lPtr[
face]] += lowerPtr[
face]*psiPtr[uPtr[
face]];
147 updateMatrixInterfaces
168 solveScalar* __restrict__ sumAPtr = sumA.begin();
170 const scalar* __restrict__ diagPtr =
diag().begin();
172 const label* __restrict__ uPtr = lduAddr().upperAddr().begin();
173 const label* __restrict__ lPtr = lduAddr().lowerAddr().begin();
175 const scalar* __restrict__ lowerPtr =
lower().begin();
176 const scalar* __restrict__ upperPtr =
upper().begin();
188 sumAPtr[uPtr[
face]] += lowerPtr[
face];
189 sumAPtr[lPtr[
face]] += upperPtr[
face];
194 forAll(interfaces, patchi)
196 if (interfaces.
set(patchi))
198 const labelUList& pa = lduAddr().patchAddr(patchi);
199 const scalarField& pCoeffs = interfaceBouCoeffs[patchi];
220 solveScalar* __restrict__ rAPtr = rA.begin();
222 const solveScalar*
const __restrict__ psiPtr =
psi.begin();
223 const scalar*
const __restrict__ diagPtr =
diag().begin();
224 const scalar*
const __restrict__ sourcePtr = source.begin();
226 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
227 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
229 const scalar*
const __restrict__ upperPtr =
upper().begin();
230 const scalar*
const __restrict__ lowerPtr =
lower().begin();
270 updateMatrixInterfaces
292 residual(trA.
ref(),
psi, source, interfaceBouCoeffs, interfaces, cmpt);
301 if (lowerPtr_ || upperPtr_)
303 scalar* __restrict__ H1Ptr = tH1.ref().begin();
308 const scalar* __restrict__ lowerPtr =
lower().begin();
309 const scalar* __restrict__ upperPtr =
upper().begin();
315 H1Ptr[uPtr[
face]] -= lowerPtr[
face];
316 H1Ptr[lPtr[
face]] -= upperPtr[
face];
const lduAddressing & lduAddr() const
Return the LDU addressing.
A field of fields is a PtrList of fields with reference counting.
void clear() const noexcept
A class for managing temporary objects.
static constexpr const zero Zero
Global zero.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
const T * set(const label i) const
Return const pointer to element (if set) or nullptr.
string lower(const std::string &str)
Return string transformed with std::tolower on each character.
void Amul(solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix multiplication with updated interfaces.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
iterator begin()
Return an iterator to begin traversing the UList.
#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.
string upper(const std::string &str)
Return string transformed with std::toupper on each character.
Field< solveScalar > solveScalarField
tmp< scalarField > H1() const
void sumA(solveScalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
Sum the coefficients on each row of the matrix.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
static tmp< T > New(Args &&... args)
Construct tmp of T with forwarding arguments.
A face is a list of labels corresponding to mesh vertices.
const volScalarField & psi
void Tmul(solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix transpose multiplication with updated interfaces.
void residual(solveScalarField &rA, const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
A cell is defined as a list of faces with extra functionality.