LduMatrix is a general matrix class in which the coefficients are stored as three arrays, one for the upper triangle, one for the lower triangle and a third for the diagonal. More...
Data Structures | |
class | preconditioner |
Abstract base-class for LduMatrix preconditioners. More... | |
class | smoother |
Abstract base-class for LduMatrix smoothers. More... | |
class | solver |
Abstract base-class for LduMatrix solvers. More... | |
Public Member Functions | |
ClassName ("LduMatrix") | |
LduMatrix (const lduMesh &) | |
Construct given an LDU addressed mesh. More... | |
LduMatrix (const LduMatrix< Type, DType, LUType > &) | |
Construct as copy. More... | |
LduMatrix (LduMatrix< Type, DType, LUType > &, bool reUse) | |
Construct as copy or re-use as specified. More... | |
LduMatrix (const lduMesh &, Istream &) | |
Construct given an LDU addressed mesh and an Istream. More... | |
~LduMatrix () | |
const lduMesh & | mesh () const |
Return the LDU mesh from which the addressing is obtained. More... | |
const lduAddressing & | lduAddr () const |
Return the LDU addressing. More... | |
const lduSchedule & | patchSchedule () const |
Return the patch evaluation schedule. More... | |
const LduInterfaceFieldPtrsList< Type > & | interfaces () const |
Return interfaces. More... | |
LduInterfaceFieldPtrsList< Type > & | interfaces () |
Return interfaces. More... | |
Field< DType > & | diag () |
Field< LUType > & | upper () |
Field< LUType > & | lower () |
Field< Type > & | source () |
FieldField< Field, LUType > & | interfacesUpper () |
FieldField< Field, LUType > & | interfacesLower () |
const Field< DType > & | diag () const |
const Field< LUType > & | upper () const |
const Field< LUType > & | lower () const |
const Field< Type > & | source () const |
const FieldField< Field, LUType > & | interfacesUpper () const |
const FieldField< Field, LUType > & | interfacesLower () const |
bool | hasDiag () const |
bool | hasUpper () const |
bool | hasLower () const |
bool | hasSource () const |
bool | diagonal () const |
bool | symmetric () const |
bool | asymmetric () const |
void | sumDiag () |
void | negSumDiag () |
void | sumMagOffDiag (Field< LUType > &sumOff) const |
void | Amul (Field< Type > &, const tmp< Field< Type > > &) const |
Matrix multiplication. More... | |
void | Tmul (Field< Type > &, const tmp< Field< Type > > &) const |
Matrix transpose multiplication. More... | |
void | sumA (Field< Type > &) const |
Sum the coefficients on each row of the matrix. More... | |
void | residual (Field< Type > &rA, const Field< Type > &psi) const |
tmp< Field< Type > > | residual (const Field< Type > &psi) const |
void | initMatrixInterfaces (const FieldField< Field, LUType > &interfaceCoeffs, const Field< Type > &psiif, Field< Type > &result) const |
Initialise the update of interfaced interfaces. More... | |
void | updateMatrixInterfaces (const FieldField< Field, LUType > &interfaceCoeffs, const Field< Type > &psiif, Field< Type > &result) const |
Update interfaced interfaces for matrix operations. More... | |
tmp< Field< Type > > | H (const Field< Type > &) const |
tmp< Field< Type > > | H (const tmp< Field< Type > > &) const |
tmp< Field< Type > > | faceH (const Field< Type > &) const |
tmp< Field< Type > > | faceH (const tmp< Field< Type > > &) const |
void | operator= (const LduMatrix< Type, DType, LUType > &) |
void | negate () |
void | operator+= (const LduMatrix< Type, DType, LUType > &) |
void | operator-= (const LduMatrix< Type, DType, LUType > &) |
void | operator*= (const scalarField &) |
void | operator*= (scalar) |
Private Attributes | |
const lduMesh & | lduMesh_ |
LDU mesh reference. More... | |
Field< DType > * | diagPtr_ |
Diagonal coefficients. More... | |
Field< LUType > * | upperPtr_ |
Off-diagonal coefficients. More... | |
Field< LUType > * | lowerPtr_ |
Field< Type > * | sourcePtr_ |
Source. More... | |
LduInterfaceFieldPtrsList< Type > | interfaces_ |
Field interfaces (processor patches etc.) More... | |
FieldField< Field, LUType > | interfacesUpper_ |
Off-diagonal coefficients for interfaces. More... | |
FieldField< Field, LUType > | interfacesLower_ |
Friends | |
class | SolverPerformance< Type > |
Ostream & | operator (Ostream &, const LduMatrix< Type, DType, LUType > &) |
LduMatrix is a general matrix class in which the coefficients are stored as three arrays, one for the upper triangle, one for the lower triangle and a third for the diagonal.
Addressing arrays must be supplied for the upper and lower triangles.
Definition at line 69 of file LduMatrix.H.
Construct given an LDU addressed mesh.
The coefficients are initially empty for subsequent setting.
Construct as copy or re-use as specified.
Construct given an LDU addressed mesh and an Istream.
from which the coefficients are read
~LduMatrix | ( | ) |
Definition at line 163 of file LduMatrix.C.
ClassName | ( | "LduMatrix" | ) |
|
inline |
Return the LDU mesh from which the addressing is obtained.
Definition at line 489 of file LduMatrix.H.
|
inline |
Return the LDU addressing.
Definition at line 495 of file LduMatrix.H.
Referenced by TDILUPreconditioner< Type, DType, LUType >::calcInvD(), LduMatrix< Type, DType, LUType >::patchSchedule(), and TGaussSeidelSmoother< Type, DType, LUType >::smooth().
|
inline |
Return the patch evaluation schedule.
Definition at line 501 of file LduMatrix.H.
|
inline |
Return interfaces.
Definition at line 507 of file LduMatrix.H.
Referenced by TGaussSeidelSmoother< Type, DType, LUType >::smooth().
|
inline |
Return interfaces.
Definition at line 513 of file LduMatrix.H.
Foam::Field< DType > & diag | ( | ) |
Definition at line 190 of file LduMatrix.C.
Referenced by DiagonalPreconditioner< Type, DType, LUType >::DiagonalPreconditioner(), and TGaussSeidelSmoother< Type, DType, LUType >::TGaussSeidelSmoother().
Foam::Field< LUType > & upper | ( | ) |
Definition at line 202 of file LduMatrix.C.
Referenced by TDILUPreconditioner< Type, DType, LUType >::calcInvD(), LduMatrix< Type, DType, LUType >::negSumDiag(), TGaussSeidelSmoother< Type, DType, LUType >::smooth(), LduMatrix< Type, DType, LUType >::sumDiag(), and LduMatrix< Type, DType, LUType >::sumMagOffDiag().
Foam::Field< LUType > & lower | ( | ) |
Definition at line 225 of file LduMatrix.C.
Referenced by TDILUPreconditioner< Type, DType, LUType >::calcInvD(), LduMatrix< Type, DType, LUType >::negSumDiag(), TGaussSeidelSmoother< Type, DType, LUType >::smooth(), LduMatrix< Type, DType, LUType >::sumDiag(), and LduMatrix< Type, DType, LUType >::sumMagOffDiag().
Foam::Field< Type > & source | ( | ) |
Definition at line 248 of file LduMatrix.C.
Referenced by TGaussSeidelSmoother< Type, DType, LUType >::smooth().
|
inline |
Definition at line 526 of file LduMatrix.H.
Referenced by TGaussSeidelSmoother< Type, DType, LUType >::smooth().
|
inline |
Definition at line 531 of file LduMatrix.H.
const Foam::Field< DType > & diag | ( | ) | const |
Definition at line 260 of file LduMatrix.C.
const Foam::Field< LUType > & upper | ( | ) | const |
Definition at line 274 of file LduMatrix.C.
const Foam::Field< LUType > & lower | ( | ) | const |
Definition at line 295 of file LduMatrix.C.
const Foam::Field< Type > & source | ( | ) | const |
Definition at line 316 of file LduMatrix.C.
|
inline |
Definition at line 542 of file LduMatrix.H.
|
inline |
Definition at line 547 of file LduMatrix.H.
|
inline |
Definition at line 553 of file LduMatrix.H.
|
inline |
Definition at line 558 of file LduMatrix.H.
|
inline |
Definition at line 563 of file LduMatrix.H.
|
inline |
Definition at line 568 of file LduMatrix.H.
|
inline |
Definition at line 573 of file LduMatrix.H.
Referenced by LduMatrix::solver::New().
|
inline |
Definition at line 578 of file LduMatrix.H.
Referenced by LduMatrix::solver::New(), LduMatrix::smoother::New(), and LduMatrix::preconditioner::New().
|
inline |
Definition at line 583 of file LduMatrix.H.
Referenced by LduMatrix::solver::New(), LduMatrix::smoother::New(), and LduMatrix::preconditioner::New().
void sumDiag | ( | ) |
Definition at line 31 of file LduMatrixOperations.C.
void negSumDiag | ( | ) |
Definition at line 49 of file LduMatrixOperations.C.
void sumMagOffDiag | ( | Field< LUType > & | sumOff | ) | const |
Definition at line 68 of file LduMatrixOperations.C.
Matrix multiplication.
Definition at line 64 of file LduMatrixATmul.C.
Matrix transpose multiplication.
Definition at line 118 of file LduMatrixATmul.C.
void sumA | ( | Field< Type > & | sumA | ) | const |
Sum the coefficients on each row of the matrix.
Definition at line 171 of file LduMatrixATmul.C.
Definition at line 219 of file LduMatrixATmul.C.
Foam::tmp< Foam::Field< Type > > residual | ( | const Field< Type > & | psi | ) | const |
Definition at line 284 of file LduMatrixATmul.C.
void initMatrixInterfaces | ( | const FieldField< Field, LUType > & | interfaceCoeffs, |
const Field< Type > & | psiif, | ||
Field< Type > & | result | ||
) | const |
Initialise the update of interfaced interfaces.
for matrix operations
Definition at line 33 of file LduMatrixUpdateMatrixInterfaces.C.
Referenced by TGaussSeidelSmoother< Type, DType, LUType >::smooth().
void updateMatrixInterfaces | ( | const FieldField< Field, LUType > & | interfaceCoeffs, |
const Field< Type > & | psiif, | ||
Field< Type > & | result | ||
) | const |
Update interfaced interfaces for matrix operations.
Definition at line 98 of file LduMatrixUpdateMatrixInterfaces.C.
Referenced by TGaussSeidelSmoother< Type, DType, LUType >::smooth().
Definition at line 167 of file LduMatrixOperations.C.
void negate | ( | ) |
Definition at line 212 of file LduMatrixOperations.C.
Definition at line 240 of file LduMatrixOperations.C.
Definition at line 317 of file LduMatrixOperations.C.
void operator*= | ( | const scalarField & | ) |
void operator*= | ( | scalar | ) |
|
friend |
Definition at line 109 of file LduMatrix.H.
|
private |
LDU mesh reference.
Definition at line 89 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::lduAddr(), and LduMatrix< Type, DType, LUType >::mesh().
|
private |
Diagonal coefficients.
Definition at line 92 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::asymmetric(), LduMatrix< Type, DType, LUType >::diagonal(), LduMatrix< Type, DType, LUType >::hasDiag(), and LduMatrix< Type, DType, LUType >::symmetric().
|
private |
Off-diagonal coefficients.
Definition at line 95 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::asymmetric(), LduMatrix< Type, DType, LUType >::diagonal(), LduMatrix< Type, DType, LUType >::hasUpper(), and LduMatrix< Type, DType, LUType >::symmetric().
|
private |
Definition at line 95 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::asymmetric(), LduMatrix< Type, DType, LUType >::diagonal(), LduMatrix< Type, DType, LUType >::hasLower(), and LduMatrix< Type, DType, LUType >::symmetric().
|
private |
Source.
Definition at line 98 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::hasSource().
|
private |
Field interfaces (processor patches etc.)
Definition at line 101 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::interfaces().
|
private |
Off-diagonal coefficients for interfaces.
Definition at line 104 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::interfacesUpper().
|
private |
Definition at line 104 of file LduMatrix.H.
Referenced by LduMatrix< Type, DType, LUType >::interfacesLower().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.