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" errorManipArg< error, int > exit(error &err, const int errNo=1)
static autoPtr< preconditioner > New(const solver &sol, const dictionary &preconditionerDict)
Return a new preconditioner.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Ostream & endl(Ostream &os)
Add newline and flush stream.
const LduMatrix< Type, DType, LUType > & matrix() const
A class for handling words, derived from string.
Abstract base-class for LduMatrix solvers.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.