33 template<
class Type,
class DType,
class LUType>
41 const word preconditionerName
43 preconditionerDict.
get<
word>(
"preconditioner")
46 if (sol.
matrix().symmetric())
48 auto* ctorPtr = symMatrixConstructorTable(preconditionerName);
55 "symmetric matrix preconditioner",
57 *symMatrixConstructorTablePtr_
70 else if (sol.
matrix().asymmetric())
72 auto* ctorPtr = asymMatrixConstructorTable(preconditionerName);
79 "asymmetric matrix preconditioner",
81 *asymMatrixConstructorTablePtr_
96 <<
"Cannot precondition incomplete matrix, " 97 "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 a number of values (eg...
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
const LduMatrix< Type, DType, LUType > & matrix() const noexcept
A class for handling words, derived from Foam::string.
Abstract base-class for LduMatrix solvers.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...