Go to the documentation of this file.
33 template<
class Type,
class DType,
class LUType>
41 const word preconditionerName
43 preconditionerDict.
get<
word>(
"preconditioner")
46 if (sol.
matrix().symmetric())
49 symMatrixConstructorTablePtr_->cfind(preconditionerName);
51 if (!cstrIter.found())
56 "symmetric matrix preconditioner",
58 *symMatrixConstructorTablePtr_
71 else if (sol.
matrix().asymmetric())
74 asymMatrixConstructorTablePtr_->cfind(preconditionerName);
76 if (!cstrIter.found())
81 "asymmetric matrix preconditioner",
83 *asymMatrixConstructorTablePtr_
98 <<
"Cannot precondition incomplete matrix, "
99 "no diagonal or off-diagonal coefficient"
A class for handling words, derived from Foam::string.
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Abstract base-class for LduMatrix solvers.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const LduMatrix< Type, DType, LUType > & matrix() const
errorManipArg< error, int > exit(error &err, const int errNo=1)
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
static autoPtr< preconditioner > New(const solver &sol, const dictionary &preconditionerDict)
Return a new preconditioner.