Template Numerical Library version\ main:94209208
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Types | Static Protected Member Functions | Protected Attributes | List of all members
TNL::Solvers::Linear::Preconditioners::ILU0_impl< Matrix, Real, Devices::Host, Index > Class Template Reference

Implementation of a preconditioner based in Incomplete LU - specialization for CPU. More...

#include <TNL/Solvers/Linear/Preconditioners/ILU0.h>

Inheritance diagram for TNL::Solvers::Linear::Preconditioners::ILU0_impl< Matrix, Real, Devices::Host, Index >:
Inheritance graph
[legend]
Collaboration diagram for TNL::Solvers::Linear::Preconditioners::ILU0_impl< Matrix, Real, Devices::Host, Index >:
Collaboration graph
[legend]

Public Types

using DeviceType = Devices::Host
 Device where the preconditioner will run on and auxillary data will alloacted on.
 
using IndexType = Index
 Type for indexing.
 
using RealType = Real
 Floating point type used for computations.
 
- Public Types inherited from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrix >
using ConstVectorViewType = typename Traits< Matrix >::ConstVectorViewType
 Type for constant vector view.
 
using DeviceType = typename Matrix::DeviceType
 Device where the solver will run on and auxillary data will alloacted on.
 
using IndexType = typename Matrix::IndexType
 Type for indexing.
 
using MatrixPointer = std::shared_ptr< std::add_const_t< MatrixType > >
 Type of shared pointer to the matrix.
 
using MatrixType = Matrix
 Type of the matrix representing the linear system.
 
using RealType = typename Matrix::RealType
 Floating point type used for computations.
 
using VectorViewType = typename Traits< Matrix >::VectorViewType
 Type for vector view.
 

Public Member Functions

void solve (ConstVectorViewType b, VectorViewType x) const override
 This method applies the preconditioner.
 
void update (const MatrixPointer &matrixPointer) override
 This method updates the preconditioner with respect to given matrix.
 
- Public Member Functions inherited from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrix >
virtual ~Preconditioner ()
 Destructor of the preconditioner.
 
virtual bool setup (const Config::ParameterContainer &parameters, const String &prefix="")
 Method for setup of the preconditioner of linear iterative solver based on configuration parameters.
 

Protected Types

using CSR = Matrices::SparseMatrix< RealType, DeviceType, IndexType, Matrices::GeneralMatrix, Algorithms::Segments::CSR >
 

Static Protected Member Functions

template<typename M >
static IndexType getMinColumn (const M &m)
 
template<typename M >
static IndexType getMinColumn (const Matrices::DistributedMatrix< M > &m)
 

Protected Attributes

CSR L
 
CSR U
 

Additional Inherited Members

- Static Public Member Functions inherited from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrix >
static void configSetup (Config::ConfigDescription &config, const String &prefix="")
 This method defines configuration entries for setup of the preconditioner of linear iterative solver.
 

Detailed Description

template<typename Matrix, typename Real, typename Index>
class TNL::Solvers::Linear::Preconditioners::ILU0_impl< Matrix, Real, Devices::Host, Index >

Implementation of a preconditioner based in Incomplete LU - specialization for CPU.

See detailed description.

See TNL::Solvers::Linear::Preconditioners::Preconditioner for example of setup with a linear solver.

Template Parameters
Matrixis type of the matrix describing the linear system.

Member Function Documentation

◆ solve()

template<typename Matrix , typename Real , typename Index >
void TNL::Solvers::Linear::Preconditioners::ILU0_impl< Matrix, Real, Devices::Host, Index >::solve ( ConstVectorViewType b,
VectorViewType x ) const
overridevirtual

This method applies the preconditioner.

Parameters
bis the input vector the preconditioner is applied on.
xis the result of the preconditioning.

Reimplemented from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrix >.

◆ update()

template<typename Matrix , typename Real , typename Index >
void TNL::Solvers::Linear::Preconditioners::ILU0_impl< Matrix, Real, Devices::Host, Index >::update ( const MatrixPointer & matrixPointer)
overridevirtual

This method updates the preconditioner with respect to given matrix.

Parameters
matrixPointersmart pointer (std::shared_ptr) to matrix the preconditioner is related to.

Reimplemented from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrix >.


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