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...
Classes | |
class | preconditioner |
class | smoother |
class | solver |
Public Member Functions | |
ClassName ("lduMatrix") | |
lduMatrix (const lduMesh &) | |
lduMatrix (const lduMatrix &) | |
lduMatrix (lduMatrix &, bool reuse) | |
lduMatrix (const lduMesh &, Istream &) | |
~lduMatrix () | |
const lduMesh & | mesh () const |
void | setLduMesh (const lduMesh &m) |
const lduAddressing & | lduAddr () const |
const lduSchedule & | patchSchedule () const |
scalarField & | lower () |
scalarField & | diag () |
scalarField & | upper () |
scalarField & | lower (const label size) |
scalarField & | diag (const label nCoeffs) |
scalarField & | upper (const label nCoeffs) |
const scalarField & | lower () const |
const scalarField & | diag () const |
const scalarField & | upper () const |
bool | hasDiag () const |
bool | hasUpper () const |
bool | hasLower () const |
bool | diagonal () const |
bool | symmetric () const |
bool | asymmetric () const |
void | sumDiag () |
void | negSumDiag () |
void | sumMagOffDiag (scalarField &sumOff) const |
void | Amul (solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const |
void | Tmul (solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const |
void | sumA (solveScalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const |
void | residual (solveScalarField &rA, const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const |
tmp< solveScalarField > | residual (const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const |
void | initMatrixInterfaces (const bool add, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const solveScalarField &psiif, solveScalarField &result, const direction cmpt) const |
void | updateMatrixInterfaces (const bool add, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const solveScalarField &psiif, solveScalarField &result, const direction cmpt, const label startRequest) const |
void | setResidualField (const scalarField &residual, const word &fieldName, const bool initial) const |
template<class Type > | |
tmp< Field< Type > > | H (const Field< Type > &) const |
template<class Type > | |
tmp< Field< Type > > | H (const tmp< Field< Type >> &) const |
tmp< scalarField > | H1 () const |
template<class Type > | |
tmp< Field< Type > > | faceH (const Field< Type > &) const |
template<class Type > | |
tmp< Field< Type > > | faceH (const tmp< Field< Type >> &) const |
InfoProxy< lduMatrix > | info () const |
void | operator= (const lduMatrix &) |
void | negate () |
void | operator+= (const lduMatrix &) |
void | operator-= (const lduMatrix &) |
void | operator*= (const scalarField &) |
void | operator*= (scalar) |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | H (const Field< Type > &psi) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | H (const tmp< Field< Type >> &tpsi) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | faceH (const Field< Type > &psi) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | faceH (const tmp< Field< Type >> &tpsi) const |
Friends | |
Ostream & | operator<< (Ostream &, const lduMatrix &) |
Ostream & | operator<< (Ostream &, const InfoProxy< lduMatrix > &) |
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.
It might be better if this class were organised as a hierarchy starting from an empty matrix, then deriving diagonal, symmetric and asymmetric matrices.
Definition at line 79 of file lduMatrix.H.
Definition at line 42 of file lduMatrix.C.
Definition at line 51 of file lduMatrix.C.
References A.
Definition at line 122 of file lduMatrix.C.
References lduMatrix::hasDiag().
~lduMatrix | ( | ) |
Definition at line 148 of file lduMatrix.C.
ClassName | ( | "lduMatrix" | ) |
|
inline |
Definition at line 562 of file lduMatrix.H.
Referenced by algebraicPairGAMGAgglomeration::algebraicPairGAMGAgglomeration(), assemblyFaceAreaPairGAMGAgglomeration::assemblyFaceAreaPairGAMGAgglomeration(), lduMatrix::lduAddr(), and GAMGAgglomeration::New().
|
inline |
Definition at line 568 of file lduMatrix.H.
|
inline |
Definition at line 574 of file lduMatrix.H.
References lduMesh::lduAddr(), and lduMatrix::mesh().
Referenced by DICPreconditioner::calcReciprocalD(), DILUPreconditioner::calcReciprocalD(), lduMatrix::H(), lduMatrix::H1(), LUscalarMatrix::LUscalarMatrix(), lduMatrix::patchSchedule(), symGaussSeidelSmoother::smooth(), GaussSeidelSmoother::smooth(), nonBlockingGaussSeidelSmoother::smooth(), and lduMatrix::sumDiag().
|
inline |
Definition at line 580 of file lduMatrix.H.
References lduMatrix::lduAddr(), and lduAddressing::patchSchedule().
const Foam::scalarField & lower | ( | ) |
Definition at line 167 of file lduMatrix.C.
References Foam::Zero.
Referenced by algebraicPairGAMGAgglomeration::algebraicPairGAMGAgglomeration(), DILUPreconditioner::calcReciprocalD(), lduMatrix::faceH(), GAMGSolver::GAMGSolver(), lduMatrix::H(), lduMatrix::H1(), lduMatrix::negSumDiag(), Foam::operator<<(), symGaussSeidelSmoother::smooth(), GaussSeidelSmoother::smooth(), nonBlockingGaussSeidelSmoother::smooth(), lduMatrix::sumDiag(), and lduMatrix::sumMagOffDiag().
const Foam::scalarField & diag | ( | ) |
Definition at line 185 of file lduMatrix.C.
References Foam::Zero.
Referenced by DICPreconditioner::DICPreconditioner(), DILUPreconditioner::DILUPreconditioner(), FDICPreconditioner::FDICPreconditioner(), GAMGSolver::GAMGSolver(), nonBlockingGaussSeidelSmoother::nonBlockingGaussSeidelSmoother(), Foam::operator<<(), symGaussSeidelSmoother::smooth(), GaussSeidelSmoother::smooth(), nonBlockingGaussSeidelSmoother::smooth(), and lduMatrix::sumDiag().
const Foam::scalarField & upper | ( | ) |
Definition at line 196 of file lduMatrix.C.
References Foam::Zero.
Referenced by algebraicPairGAMGAgglomeration::algebraicPairGAMGAgglomeration(), DILUPreconditioner::calcReciprocalD(), DICPreconditioner::calcReciprocalD(), lduMatrix::faceH(), lduMatrix::H(), lduMatrix::H1(), lduMatrix::negSumDiag(), Foam::operator<<(), GaussSeidelSmoother::smooth(), symGaussSeidelSmoother::smooth(), nonBlockingGaussSeidelSmoother::smooth(), lduMatrix::sumDiag(), and lduMatrix::sumMagOffDiag().
Foam::scalarField & lower | ( | const label | size | ) |
Definition at line 214 of file lduMatrix.C.
References Foam::Zero.
Foam::scalarField & diag | ( | const label | nCoeffs | ) |
Definition at line 232 of file lduMatrix.C.
References Foam::Zero.
Foam::scalarField & upper | ( | const label | nCoeffs | ) |
Definition at line 243 of file lduMatrix.C.
References Foam::Zero.
const scalarField& lower | ( | ) | const |
const scalarField& diag | ( | ) | const |
const scalarField& upper | ( | ) | const |
|
inline |
Definition at line 604 of file lduMatrix.H.
Referenced by lduMatrix::lduMatrix(), and Foam::operator<<().
|
inline |
Definition at line 609 of file lduMatrix.H.
Referenced by Foam::operator<<().
|
inline |
Definition at line 614 of file lduMatrix.H.
Referenced by algebraicPairGAMGAgglomeration::algebraicPairGAMGAgglomeration(), and Foam::operator<<().
|
inline |
Definition at line 619 of file lduMatrix.H.
Referenced by lduMatrix::solver::New().
|
inline |
Definition at line 624 of file lduMatrix.H.
Referenced by lduMatrix::solver::New(), lduMatrix::smoother::New(), and lduMatrix::preconditioner::New().
|
inline |
Definition at line 629 of file lduMatrix.H.
Referenced by lduMatrix::solver::New(), lduMatrix::smoother::New(), and lduMatrix::preconditioner::New().
void sumDiag | ( | ) |
Definition at line 30 of file lduMatrixOperations.C.
References lduMatrix::diag(), lduMatrix::lduAddr(), lduMatrix::lower(), lduAddressing::lowerAddr(), UList::size(), lduMatrix::upper(), and lduAddressing::upperAddr().
void negSumDiag | ( | ) |
Definition at line 47 of file lduMatrixOperations.C.
References Foam::diag(), lduMatrix::lower(), UList::size(), and lduMatrix::upper().
void sumMagOffDiag | ( | scalarField & | sumOff | ) | const |
Definition at line 65 of file lduMatrixOperations.C.
References lduMatrix::lower(), Foam::mag(), UList::size(), and lduMatrix::upper().
void Amul | ( | solveScalarField & | Apsi, |
const tmp< solveScalarField > & | tpsi, | ||
const FieldField< Field, scalar > & | interfaceBouCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const direction | cmpt | ||
) | const |
Definition at line 32 of file lduMatrixATmul.C.
References tmp::clear(), Foam::diag(), Foam::stringOps::lower(), psi, and Foam::stringOps::upper().
void Tmul | ( | solveScalarField & | Tpsi, |
const tmp< solveScalarField > & | tpsi, | ||
const FieldField< Field, scalar > & | interfaceIntCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const direction | cmpt | ||
) | const |
Definition at line 98 of file lduMatrixATmul.C.
References tmp::clear(), Foam::diag(), Foam::stringOps::lower(), psi, and Foam::stringOps::upper().
void sumA | ( | solveScalarField & | sumA, |
const FieldField< Field, scalar > & | interfaceBouCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces | ||
) | const |
Definition at line 162 of file lduMatrixATmul.C.
References Foam::diag(), forAll, Foam::stringOps::lower(), UPtrList::set(), and Foam::stringOps::upper().
void residual | ( | solveScalarField & | rA, |
const solveScalarField & | psi, | ||
const scalarField & | source, | ||
const FieldField< Field, scalar > & | interfaceBouCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const direction | cmpt | ||
) | const |
Definition at line 211 of file lduMatrixATmul.C.
References Foam::diag(), Foam::stringOps::lower(), psi, and Foam::stringOps::upper().
Referenced by faMatrix< Type >::residual(), and fvMatrix< Type >::residual().
Foam::tmp< Foam::Field< Foam::solveScalar > > residual | ( | const solveScalarField & | psi, |
const scalarField & | source, | ||
const FieldField< Field, scalar > & | interfaceBouCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const direction | cmpt | ||
) | const |
Definition at line 286 of file lduMatrixATmul.C.
References psi, and tmp::ref().
void initMatrixInterfaces | ( | const bool | add, |
const FieldField< Field, scalar > & | interfaceCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const solveScalarField & | psiif, | ||
solveScalarField & | result, | ||
const direction | cmpt | ||
) | const |
Definition at line 27 of file lduMatrixUpdateMatrixInterfaces.C.
References Foam::add(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, mesh, UPtrList::set(), and UPtrList::size().
Referenced by GaussSeidelSmoother::smooth(), symGaussSeidelSmoother::smooth(), and nonBlockingGaussSeidelSmoother::smooth().
void updateMatrixInterfaces | ( | const bool | add, |
const FieldField< Field, scalar > & | interfaceCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const solveScalarField & | psiif, | ||
solveScalarField & | result, | ||
const direction | cmpt, | ||
const label | startRequest | ||
) | const |
Definition at line 100 of file lduMatrixUpdateMatrixInterfaces.C.
References Foam::add(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, mesh, UPtrList::set(), and UPtrList::size().
Referenced by GaussSeidelSmoother::smooth(), symGaussSeidelSmoother::smooth(), and nonBlockingGaussSeidelSmoother::smooth().
void setResidualField | ( | const scalarField & | residual, |
const word & | fieldName, | ||
const bool | initial | ||
) | const |
Definition at line 315 of file lduMatrix.C.
References DebugInfo, Foam::endl(), objectRegistry::findObject(), dictionary::found(), objectRegistry::getObjectPtr(), mesh, IOobject::scopedName(), and fvMesh::thisDb().
Referenced by PCG::scalarSolve(), PBiCGStab::scalarSolve(), PBiCG::solve(), and smoothSolver::solve().
Foam::tmp< Foam::scalarField > H1 | ( | ) | const |
Definition at line 300 of file lduMatrixATmul.C.
References UList::begin(), lduMatrix::lduAddr(), lduMatrix::lower(), lduAddressing::lowerAddr(), tmp::New(), lduMatrix::upper(), lduAddressing::upperAddr(), and Foam::Zero.
Definition at line 744 of file lduMatrix.H.
void operator= | ( | const lduMatrix & | A | ) |
Definition at line 85 of file lduMatrixOperations.C.
References A, Foam::diag(), Foam::stringOps::lower(), and Foam::stringOps::upper().
void negate | ( | ) |
Definition at line 119 of file lduMatrixOperations.C.
void operator+= | ( | const lduMatrix & | A | ) |
Definition at line 138 of file lduMatrixOperations.C.
References A, Foam::expressions::patchExpr::debug, Foam::diag(), Foam::endl(), Foam::stringOps::lower(), Foam::nl, Foam::stringOps::upper(), and WarningInFunction.
void operator-= | ( | const lduMatrix & | A | ) |
Definition at line 217 of file lduMatrixOperations.C.
References A, Foam::expressions::patchExpr::debug, Foam::diag(), Foam::endl(), Foam::stringOps::lower(), Foam::nl, Foam::stringOps::upper(), and WarningInFunction.
void operator*= | ( | const scalarField & | sf | ) |
Definition at line 296 of file lduMatrixOperations.C.
References Foam::stringOps::lower(), and Foam::stringOps::upper().
void operator*= | ( | scalar | s | ) |
Definition at line 326 of file lduMatrixOperations.C.
References s.
Foam::tmp<Foam::Field<Type> > H | ( | const Field< Type > & | psi | ) | const |
Definition at line 30 of file lduMatrixTemplates.C.
References UList::begin(), lduMatrix::lduAddr(), lduMatrix::lower(), lduAddressing::lowerAddr(), psi, tmp::ref(), lduMatrix::upper(), lduAddressing::upperAddr(), and Foam::Zero.
Foam::tmp<Foam::Field<Type> > H | ( | const tmp< Field< Type >> & | tpsi | ) | const |
Definition at line 65 of file lduMatrixTemplates.C.
References H().
Foam::tmp<Foam::Field<Type> > faceH | ( | const Field< Type > & | psi | ) | const |
Definition at line 75 of file lduMatrixTemplates.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, lduMatrix::lower(), psi, tmp::ref(), UList::size(), and lduMatrix::upper().
Foam::tmp<Foam::Field<Type> > faceH | ( | const tmp< Field< Type >> & | tpsi | ) | const |
Definition at line 109 of file lduMatrixTemplates.C.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.