Documentation 6b54b78464
Loading...
Searching...
No Matches
CIdentityPreconditioner< ScalarType > Class Template Referencefinal

No-op preconditioner used when Krylov solvers run without preconditioning. More...

#include <CPreconditioner.hpp>

Inheritance diagram for CIdentityPreconditioner< ScalarType >:
[legend]

Public Member Functions

 CIdentityPreconditioner (CSysMatrix< ScalarType > &matrix_ref)
 
 CIdentityPreconditioner ()=delete
 
void operator() (const CSysVector< ScalarType > &u, CSysVector< ScalarType > &v) const override
 Overload of operator (), applies the preconditioner to "u" storing the result in "v".
 
bool IsIdentity () const override
 Return true to identify the identity preconditioner, may allow some solvers to be more efficient.
 
void Build () override
 Generic "preprocessing" hook derived classes may implement to build the preconditioner.
 
- Public Member Functions inherited from CPreconditioner< ScalarType >
virtual ~CPreconditioner ()=0
 Destructor of the class.
 

Additional Inherited Members

- Static Public Member Functions inherited from CPreconditioner< ScalarType >
static CPreconditioner * Create (ENUM_LINEAR_SOLVER_PREC kind, CSysMatrix< ScalarType > &jacobian, CGeometry *geometry, const CConfig *config)
 Factory method.
 

Detailed Description

template<class ScalarType>
class CIdentityPreconditioner< ScalarType >

No-op preconditioner used when Krylov solvers run without preconditioning.

Note
Also serves Q_IDENTITY: Build() requests quantization of the diagonal blocks, needed by the matrix-vector product shared with the Krylov solver even though this preconditioner's own operation is a no-op. CSysMatrix::QuantizeDiagonalBlocks() when quantization is off.

Constructor & Destructor Documentation

◆ CIdentityPreconditioner() [1/2]

template<class ScalarType >
CIdentityPreconditioner< ScalarType >::CIdentityPreconditioner ( CSysMatrix< ScalarType > &  matrix_ref)
inlineexplicit

◆ CIdentityPreconditioner() [2/2]

template<class ScalarType >
CIdentityPreconditioner< ScalarType >::CIdentityPreconditioner ( )
delete

Member Function Documentation

◆ Build()

template<class ScalarType >
void CIdentityPreconditioner< ScalarType >::Build ( )
inlineoverridevirtual

Generic "preprocessing" hook derived classes may implement to build the preconditioner.

Reimplemented from CPreconditioner< ScalarType >.

◆ IsIdentity()

template<class ScalarType >
bool CIdentityPreconditioner< ScalarType >::IsIdentity ( ) const
inlineoverridevirtual

Return true to identify the identity preconditioner, may allow some solvers to be more efficient.

Reimplemented from CPreconditioner< ScalarType >.

◆ operator()()

template<class ScalarType >
void CIdentityPreconditioner< ScalarType >::operator() ( const CSysVector< ScalarType > &  u,
CSysVector< ScalarType > &  v 
) const
inlineoverridevirtual

Overload of operator (), applies the preconditioner to "u" storing the result in "v".

Implements CPreconditioner< ScalarType >.


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