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

A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc. More...

#include <RayleighRitzEigenSolver.h>

Public Types

using ValueType = blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >
 define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e.g., between double and complex<double>, complex<double> is the bigger set) More...
 
using RealType = blasLapack::real_type< ValueType >
 
using OpContext = OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >
 

Public Member Functions

 RayleighRitzEigenSolver ()
 Constructor. More...
 
 ~RayleighRitzEigenSolver ()=default
 Default Destructor. More...
 
EigenSolverError solve (const OpContext &A, MultiVector< ValueTypeOperand, memorySpace > &X, std::vector< RealType > &eigenValues, MultiVector< ValueType, memorySpace > &eigenVectors, bool computeEigenVectors=false)
 
EigenSolverError solve (const OpContext &A, const OpContext &B, MultiVector< ValueTypeOperand, memorySpace > &X, std::vector< RealType > &eigenValues, MultiVector< ValueType, memorySpace > &eigenVectors, bool computeEigenVectors=false)
 

Detailed Description

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

A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc.

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

Member Typedef Documentation

◆ OpContext

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
using dftefe::linearAlgebra::RayleighRitzEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::OpContext = OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace>

◆ RealType

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
using dftefe::linearAlgebra::RayleighRitzEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::RealType = blasLapack::real_type<ValueType>

◆ ValueType

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

define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e.g., between double and complex<double>, complex<double> is the bigger set)

Constructor & Destructor Documentation

◆ RayleighRitzEigenSolver()

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

Constructor.

◆ ~RayleighRitzEigenSolver()

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

Default Destructor.

Member Function Documentation

◆ solve() [1/2]

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
EigenSolverError dftefe::linearAlgebra::RayleighRitzEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::solve ( const OpContext A,
const OpContext B,
MultiVector< ValueTypeOperand, memorySpace > &  X,
std::vector< RealType > &  eigenValues,
MultiVector< ValueType, memorySpace > &  eigenVectors,
bool  computeEigenVectors = false 
)
Here is the call graph for this function:

◆ solve() [2/2]

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
EigenSolverError dftefe::linearAlgebra::RayleighRitzEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::solve ( const OpContext A,
MultiVector< ValueTypeOperand, memorySpace > &  X,
std::vector< RealType > &  eigenValues,
MultiVector< ValueType, memorySpace > &  eigenVectors,
bool  computeEigenVectors = false 
)
Here is the call graph for this function:

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