33 template<
class Type,
class DType,
class LUType>
37 const word& fieldName,
42 const word smootherName(smootherDict.
get<
word>(
"smoother"));
46 auto* ctorPtr = symMatrixConstructorTable(smootherName);
53 "symmetric matrix smoother",
55 *symMatrixConstructorTablePtr_
68 else if (
matrix.asymmetric())
70 auto* ctorPtr = asymMatrixConstructorTable(smootherName);
77 "asymmetric matrix smoother",
79 *asymMatrixConstructorTablePtr_
94 <<
"cannot solve incomplete matrix, no off-diagonal coefficients" 103 template<
class Type,
class DType,
class LUType>
106 const word& fieldName,
110 fieldName_(fieldName),
smoother(const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix)
Construct for given field name and matrix.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const LduMatrix< Type, DType, LUType > & matrix() const noexcept
static autoPtr< smoother > New(const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix, const dictionary &smootherDict)
Return a new smoother.
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.
A class for handling words, derived from Foam::string.
const word & fieldName() const noexcept
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
LduMatrix is a general matrix class in which the coefficients are stored as three arrays...
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 ...