A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc. More...
#include <LanczosExtremeEigenSolver.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 = typename HermitianIterativeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::OpContext |
Public Member Functions | |
LanczosExtremeEigenSolver (const size_type maxKrylovSubspaceSize, const size_type numLowerExtermeEigenValues, const size_type numUpperExtermeEigenValues, std::vector< double > &tolerance, double lanczosBetaTolerance, const Vector< ValueTypeOperand, memorySpace > &initialGuess) | |
Constructor. More... | |
LanczosExtremeEigenSolver (const size_type maxKrylovSubspaceSize, const size_type numLowerExtermeEigenValues, const size_type numUpperExtermeEigenValues, std::vector< double > &tolerance, double lanczosBetaTolerance, std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > mpiPatternP2P, std::shared_ptr< LinAlgOpContext< memorySpace > > linAlgOpContext) | |
~LanczosExtremeEigenSolver ()=default | |
Default Destructor. More... | |
void | reinit (const size_type maxKrylovSubspaceSize, const size_type numLowerExtermeEigenValues, const size_type numUpperExtermeEigenValues, std::vector< double > &tolerance, double lanczosBetaTolerance, const Vector< ValueTypeOperand, memorySpace > &initialGuess) |
void | reinit (const size_type maxKrylovSubspaceSize, const size_type numLowerExtermeEigenValues, const size_type numUpperExtermeEigenValues, std::vector< double > &tolerance, double lanczosBetaTolerance, std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > mpiPatternP2P, std::shared_ptr< LinAlgOpContext< memorySpace > > linAlgOpContext) |
EigenSolverError | solve (const OpContext &A, std::vector< RealType > &eigenValues, MultiVector< ValueType, memorySpace > &eigenVectors, bool computeEigenVectors=false, const OpContext &B=IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >(), const OpContext &BInv=IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >()) override |
void | getTridiagonalMatrix (std::vector< RealType > &diagonal, std::vector< RealType > &subDiagonal) const |
Private Attributes | |
Vector< ValueTypeOperand, memorySpace > | d_initialGuess |
size_type | d_maxKrylovSubspaceSize |
size_type | d_numLowerExtermeEigenValues |
size_type | d_numUpperExtermeEigenValues |
std::vector< double > | d_tolerance |
double | d_lanczosBetaTolerance |
std::vector< RealType > | d_diagonal |
std::vector< RealType > | d_subDiagonal |
bool | d_isSolved |
A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc.
ValueTypeOperator | The datatype (float, double, complex<double>, etc.) for the underlying operator |
ValueTypeOperand | The datatype (float, double, complex<double>, etc.) of the vector, matrices, etc. on which the operator will act |
memorySpace | The meory sapce (HOST, DEVICE, HOST_PINNED, etc.) in which the data of the operator and its operands reside |
using dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::OpContext = typename HermitianIterativeEigenSolver<ValueTypeOperator, ValueTypeOperand, memorySpace>::OpContext |
using dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::RealType = blasLapack::real_type<ValueType> |
using dftefe::linearAlgebra::LanczosExtremeEigenSolver< 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)
dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::LanczosExtremeEigenSolver | ( | const size_type | maxKrylovSubspaceSize, |
const size_type | numLowerExtermeEigenValues, | ||
const size_type | numUpperExtermeEigenValues, | ||
std::vector< double > & | tolerance, | ||
double | lanczosBetaTolerance, | ||
const Vector< ValueTypeOperand, memorySpace > & | initialGuess | ||
) |
Constructor.
dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::LanczosExtremeEigenSolver | ( | const size_type | maxKrylovSubspaceSize, |
const size_type | numLowerExtermeEigenValues, | ||
const size_type | numUpperExtermeEigenValues, | ||
std::vector< double > & | tolerance, | ||
double | lanczosBetaTolerance, | ||
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > | mpiPatternP2P, | ||
std::shared_ptr< LinAlgOpContext< memorySpace > > | linAlgOpContext | ||
) |
|
default |
Default Destructor.
void dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::getTridiagonalMatrix | ( | std::vector< RealType > & | diagonal, |
std::vector< RealType > & | subDiagonal | ||
) | const |
void dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::reinit | ( | const size_type | maxKrylovSubspaceSize, |
const size_type | numLowerExtermeEigenValues, | ||
const size_type | numUpperExtermeEigenValues, | ||
std::vector< double > & | tolerance, | ||
double | lanczosBetaTolerance, | ||
const Vector< ValueTypeOperand, memorySpace > & | initialGuess | ||
) |
void dftefe::linearAlgebra::LanczosExtremeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::reinit | ( | const size_type | maxKrylovSubspaceSize, |
const size_type | numLowerExtermeEigenValues, | ||
const size_type | numUpperExtermeEigenValues, | ||
std::vector< double > & | tolerance, | ||
double | lanczosBetaTolerance, | ||
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > | mpiPatternP2P, | ||
std::shared_ptr< LinAlgOpContext< memorySpace > > | linAlgOpContext | ||
) |
|
override |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |