Template Numerical Library version\ main:481315e2
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix > Class Template Reference

Diagonal (Jacobi) preconditioner for iterative solvers of linear systems. More...

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

Inheritance diagram for TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix >:
Inheritance graph
[legend]
Collaboration diagram for TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix >:
Collaboration graph
[legend]

Public Types

using DeviceType = typename Matrix::DeviceType
 Device where the preconditioner will run on and auxillary data will alloacted on.
 
using IndexType = typename Matrix::IndexType
 Type for indexing.
 
using MatrixType = Matrix
 Type of the matrix representing the linear system.
 
using RealType = typename Matrix::RealType
 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

virtual void solve (ConstVectorViewType b, VectorViewType x) const override
 This method applies the preconditioner.
 
virtual 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 VectorType = Containers::Vector< RealType, DeviceType, IndexType >
 

Protected Attributes

VectorType diagonal
 

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>
class TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix >

Diagonal (Jacobi) preconditioner for iterative solvers of linear systems.

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 Typedef Documentation

◆ DeviceType

template<typename Matrix >
using TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix >::DeviceType = typename Matrix::DeviceType

Device where the preconditioner will run on and auxillary data will alloacted on.

See Devices::Host or Devices::Cuda.

Member Function Documentation

◆ solve()

template<typename Matrix >
void TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix >::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 >
void TNL::Solvers::Linear::Preconditioners::Diagonal< Matrix >::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: