Loading...
Searching...
No Matches
GAMGPreconditioner Class Reference

Geometric agglomerated algebraic multigrid preconditioner. More...

#include <GAMGPreconditioner.H>

Inheritance diagram for GAMGPreconditioner:
Collaboration diagram for GAMGPreconditioner:

Public Member Functions

 TypeName ("GAMG")
 Runtime type information.
 GAMGPreconditioner (const lduMatrix::solver &, const dictionary &solverControls)
 Construct from matrix components and preconditioner solver controls.
virtual ~GAMGPreconditioner ()=default
 Destructor.
virtual void precondition (solveScalarField &wA, const solveScalarField &rA, const direction cmpt=0) const
 Return wA the preconditioned form of residual rA.
Public Member Functions inherited from GAMGSolver
 TypeName ("GAMG")
 Runtime type information.
 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.
virtual ~GAMGSolver ()
 Destructor.
virtual solverPerformance solve (scalarField &psi, const scalarField &source, const direction cmpt=0) const
 Solve.
Public Member Functions inherited from lduMatrix::solver
virtual const wordtype () const =0
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, solver, symMatrix,(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls),(fieldName, matrix, interfaceBouCoeffs, interfaceIntCoeffs, interfaces, solverControls))
 declareRunTimeSelectionTable (autoPtr, solver, asymMatrix,(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls),(fieldName, matrix, interfaceBouCoeffs, interfaceIntCoeffs, interfaces, solverControls))
 solver (const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
 Construct solver for given field name, matrix etc.
virtual ~solver ()=default
 Destructor.
const wordfieldName () const noexcept
const lduMatrixmatrix () const noexcept
const FieldField< Field, scalar > & interfaceBouCoeffs () const noexcept
const FieldField< Field, scalar > & interfaceIntCoeffs () const noexcept
const lduInterfaceFieldPtrsListinterfaces () const noexcept
virtual void read (const dictionary &)
 Read and reset the solver parameters from the given stream.
virtual solverPerformance scalarSolve (solveScalarField &psi, const solveScalarField &source, const direction cmpt=0) const
 Solve with given field and rhs (in solveScalar precision).
solveScalarField::cmptType normFactor (const solveScalarField &psi, const solveScalarField &source, const solveScalarField &Apsi, solveScalarField &tmpField, const lduMatrix::normTypes normType) const
 Return the matrix norm using the specified norm method.
solveScalarField::cmptType normFactor (const solveScalarField &psi, const solveScalarField &source, const solveScalarField &Apsi, solveScalarField &tmpField) const
 Return the matrix norm used to normalise the residual for the stopping criterion.
Public Member Functions inherited from lduMatrix::preconditioner
virtual const wordtype () const =0
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, preconditioner, symMatrix,(const solver &sol, const dictionary &solverControls),(sol, solverControls))
 declareRunTimeSelectionTable (autoPtr, preconditioner, asymMatrix,(const solver &sol, const dictionary &solverControls),(sol, solverControls))
 preconditioner (const solver &sol)
 Construct for given solver.
virtual ~preconditioner ()=default
 Destructor.
virtual void read (const dictionary &)
 Read and reset the preconditioner parameters from the given stream.
virtual void preconditionT (solveScalarField &wT, const solveScalarField &rT, const direction cmpt=0) const
 Return wT the transpose-matrix preconditioned form of residual rT.
virtual void setFinished (const solverPerformance &perf) const
 Signal end of solver.

Protected Member Functions

virtual void readControls ()
 Read the control parameters from the controlDict_.

Protected Attributes

label nVcycles_
 Number of V-cycles to perform.
Protected Attributes inherited from lduMatrix::solver
word fieldName_
const lduMatrixmatrix_
const FieldField< Field, scalar > & interfaceBouCoeffs_
const FieldField< Field, scalar > & interfaceIntCoeffs_
lduInterfaceFieldPtrsList interfaces_
dictionary controlDict_
 Dictionary of solution controls.
int log_
 Verbosity level for solver output statements.
label minIter_
 Minimum number of iterations in the solver.
label maxIter_
 Maximum number of iterations in the solver.
lduMatrix::normTypes normType_
 The normalisation type.
scalar tolerance_
 Final convergence tolerance.
scalar relTol_
 Convergence tolerance relative to the initial.
profilingTrigger profiling_
 Profiling instrumentation.
Protected Attributes inherited from lduMatrix::preconditioner
const solversolver_
 Reference to the base-solver this preconditioner is used with.

Additional Inherited Members

Static Public Member Functions inherited from lduMatrix::solver
static autoPtr< solverNew (const word &solverName, const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
 Return a new solver of given type.
static autoPtr< solverNew (const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
 Return a new solver given dictionary.
Static Public Member Functions inherited from lduMatrix::preconditioner
static word getName (const dictionary &)
 Find the preconditioner name (directly or from a sub-dictionary).
static autoPtr< preconditionerNew (const solver &sol, const dictionary &solverControls)
 Return a new preconditioner.

Detailed Description

Geometric agglomerated algebraic multigrid preconditioner.

See also
GAMGSolver for more details.
Source files

Definition at line 53 of file GAMGPreconditioner.H.

Constructor & Destructor Documentation

◆ GAMGPreconditioner()

GAMGPreconditioner ( const lduMatrix::solver & sol,
const dictionary & solverControls )

◆ ~GAMGPreconditioner()

virtual ~GAMGPreconditioner ( )
virtualdefault

Destructor.

Member Function Documentation

◆ readControls()

void readControls ( )
protectedvirtual

Read the control parameters from the controlDict_.

Reimplemented from GAMGSolver.

Definition at line 65 of file GAMGPreconditioner.C.

References lduMatrix::solver::controlDict_, nVcycles_, and lduMatrix::solver::readControls().

Referenced by GAMGPreconditioner().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeName()

TypeName ( "GAMG" )

Runtime type information.

◆ precondition()

void precondition ( solveScalarField & wA,
const solveScalarField & rA,
const direction cmpt = 0 ) const
virtual

Return wA the preconditioned form of residual rA.

Implements lduMatrix::preconditioner.

Definition at line 72 of file GAMGPreconditioner.C.

References refPtr< T >::cref(), lduMatrix::solver::interfaceBouCoeffs_, lduMatrix::solver::interfaces_, lduMatrix::solver::matrix_, nVcycles_, UList< T >::size(), and Foam::Zero.

Here is the call graph for this function:

Member Data Documentation

◆ nVcycles_

label nVcycles_
protected

Number of V-cycles to perform.

Definition at line 65 of file GAMGPreconditioner.H.

Referenced by GAMGPreconditioner(), precondition(), and readControls().


The documentation for this class was generated from the following files: