Go to the documentation of this file.
40 scalar* __restrict__ psiPtr =
psi.begin();
45 const scalar*
const __restrict__ diagPtr = m.
diag().begin();
46 const scalar*
const __restrict__ upperPtr = m.
upper().begin();
47 const scalar*
const __restrict__ lowerPtr = m.
lower().begin();
50 scalar* __restrict__ ApsiPtr = Apsi.begin();
64 ApsiPtr[uPtr[
face]] += lowerPtr[
face]*psiPtr[lPtr[
face]];
65 ApsiPtr[lPtr[
face]] += upperPtr[
face]*psiPtr[uPtr[
face]];
78 for (
label celli=0; celli<nCells; celli++)
80 psiPtr[celli] = -ApsiPtr[celli]/(diagPtr[celli]);
108 scalar* __restrict__ psiPtr =
psi.begin();
109 const scalar*
const __restrict__ diagPtr = m.
diag().begin();
111 const label nCCells = psiC.size();
115 for (
label celli=0; celli<nCells; celli++)
117 corrC[restrictAddressing[celli]] += diagPtr[celli]*psiPtr[celli];
118 diagC[restrictAddressing[celli]] += diagPtr[celli];
121 for (
label ccelli=0; ccelli<nCCells; ccelli++)
123 corrC[ccelli] = psiC[ccelli] - corrC[ccelli]/diagC[ccelli];
126 for (
label celli=0; celli<nCells; celli++)
128 psiPtr[celli] += corrC[restrictAddressing[celli]];
const lduAddressing & lduAddr() const
Return the LDU addressing.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
tmp< surfaceScalarField > interpolate(const RhoType &rho)
void updateMatrixInterfaces(const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const scalarField &psiif, scalarField &result, const direction cmpt) const
Update interfaced interfaces for matrix operations.
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.
void initMatrixInterfaces(const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const scalarField &psiif, scalarField &result, const direction cmpt) const
Initialise the update of interfaced interfaces.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
void interpolate(scalarField &psi, scalarField &Apsi, const lduMatrix &m, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
Interpolate the correction after injected prolongation.
const volScalarField & psi
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A face is a list of labels corresponding to mesh vertices.