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_;
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
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
A field of fields is a PtrList of fields with reference counting.
Geometric agglomerated algebraic multigrid agglomeration class.
friend class GAMGPreconditioner
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.
TypeName("GAMG")
Runtime type information.
virtual ~GAMGSolver()
Destructor.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Abstract base-class for lduMatrix solvers.
const FieldField< Field, scalar > & interfaceIntCoeffs() const noexcept
const lduInterfaceFieldPtrsList & interfaces() const noexcept
const lduMatrix & matrix() const noexcept
virtual void readControls()
Read the control parameters from controlDict_.
const FieldField< Field, scalar > & interfaceBouCoeffs() const noexcept
const word & fieldName() const noexcept
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
A class for handling words, derived from Foam::string.
const volScalarField & psi
List< label > labelList
A List of labels.
UPtrList< const lduInterface > lduInterfacePtrsList
Store lists of lduInterface as a UPtrList.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< solveScalar > solveScalarField
UPtrList< const lduInterfaceField > lduInterfaceFieldPtrsList
List of coupled interface fields to be used in coupling.
SolverPerformance< scalar > solverPerformance
SolverPerformance instantiated for a scalar.
Specialisations of Field<T> for scalar, vector and tensor.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.