Go to the documentation of this file.
37 template<
class Type,
class LUType>
64 template<
class Type,
class DType,
class LUType>
71 Type* __restrict__ ApsiPtr = Apsi.begin();
74 const Type*
const __restrict__ psiPtr =
psi.begin();
76 const DType*
const __restrict__ diagPtr =
diag().begin();
78 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
79 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
81 const LUType*
const __restrict__ upperPtr =
upper().begin();
82 const LUType*
const __restrict__ lowerPtr =
lower().begin();
93 const label nCells =
diag().size();
100 const label nFaces =
upper().size();
108 updateMatrixInterfaces
120 template<
class Type,
class DType,
class LUType>
127 Type* __restrict__ TpsiPtr = Tpsi.begin();
130 const Type*
const __restrict__ psiPtr =
psi.begin();
132 const DType*
const __restrict__ diagPtr =
diag().begin();
134 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
135 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
137 const LUType*
const __restrict__ lowerPtr =
lower().begin();
138 const LUType*
const __restrict__ upperPtr =
upper().begin();
149 const label nCells =
diag().size();
155 const label nFaces =
upper().size();
163 updateMatrixInterfaces
175 template<
class Type,
class DType,
class LUType>
181 Type* __restrict__ sumAPtr = sumA.begin();
183 const DType* __restrict__ diagPtr =
diag().begin();
185 const label* __restrict__ uPtr = lduAddr().upperAddr().begin();
186 const label* __restrict__ lPtr = lduAddr().lowerAddr().begin();
188 const LUType* __restrict__ lowerPtr =
lower().begin();
189 const LUType* __restrict__ upperPtr =
upper().begin();
191 const label nCells =
diag().size();
192 const label nFaces =
upper().size();
207 forAll(interfaces_, patchi)
209 if (interfaces_.set(patchi))
211 const labelUList& pa = lduAddr().patchAddr(patchi);
223 template<
class Type,
class DType,
class LUType>
230 Type* __restrict__ rAPtr = rA.begin();
232 const Type*
const __restrict__ psiPtr =
psi.begin();
233 const DType*
const __restrict__ diagPtr =
diag().begin();
234 const Type*
const __restrict__ sourcePtr = source().begin();
236 const label*
const __restrict__ uPtr = lduAddr().upperAddr().begin();
237 const label*
const __restrict__ lPtr = lduAddr().lowerAddr().begin();
239 const LUType*
const __restrict__ upperPtr =
upper().begin();
240 const LUType*
const __restrict__ lowerPtr =
lower().begin();
255 const label nCells =
diag().size();
262 const label nFaces =
upper().size();
270 updateMatrixInterfaces
280 template<
class Type,
class DType,
class LUType>
A class for managing temporary objects.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
void sumA(Field< Type > &) const
Sum the coefficients on each row of the matrix.
void dot(FieldField< Field1, typename innerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
void Amul(Field< Type > &, const tmp< Field< Type >> &) const
Matrix multiplication.
virtual void addAmul(Field< Type > &Apsi, const Field< Type > &psi) const
#define forAll(list, i)
Loop across all elements in list.
void Tmul(Field< Type > &, const tmp< Field< Type >> &) const
Matrix transpose multiplication.
string lower(const std::string &s)
Return string copy transformed with std::tolower on each character.
void residual(Field< Type > &rA, const Field< Type > &psi) const
List of coupled interface fields to be used in coupling.
An abstract base class for implicitly-coupled interface fields e.g. processor and cyclic patch fields...
A traits class, which is primarily used for primitives.
A face is a list of labels corresponding to mesh vertices.
virtual ~Amultiplier()=default
string upper(const std::string &s)
Return string copy transformed with std::toupper on each character.
const volScalarField & psi
A cell is defined as a list of faces with extra functionality.
Amultiplier(const Field< LUType > &A)