|
| using | ValueType = typename linearAlgebra::HermitianIterativeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::ValueType |
| | 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 = typename linearAlgebra::HermitianIterativeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::RealType |
| |
| using | OpContext = typename linearAlgebra::HermitianIterativeEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >::OpContext |
| |
|
| | KohnShamEigenSolver (const size_type numElectrons, const double smearingTemperature, const double fermiEnergyTolerance, const double fracOccupancyTolerance, const double eigenSolveResidualTolerance, const size_type maxChebyshevFilterPass, linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &waveFunctionSubspaceGuess, linearAlgebra::Vector< ValueTypeOperand, memorySpace > &lanczosGuess, const linearAlgebra::ElpaScalapackManager &elpaScala, bool isResidualChebyshevFilter=true, const size_type waveFunctionBatchSize=0, const OpContext &MLanczos=linearAlgebra::IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >(), const OpContext &MInvLanczos=linearAlgebra::IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >(), linearAlgebra::OrthogonalizationType orthoType=linearAlgebra::OrthogonalizationType::CHOLESKY_GRAMSCHMIDT, bool storeIntermediateSubspaces=false) |
| | Constructor The occupation Tolerance is such that one considers the Kohn Sham Orbitals occupied if occupationTolerance < f_i(from
diftribution) < 1-1e-12. More...
|
| |
| | ~KohnShamEigenSolver ()=default |
| | Default Destructor. More...
|
| |
| void | reinitBasis (linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &waveFunctionSubspaceGuess, linearAlgebra::Vector< ValueTypeOperand, memorySpace > &lanczosGuess, const OpContext &MLanczos=linearAlgebra::IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >(), const OpContext &MInvLanczos=linearAlgebra::IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >()) |
| |
| void | reinitBounds (double wantedSpectrumLowerBound, double wantedSpectrumUpperBound) |
| |
| RealType | getFermiEnergy () |
| |
| std::vector< RealType > | getFractionalOccupancy () |
| |
| std::vector< RealType > | getEigenSolveResidualNorm () |
| |
| void | setChebyPolyScalingFactor (double scalingFactor) |
| |
| void | setChebyshevPolynomialDegree (size_type chebyPolyDeg) |
| |
| void | setResidualChebyshevFilterFlag (bool flag) |
| |
| linearAlgebra::EigenSolverError | solve (const OpContext &kohnShamOperator, std::vector< RealType > &kohnShamEnergies, linearAlgebra::MultiVector< ValueType, memorySpace > &kohnShamWaveFunctions, bool computeWaveFunctions=false, const OpContext &M=linearAlgebra::IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >(), const OpContext &MInv=linearAlgebra::IdentityOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace >()) override |
| |
| linearAlgebra::MultiVector< ValueType, memorySpace > & | getFilteredSubspace () |
| |
| linearAlgebra::MultiVector< ValueType, memorySpace > & | getOrthogonalizedFilteredSubspace () |
| |
|
| double | d_smearingTemperature |
| |
| double | d_fermiEnergyTolerance |
| |
| double | d_fracOccupancyTolerance |
| |
| double | d_eigenSolveResidualTolerance |
| |
| size_type | d_maxChebyshevFilterPass |
| |
| size_type | d_chebyshevPolynomialDegree |
| |
| size_type | d_numWantedEigenvalues |
| |
| size_type | d_waveFunctionBatchSize |
| |
| linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > * | d_waveFunctionSubspaceGuess |
| |
| linearAlgebra::Vector< ValueTypeOperand, memorySpace > * | d_lanczosGuess |
| |
| const OpContext * | d_MLanczos |
| |
| const OpContext * | d_MInvLanczos |
| |
| std::vector< RealType > | d_fracOccupancy |
| |
| std::vector< RealType > | d_eigSolveResNorm |
| |
| RealType | d_fermiEnergy |
| |
| bool | d_isSolved |
| |
| const size_type | d_numElectrons |
| |
| utils::ConditionalOStream | d_rootCout |
| |
| double | d_wantedSpectrumLowerBound |
| |
| double | d_wantedSpectrumUpperBound |
| |
| bool | d_isBoundKnown |
| |
| double | d_chebyPolyScalingFactor |
| |
| bool | d_setChebyPolDegExternally |
| |
| std::shared_ptr< linearAlgebra::ChebyshevFilteredEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace > > | d_chfsi |
| |
| linearAlgebra::MultiVector< ValueType, memorySpace > * | d_filteredSubspaceOrtho |
| |
| linearAlgebra::MultiVector< ValueType, memorySpace > * | d_filteredSubspace |
| |
| utils::Profiler | d_p |
| |
| bool | d_isResidualChebyFilter |
| |
| const bool | d_storeIntermediateSubspaces |
| |
| size_type | d_batchSizeSmall |
| |
| std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > | d_waveFnBatch |
| |
| std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > | d_HXBatch |
| |
| std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > | d_MXBatch |
| |
| std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > | d_waveFnBatchSmall |
| |
| std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > | d_HXBatchSmall |
| |
| std::shared_ptr< linearAlgebra::MultiVector< ValueType, memorySpace > > | d_MXBatchSmall |
| |
| utils::MemoryStorage< ValueType, memorySpace > | d_kohnShamEnergiesMemspace |
| |
| utils::MemoryStorage< ValueType, memorySpace > | d_nOnes |
| |
| linearAlgebra::OrthogonalizationType | d_orthoType |
| |
| const linearAlgebra::ElpaScalapackManager * | d_elpaScala |
| |
template<typename ValueTypeOperator, typename ValueTypeOperand,
utils::MemorySpace memorySpace>
class dftefe::ksdft::KohnShamEigenSolver< ValueTypeOperator, ValueTypeOperand, memorySpace >
- 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 |