26#ifndef dftefeLanczosExtremeEigenSolver_h
27#define dftefeLanczosExtremeEigenSolver_h
41 namespace linearAlgebra
54 template <
typename ValueTypeOperator,
55 typename ValueTypeOperand,
58 :
public HermitianIterativeEigenSolver<ValueTypeOperator,
73 typename HermitianIterativeEigenSolver<ValueTypeOperator,
82 const size_type numLowerExtermeEigenValues,
83 const size_type numUpperExtermeEigenValues,
84 std::vector<double> & tolerance,
85 double lanczosBetaTolerance,
90 const size_type numLowerExtermeEigenValues,
91 const size_type numUpperExtermeEigenValues,
92 std::vector<double> &tolerance,
93 double lanczosBetaTolerance,
106 const size_type numLowerExtermeEigenValues,
107 const size_type numUpperExtermeEigenValues,
108 std::vector<double> &tolerance,
109 double lanczosBetaTolerance,
114 const size_type numLowerExtermeEigenValues,
115 const size_type numUpperExtermeEigenValues,
116 std::vector<double> &tolerance,
117 double lanczosBetaTolerance,
124 std::vector<RealType> & eigenValues,
126 bool computeEigenVectors =
false,
133 memorySpace>())
override;
137 std::vector<RealType> &subDiagonal)
const;
Abstract class to encapsulate the action of a discrete operator on vectors, matrices,...
Definition: IdentityOperatorContext.h:53
A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors,...
Definition: LanczosExtremeEigenSolver.h:61
std::vector< RealType > d_diagonal
Definition: LanczosExtremeEigenSolver.h:146
size_type d_numUpperExtermeEigenValues
Definition: LanczosExtremeEigenSolver.h:143
size_type d_maxKrylovSubspaceSize
Definition: LanczosExtremeEigenSolver.h:141
Vector< ValueTypeOperand, memorySpace > d_initialGuess
Definition: LanczosExtremeEigenSolver.h:140
void getTridiagonalMatrix(std::vector< RealType > &diagonal, std::vector< RealType > &subDiagonal) const
Definition: LanczosExtremeEigenSolver.t.cpp:589
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)
Definition: LanczosExtremeEigenSolver.t.cpp:138
~LanczosExtremeEigenSolver()=default
Default Destructor.
double d_lanczosBetaTolerance
Definition: LanczosExtremeEigenSolver.h:145
size_type d_numLowerExtermeEigenValues
Definition: LanczosExtremeEigenSolver.h:142
bool d_isSolved
Definition: LanczosExtremeEigenSolver.h:148
blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > ValueType
define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e....
Definition: LanczosExtremeEigenSolver.h:70
std::vector< RealType > d_subDiagonal
Definition: LanczosExtremeEigenSolver.h:147
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
Definition: LanczosExtremeEigenSolver.t.cpp:220
typename HermitianIterativeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::OpContext OpContext
Definition: LanczosExtremeEigenSolver.h:75
blasLapack::real_type< ValueType > RealType
Definition: LanczosExtremeEigenSolver.h:71
std::vector< double > d_tolerance
Definition: LanczosExtremeEigenSolver.h:144
Definition: LinAlgOpContext.h:38
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
A class that encapsulates a vector. This is a vector in the mathematical sense and not in the sense o...
Definition: Vector.h:122
A class template to store the communication pattern (i.e., which entries/nodes to receive from which ...
Definition: MPIPatternP2P.h:197
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
blas::real_type< ValueType > real_type
Definition: BlasLapackTypedef.h:64
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8
Definition: LinearAlgebraTypes.h:127