Template Numerical Library: TNL::Solvers::Linear::Preconditioners::Diagonal< Matrices::DistributedMatrix< Matrix > > Class Template Reference

Template Numerical Library version\ main:0b2c40fb1

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
TNL::Solvers::Linear::Preconditioners::Diagonal< Matrices::DistributedMatrix< Matrix > > Class Template Reference

Specialization of the diagonal preconditioner for distributed matrices. More...

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

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

## Public Types
using | DeviceType = typename MatrixType::DeviceType
| Device where the solver will run on and auxiliary data will alloacted on.
using | IndexType = typename MatrixType::IndexType
| Type for indexing.
using | MatrixType = Matrices::DistributedMatrix< Matrix >
| Type of the matrix representing the linear system.
using | RealType = typename MatrixType::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 auxiliary 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 Types inherited from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrices::DistributedMatrix< Matrix > >
using | ConstVectorViewType
| Type for constant vector view.
using | DeviceType
| Device where the solver will run on and auxiliary data will alloacted on.
using | IndexType
| Type for indexing.
using | MatrixPointer
| Type of shared pointer to the matrix.
using | MatrixType
| Type of the matrix representing the linear system.
using | RealType
| Floating point type used for computations.
using | 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 ()=default
| 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.
Public Member Functions inherited from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrices::DistributedMatrix< Matrix > >
virtual | ~Preconditioner ()=default
| 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 | ConstLocalViewType = Containers::VectorView< std::add_const_t< RealType >, DeviceType, IndexType >
using | LocalViewType = Containers::VectorView< RealType, DeviceType, IndexType >
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.
Static Public Member Functions inherited from TNL::Solvers::Linear::Preconditioners::Preconditioner< Matrices::DistributedMatrix< 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< Matrices::DistributedMatrix< Matrix > >

Specialization of the diagonal preconditioner for distributed matrices.

See TNL::Solvers::Linear::Preconditioners::Diagonal

Template Parameters

  Matrix | is a type of matrix describing the linear system.

## Member Typedef Documentation

## ◆ DeviceType

template<typename Matrix>

using TNL::Solvers::Linear::Preconditioners::Diagonal< Matrices::DistributedMatrix< Matrix > >::DeviceType = typename MatrixType::DeviceType

Device where the solver will run on and auxiliary data will alloacted on.

See Devices::Host or Devices::Cuda.

## Member Function Documentation

## ◆ solve()

template<typename Matrix>

void TNL::Solvers::Linear::Preconditioners::Diagonal< Matrices::DistributedMatrix< Matrix > >::solve | ( | ConstVectorViewType | b,
|  | VectorViewType | x ) const
| overridevirtual

This method applies the preconditioner.

Parameters

  b | is the input vector the preconditioner is applied on.
  x | is the result of the preconditioning.

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

## ◆ update()

template<typename Matrix>

void TNL::Solvers::Linear::Preconditioners::Diagonal< Matrices::DistributedMatrix< Matrix > >::update | ( | const MatrixPointer & | matrixPointer | ) |
| overridevirtual

This method updates the preconditioner with respect to given matrix.

Parameters

  matrixPointer | smart 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 file:

- src/TNL/Solvers/Linear/Preconditioners/Diagonal.h