60 #ifndef Foam_GAMGSolver_H 61 #define Foam_GAMGSolver_H 87 label preSweepsLevelMultiplier_;
96 label postSweepsLevelMultiplier_;
102 label nFinestSweeps_;
105 bool cacheAgglomeration_;
109 bool interpolateCorrection_;
114 bool scaleCorrection_;
117 bool directSolveCoarsest_;
147 virtual void readControls();
156 const lduMatrix& matrixLevel(
const label i)
const;
173 void agglomerateMatrix
175 const label fineLevelIndex,
181 void agglomerateInterfaceCoefficients
183 const label fineLevelIndex,
194 const label destLevel,
209 void procAgglomerateMatrix
226 void procAgglomerateMatrix
320 void solveCoarsestLevel
const FieldField< Field, scalar > & interfaceBouCoeffs() const noexcept
GAMGSolver(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
Construct from lduMatrix and solver controls.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Geometric agglomerated algebraic multigrid preconditioner.
const lduMatrix & matrix() const noexcept
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
virtual solverPerformance solve(scalarField &psi, const scalarField &source, const direction cmpt=0) const
Solve.
A field of fields is a PtrList of fields with reference counting.
A class for handling words, derived from Foam::string.
Abstract base-class for lduMatrix solvers.
const lduInterfaceFieldPtrsList & interfaces() const noexcept
Geometric agglomerated algebraic multigrid solver.
virtual ~GAMGSolver()
Destructor.
Specialisations of Field<T> for scalar, vector and tensor.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays...
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
TypeName("GAMG")
Runtime type information.
const FieldField< Field, scalar > & interfaceIntCoeffs() const noexcept
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
const volScalarField & psi
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
Geometric agglomerated algebraic multigrid agglomeration class.
const word & fieldName() const noexcept