30 template<
class Type,
class DType,
class LUType>
38 word preconditionerName = preconditionerDict.
lookup(
"preconditioner");
40 if (sol.
matrix().symmetric())
42 typename symMatrixConstructorTable::iterator constructorIter =
43 symMatrixConstructorTablePtr_->find(preconditionerName);
45 if (constructorIter == symMatrixConstructorTablePtr_->end())
50 ) <<
"Unknown symmetric matrix preconditioner "
51 << preconditionerName <<
endl <<
endl
52 <<
"Valid symmetric matrix preconditioners are :" <<
endl
53 << symMatrixConstructorTablePtr_->toc()
66 else if (sol.
matrix().asymmetric())
68 typename asymMatrixConstructorTable::iterator constructorIter =
69 asymMatrixConstructorTablePtr_->find(preconditionerName);
71 if (constructorIter == asymMatrixConstructorTablePtr_->end())
76 ) <<
"Unknown asymmetric matrix preconditioner "
77 << preconditionerName <<
endl <<
endl
78 <<
"Valid asymmetric matrix preconditioners are :" <<
endl
79 << asymMatrixConstructorTablePtr_->toc()
97 ) <<
"cannot precondition incomplete matrix, "
98 "no diagonal or off-diagonal coefficient"
static autoPtr< preconditioner > New(const solver &sol, const dictionary &preconditionerDict)
Return a new preconditioner.
Abstract base-class for LduMatrix solvers.
const LduMatrix< Type, DType, LUType > & matrix() const
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keyword definitions, which are a keyword followed by any number of values (e....
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
A class for handling words, derived from string.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
errorManipArg< error, int > exit(error &err, const int errNo=1)
Ostream & endl(Ostream &os)
Add newline and flush stream.