59 #ifndef Foam_GAMGSolver_H 60 #define Foam_GAMGSolver_H 86 label preSweepsLevelMultiplier_;
95 label postSweepsLevelMultiplier_;
101 label nFinestSweeps_;
104 bool cacheAgglomeration_;
108 bool interpolateCorrection_;
113 bool scaleCorrection_;
116 bool directSolveCoarsest_;
146 virtual void readControls();
155 const lduMatrix& matrixLevel(
const label i)
const;
172 void agglomerateMatrix
174 const label fineLevelIndex,
180 void agglomerateInterfaceCoefficients
182 const label fineLevelIndex,
195 const label meshComm,
210 void procAgglomerateMatrix
227 void procAgglomerateMatrix
321 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