|
| ChebyshevFilteredEigenSolver (const double wantedSpectrumLowerBound, const double wantedSpectrumUpperBound, const double unWantedSpectrumUpperBound, const double polynomialDegree, const double illConditionTolerance, MultiVector< ValueTypeOperand, memorySpace > &eigenSubspaceGuess, const ElpaScalapackManager &elpaScala, bool isResidualChebyshevFilter=true, const size_type eigenVectorBatchSize=0, OrthogonalizationType orthoType=OrthogonalizationType::CHOLESKY_GRAMSCHMIDT, bool storeIntermediateSubspaces=false) |
| 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) |
|
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 () |
|
|
double | d_wantedSpectrumLowerBound |
|
double | d_wantedSpectrumUpperBound |
|
double | d_unWantedSpectrumUpperBound |
|
double | d_polynomialDegree |
|
double | d_illConditionTolerance |
|
MultiVector< ValueTypeOperand, memorySpace > * | d_eigenSubspaceGuess |
|
const size_type | d_eigenVecBatchSize |
|
const bool | d_storeIntermediateSubspaces |
|
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_filteredSubspace |
|
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_filteredSubspaceOrtho |
|
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XinBatchSmall |
|
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XinBatch |
|
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XoutBatchSmall |
|
std::shared_ptr< MultiVector< ValueType, memorySpace > > | d_XoutBatch |
|
std::shared_ptr< RayleighRitzEigenSolver< ValueTypeOperator, ValueType, memorySpace > > | d_rr |
|
std::shared_ptr< OrthonormalizationFunctions< ValueTypeOperator, ValueType, memorySpace > > | d_ortho |
|
utils::Profiler | d_p |
|
const bool | d_isResidualChebyFilter |
|
size_type | d_batchSizeSmall |
|
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > | d_mpiPatternP2P |
|
bool | d_printL2Norms |
|
OrthogonalizationType | d_orthoType |
|
const ElpaScalapackManager * | d_elpaScala |
|
template<typename ValueTypeOperator, typename ValueTypeOperand,
utils::MemorySpace memorySpace>
class dftefe::linearAlgebra::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >
A derived class of OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc.
- Template Parameters
-
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 |