Loading...
Searching...
No Matches
DILUPreconditioner Class Reference

Simplified diagonal-based incomplete LU preconditioner for asymmetric matrices. The reciprocal of the preconditioned diagonal is calculated and stored. More...

#include <DILUPreconditioner.H>

Inheritance diagram for DILUPreconditioner:
Collaboration diagram for DILUPreconditioner:

Public Member Functions

 TypeName ("DILU")
 Runtime type information.
 DILUPreconditioner (const lduMatrix::solver &, const dictionary &solverControlsUnused)
 Construct from matrix components and preconditioner solver controls.
virtual ~DILUPreconditioner ()=default
 Destructor.
virtual void precondition (solveScalarField &wA, const solveScalarField &rA, const direction cmpt=0) const
 Return wA the preconditioned form of residual rA.
virtual void preconditionT (solveScalarField &wT, const solveScalarField &rT, const direction cmpt=0) const
 Return wT the transpose-matrix preconditioned form of residual rT.
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 setFinished (const solverPerformance &perf) const
 Signal end of solver.

Static Public Member Functions

static void calcReciprocalD (solveScalarField &, const lduMatrix &)
 Calculate the reciprocal of the preconditioned diagonal.
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.

Additional Inherited Members

Protected Attributes inherited from lduMatrix::preconditioner
const solversolver_
 Reference to the base-solver this preconditioner is used with.

Detailed Description

Simplified diagonal-based incomplete LU preconditioner for asymmetric matrices. The reciprocal of the preconditioned diagonal is calculated and stored.

Source files

Definition at line 52 of file DILUPreconditioner.H.

Constructor & Destructor Documentation

◆ DILUPreconditioner()

DILUPreconditioner ( const lduMatrix::solver & sol,
const dictionary & solverControlsUnused )

Construct from matrix components and preconditioner solver controls.

Definition at line 39 of file DILUPreconditioner.C.

References calcReciprocalD(), Foam::diag(), lduMatrix::solver::matrix(), and lduMatrix::preconditioner::preconditioner().

Here is the call graph for this function:

◆ ~DILUPreconditioner()

virtual ~DILUPreconditioner ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "DILU" )

Runtime type information.

◆ calcReciprocalD()

void calcReciprocalD ( solveScalarField & rD,
const lduMatrix & matrix )
static

Calculate the reciprocal of the preconditioned diagonal.

Definition at line 57 of file DILUPreconditioner.C.

References UList< T >::begin(), lduMatrix::lduAddr(), lduMatrix::lower(), lduAddressing::lowerAddr(), UList< T >::size(), lduMatrix::upper(), and lduAddressing::upperAddr().

Referenced by DILUPreconditioner(), and DILUSmoother::DILUSmoother().

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

◆ 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 88 of file DILUPreconditioner.C.

References UList< T >::begin(), UList< T >::size(), and lduMatrix::preconditioner::solver_.

Here is the call graph for this function:

◆ preconditionT()

void preconditionT ( solveScalarField & wT,
const solveScalarField & rT,
const direction cmpt = 0 ) const
virtual

Return wT the transpose-matrix preconditioned form of residual rT.

Reimplemented from lduMatrix::preconditioner.

Definition at line 132 of file DILUPreconditioner.C.

References UList< T >::begin(), UList< T >::size(), and lduMatrix::preconditioner::solver_.

Here is the call graph for this function:

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