A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc. More...
#include <ChebyshevFilteredEigenSolver.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 | |
ChebyshevFilteredEigenSolver (const double wantedSpectrumLowerBound, const double wantedSpectrumUpperBound, const double unWantedSpectrumUpperBound, const double polynomialDegree, const double illConditionTolerance, MultiVector< ValueTypeOperand, memorySpace > &eigenSubspaceGuess, const size_type eigenVectorBlockSize=0) | |
Constructor. More... | |
~ChebyshevFilteredEigenSolver ()=default | |
Destructor. More... | |
void | reinit (const double wantedSpectrumLowerBound, const double wantedSpectrumUpperBound, const double unWantedSpectrumUpperBound, const double polynomialDegree, const double illConditionTolerance, MultiVector< ValueTypeOperand, memorySpace > &eigenSubspaceGuess, const size_type eigenVectorBlockSize) |
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 |
MultiVector< ValueType, memorySpace > & | getFilteredSubspace () |
MultiVector< ValueType, memorySpace > & | getOrthogonalizedFilteredSubspace () |
Private Attributes | |
double | d_wantedSpectrumLowerBound |
double | d_wantedSpectrumUpperBound |
double | d_unWantedSpectrumUpperBound |
double | d_polynomialDegree |
double | d_illConditionTolerance |
MultiVector< ValueTypeOperand, memorySpace > * | d_eigenSubspaceGuess |
size_type | d_eigenVectorBlockSize |
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_filteredSubspaceOrtho |
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_filteredSubspace |
std::shared_ptr< RayleighRitzEigenSolver< ValueTypeOperator, ValueType, memorySpace > > | d_rr |
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::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::OpContext = typename HermitianIterativeEigenSolver<ValueTypeOperator, ValueTypeOperand, memorySpace>::OpContext |
using dftefe::linearAlgebra::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::RealType = blasLapack::real_type<ValueType> |
using dftefe::linearAlgebra::ChebyshevFilteredEigenSolver< 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::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::ChebyshevFilteredEigenSolver | ( | const double | wantedSpectrumLowerBound, |
const double | wantedSpectrumUpperBound, | ||
const double | unWantedSpectrumUpperBound, | ||
const double | polynomialDegree, | ||
const double | illConditionTolerance, | ||
MultiVector< ValueTypeOperand, memorySpace > & | eigenSubspaceGuess, | ||
const size_type | eigenVectorBlockSize = 0 |
||
) |
Constructor.
|
default |
Destructor.
MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > & dftefe::linearAlgebra::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::getFilteredSubspace |
MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > & dftefe::linearAlgebra::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::getOrthogonalizedFilteredSubspace |
void dftefe::linearAlgebra::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::reinit | ( | const double | wantedSpectrumLowerBound, |
const double | wantedSpectrumUpperBound, | ||
const double | unWantedSpectrumUpperBound, | ||
const double | polynomialDegree, | ||
const double | illConditionTolerance, | ||
MultiVector< ValueTypeOperand, memorySpace > & | eigenSubspaceGuess, | ||
const size_type | eigenVectorBlockSize | ||
) |
|
override |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |