DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace > Class Template Reference

Class to encapsulate the Jacobi preconditioner. More...

#include <PreconditionerJacobi.h>

Inheritance diagram for dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >:
Collaboration diagram for dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >:

Public Types

using ValueTypeUnion = blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >
 
- Public Types inherited from dftefe::linearAlgebra::Preconditioner< ValueTypeOperator, ValueTypeOperand, memorySpace >
using ValueTypeUnion = blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >
 
- Public Types inherited from dftefe::linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >
using ValueTypeUnion = blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >
 

Public Member Functions

 PreconditionerJacobi (const Vector< ValueTypeOperator, memorySpace > &diagonal)
 Constructor. More...
 
 ~PreconditionerJacobi ()=default
 Default Destructor. More...
 
void apply (MultiVector< ValueTypeOperand, memorySpace > &X, MultiVector< ValueTypeUnion, memorySpace > &Y) const override
 
PreconditionerType getPreconditionerType () const override
 
- Public Member Functions inherited from dftefe::linearAlgebra::Preconditioner< ValueTypeOperator, ValueTypeOperand, memorySpace >
 ~Preconditioner ()=default
 Default Destructor. More...
 
virtual void apply (MultiVector< ValueTypeOperand, memorySpace > &X, MultiVector< ValueTypeUnion, memorySpace > &Y) const =0
 
virtual PreconditionerType getPreconditionerType () const =0
 
- Public Member Functions inherited from dftefe::linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >
 ~OperatorContext ()=default
 Default Destructor. More...
 
virtual void apply (MultiVector< ValueTypeOperand, memorySpace > &X, MultiVector< ValueTypeUnion, memorySpace > &Y) const =0
 

Private Attributes

Vector< ValueTypeOperator, memorySpace > d_diagonalInv
 
PreconditionerType d_pcType
 

Detailed Description

template<typename ValueTypeOperator, typename ValueTypeOperand, utils::MemorySpace memorySpace>
class dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >

Class to encapsulate the Jacobi preconditioner.

Template Parameters
ValueTypeOperatorThe datatype (float, double, complex<double>, etc.) for the underlying preconditioner
ValueTypeOperandThe datatype (float, double, complex<double>, etc.) of the vector, matrices, etc. on which the preconditioner will act.
memorySpaceThe meory sapce (HOST, DEVICE, HOST_PINNES, etc.) in which the data of the preconditioner and its operands reside

Member Typedef Documentation

◆ ValueTypeUnion

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
using dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::ValueTypeUnion = blasLapack::scalar_type<ValueTypeOperator, ValueTypeOperand>

Constructor & Destructor Documentation

◆ PreconditionerJacobi()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::PreconditionerJacobi ( const Vector< ValueTypeOperator, memorySpace > &  diagonal)

Constructor.

Parameters
[in]diagonalVector object containing the diagonal vector of a matrix. The Vector can be serial or distributed.
Here is the call graph for this function:

◆ ~PreconditionerJacobi()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::~PreconditionerJacobi ( )
default

Default Destructor.

Member Function Documentation

◆ apply()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
void dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::apply ( MultiVector< ValueTypeOperand, memorySpace > &  X,
MultiVector< ValueTypeUnion, memorySpace > &  Y 
) const
overridevirtual

◆ getPreconditionerType()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
PreconditionerType dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::getPreconditionerType
overridevirtual

Member Data Documentation

◆ d_diagonalInv

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
Vector<ValueTypeOperator, memorySpace> dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::d_diagonalInv
private

◆ d_pcType

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
PreconditionerType dftefe::linearAlgebra::PreconditionerJacobi< ValueTypeOperator, ValueTypeOperand, memorySpace >::d_pcType
private

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