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

Abstract class to encapsulate a preconditioner. More...

#include <Preconditioner.h>

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

Public Types

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

 ~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
 

Detailed Description

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

Abstract class to encapsulate a 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_PINNED, 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::Preconditioner< ValueTypeOperator, ValueTypeOperand, memorySpace >::ValueTypeUnion = blasLapack::scalar_type<ValueTypeOperator, ValueTypeOperand>

Constructor & Destructor Documentation

◆ ~Preconditioner()

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

Default Destructor.

Member Function Documentation

◆ apply()

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

◆ getPreconditionerType()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
virtual PreconditionerType dftefe::linearAlgebra::Preconditioner< ValueTypeOperator, ValueTypeOperand, memorySpace >::getPreconditionerType ( ) const
pure virtual

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