Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SmoothSolver< Type, DType, LUType > Class Template Reference

Iterative solver for symmetric and asymmetric matrices which uses a run-time selected smoother e.g. GaussSeidel to converge the solution to the required tolerance. To improve efficiency, the residual is evaluated after every nSweeps smoothing iterations. More...

Inheritance diagram for SmoothSolver< Type, DType, LUType >:
Inheritance graph
[legend]
Collaboration diagram for SmoothSolver< Type, DType, LUType >:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("SmoothSolver")
 
 SmoothSolver (const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix, const dictionary &solverDict)
 
virtual SolverPerformance< Type > solve (Field< Type > &psi) const
 
- Public Member Functions inherited from LduMatrix::solver
virtual const wordtype () const =0
 
 declareRunTimeSelectionTable (autoPtr, solver, symMatrix,(const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix, const dictionary &solverDict),(fieldName, matrix, solverDict))
 
 declareRunTimeSelectionTable (autoPtr, solver, asymMatrix,(const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix, const dictionary &solverDict),(fieldName, matrix, solverDict))
 
 solver (const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix, const dictionary &solverDict)
 
virtual ~solver ()=default
 
const wordfieldName () const noexcept
 
const LduMatrix< Type, DType, LUType > & matrix () const noexcept
 
virtual void read (const dictionary &solverDict)
 
Type normFactor (const Field< Type > &psi, const Field< Type > &Apsi, Field< Type > &tmpField) const
 

Protected Member Functions

virtual void readControls ()
 
- Protected Member Functions inherited from LduMatrix::solver
template<class T >
void readControl (const dictionary &dict, T &val, const word &key)
 

Protected Attributes

label nSweeps_
 
- Protected Attributes inherited from LduMatrix::solver
word fieldName_
 
const LduMatrix< Type, DType, LUType > & matrix_
 
dictionary controlDict_
 
int log_
 
label minIter_
 
label maxIter_
 
Type tolerance_
 
Type relTol_
 

Additional Inherited Members

- Static Public Member Functions inherited from LduMatrix::solver
static autoPtr< solverNew (const word &fieldName, const LduMatrix< Type, DType, LUType > &matrix, const dictionary &solverDict)
 
- Static Protected Attributes inherited from LduMatrix::solver
static const label defaultMaxIter_ = 1000
 

Detailed Description

template<class Type, class DType, class LUType>
class Foam::SmoothSolver< Type, DType, LUType >

Iterative solver for symmetric and asymmetric matrices which uses a run-time selected smoother e.g. GaussSeidel to converge the solution to the required tolerance. To improve efficiency, the residual is evaluated after every nSweeps smoothing iterations.

Source files

Definition at line 50 of file SmoothSolver.H.

Constructor & Destructor Documentation

◆ SmoothSolver()

SmoothSolver ( const word fieldName,
const LduMatrix< Type, DType, LUType > &  matrix,
const dictionary solverDict 
)

Definition at line 28 of file SmoothSolver.C.

Member Function Documentation

◆ readControls()

void readControls
protectedvirtual

Reimplemented from LduMatrix::solver.

Definition at line 49 of file SmoothSolver.C.

◆ TypeName()

TypeName ( "SmoothSolver< Type, DType, LUType >"  )

◆ solve()

Foam::SolverPerformance< Type > solve ( Field< Type > &  psi) const
virtual

Member Data Documentation

◆ nSweeps_

label nSweeps_
protected

Definition at line 60 of file SmoothSolver.H.


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