Template Numerical Library version\ main:94209208
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 > >:
Inheritance graph
[legend]
Collaboration diagram for TNL::Solvers::Linear::Preconditioners::Diagonal< Matrices::DistributedMatrix< Matrix > >:
Collaboration graph
[legend]

Public Types

using DeviceType = typename MatrixType::DeviceType
 Device where the solver will run on and auxillary 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< Matrices::DistributedMatrix< Matrix > >
using ConstVectorViewType
 Type for constant vector view.
 
using DeviceType
 Device where the solver will run on and auxillary 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

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< Matrices::DistributedMatrix< 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.
 
virtual void solve (ConstVectorViewType b, VectorViewType x) const
 This method applies the preconditioner.
 

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< 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
Matrixis 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 auxillary 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
bis the input vector the preconditioner is applied on.
xis the result of the preconditioning.

◆ 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
matrixPointersmart pointer (std::shared_ptr) to matrix the preconditioner is related to.

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


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