Loading...
Searching...
No Matches
TDILUPreconditioner< Type, DType, LUType > Class Template Reference

Simplified diagonal-based incomplete LU preconditioner for asymmetric matrices. More...

#include <TDILUPreconditioner.H>

Inheritance diagram for TDILUPreconditioner< Type, DType, LUType >:
Collaboration diagram for TDILUPreconditioner< Type, DType, LUType >:

Public Member Functions

 TypeName ("DILU")
 Runtime type information.
 TDILUPreconditioner (const typename LduMatrix< Type, DType, LUType >::solver &sol, const dictionary &preconditionerDict)
 Construct from matrix components and preconditioner data dictionary.
virtual ~TDILUPreconditioner ()=default
virtual void precondition (Field< Type > &wA, const Field< Type > &rA) const
 Return wA the preconditioned form of residual rA.
virtual void preconditionT (Field< Type > &wT, const Field< Type > &rT) const
 Return wT the transpose-matrix preconditioned form of.
Public Member Functions inherited from LduMatrix< Type, DType, LUType >::preconditioner
virtual const wordtype () const =0
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, preconditioner, symMatrix,(const solver &sol, const dictionary &preconditionerDict),(sol, preconditionerDict))
 declareRunTimeSelectionTable (autoPtr, preconditioner, asymMatrix,(const solver &sol, const dictionary &preconditionerDict),(sol, preconditionerDict))
 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 dictionary.

Static Public Member Functions

static void calcInvD (Field< DType > &rD, const LduMatrix< Type, DType, LUType > &matrix)
 Calculate the reciprocal of the preconditioned diagonal.
Static Public Member Functions inherited from LduMatrix< Type, DType, LUType >::preconditioner
static autoPtr< preconditionerNew (const solver &sol, const dictionary &preconditionerDict)
 Return a new preconditioner.

Additional Inherited Members

Protected Attributes inherited from LduMatrix< Type, DType, LUType >::preconditioner
const solversolver_
 Reference to the base-solver this preconditioner is used with.

Detailed Description

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

Simplified diagonal-based incomplete LU preconditioner for asymmetric matrices.

The inverse (reciprocal for scalar) of the preconditioned diagonal is calculated and stored.

Source files

Definition at line 52 of file TDILUPreconditioner.H.

Constructor & Destructor Documentation

◆ TDILUPreconditioner()

template<class Type, class DType, class LUType>
TDILUPreconditioner ( const typename LduMatrix< Type, DType, LUType >::solver & sol,
const dictionary & preconditionerDict )

Construct from matrix components and preconditioner data dictionary.

Definition at line 26 of file TDILUPreconditioner.C.

References calcInvD(), Foam::diag(), LduMatrix< Type, DType, LUType >::solver::matrix(), and LduMatrix< Type, DType, LUType >::preconditioner::preconditioner().

Here is the call graph for this function:

◆ ~TDILUPreconditioner()

template<class Type, class DType, class LUType>
virtual ~TDILUPreconditioner ( )
virtualdefault

Member Function Documentation

◆ TypeName()

template<class Type, class DType, class LUType>
TypeName ( "DILU" )

Runtime type information.

◆ calcInvD()

template<class Type, class DType, class LUType>
void calcInvD ( Field< DType > & rD,
const LduMatrix< Type, DType, LUType > & matrix )
static

Calculate the reciprocal of the preconditioned diagonal.

Definition at line 42 of file TDILUPreconditioner.C.

References UList< T >::begin(), Foam::dot(), Foam::inv(), LduMatrix< Type, DType, LUType >::lduAddr(), LduMatrix< Type, DType, LUType >::lower(), lduAddressing::lowerAddr(), UList< T >::size(), LduMatrix< Type, DType, LUType >::upper(), and lduAddressing::upperAddr().

Referenced by TDILUPreconditioner().

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

◆ precondition()

template<class Type, class DType, class LUType>
void precondition ( Field< Type > & wA,
const Field< Type > & rA ) const
virtual

Return wA the preconditioned form of residual rA.

Implements LduMatrix< Type, DType, LUType >::preconditioner.

Definition at line 75 of file TDILUPreconditioner.C.

References UList< T >::begin(), Foam::dot(), UList< T >::size(), and LduMatrix< Type, DType, LUType >::preconditioner::solver_.

Here is the call graph for this function:

◆ preconditionT()

template<class Type, class DType, class LUType>
void preconditionT ( Field< Type > & wT,
const Field< Type > & rT ) const
virtual

Return wT the transpose-matrix preconditioned form of.

residual rT.

Reimplemented from LduMatrix< Type, DType, LUType >::preconditioner.

Definition at line 125 of file TDILUPreconditioner.C.

References UList< T >::begin(), Foam::dot(), UList< T >::size(), and LduMatrix< Type, DType, LUType >::preconditioner::solver_.

Here is the call graph for this function:

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