DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
Concrete class implementing Chebyshev filtered orthogonalized subspace iteration solver. More...
#include <chebyshevOrthogonalizedSubspaceIterationSolver.h>
Public Member Functions | |
chebyshevOrthogonalizedSubspaceIterationSolver (const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, double lowerBoundWantedSpectrum, double lowerBoundUnWantedSpectrum, double upperBoundUnWantedSpectrum, const dftParameters &dftParams) | |
Constructor. | |
~chebyshevOrthogonalizedSubspaceIterationSolver () | |
Destructor. | |
void | solve (operatorDFTClass< dftfe::utils::MemorySpace::HOST > &operatorMatrix, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, elpaScalaManager &elpaScala, dataTypes::number *eigenVectorsFlattened, const unsigned int totalNumberWaveFunctions, const unsigned int localVectorSize, std::vector< double > &eigenValues, std::vector< double > &residuals, const MPI_Comm &interBandGroupComm, const MPI_Comm &mpiCommDomain, const bool isFirstFilteringCall, const bool computeResidual, const bool useMixedPrec=false, const bool isFirstScf=false) |
Solve a generalized eigen problem. | |
void | solve (operatorDFTClass< dftfe::utils::MemorySpace::HOST > &operatorMatrix, std::vector< distributedCPUVec< double > > &eigenVectors, std::vector< double > &eigenValues, std::vector< double > &residuals) |
Solve a generalized eigen problem. | |
void | reinitSpectrumBounds (double lowerBoundWantedSpectrum, double lowerBoundUnWantedSpectrum, double upperBoundUnWantedSpectrum) |
reinit spectrum bounds | |
![]() | |
virtual | ~eigenSolverClass ()=0 |
Destructor. | |
Private Attributes | |
const MPI_Comm | d_mpiCommParent |
double | d_lowerBoundWantedSpectrum |
double | d_lowerBoundUnWantedSpectrum |
double | d_upperBoundUnWantedSpectrum |
const dftParameters & | d_dftParams |
dealii::ConditionalOStream | pcout |
dealii::TimerOutput | computing_timer |
Additional Inherited Members | |
![]() | |
enum class | ReturnValueType { SUCCESS = 0 , FAILURE , MAX_ITER_REACHED } |
![]() | |
eigenSolverClass () | |
Constructor. | |
Concrete class implementing Chebyshev filtered orthogonalized subspace iteration solver.
dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::chebyshevOrthogonalizedSubspaceIterationSolver | ( | const MPI_Comm & | mpi_comm_parent, |
const MPI_Comm & | mpi_comm_domain, | ||
double | lowerBoundWantedSpectrum, | ||
double | lowerBoundUnWantedSpectrum, | ||
double | upperBoundUnWantedSpectrum, | ||
const dftParameters & | dftParams ) |
Constructor.
mpi_comm_parent | parent mpi communicator |
mpi_comm_domain | domain decomposition mpi communicator |
lowerBoundWantedSpectrum | Lower Bound of the Wanted Spectrum. |
lowerBoundUnWantedSpectrum | Lower Bound of the UnWanted Spectrum. |
dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::~chebyshevOrthogonalizedSubspaceIterationSolver | ( | ) |
Destructor.
void dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::reinitSpectrumBounds | ( | double | lowerBoundWantedSpectrum, |
double | lowerBoundUnWantedSpectrum, | ||
double | upperBoundUnWantedSpectrum ) |
reinit spectrum bounds
void dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::solve | ( | operatorDFTClass< dftfe::utils::MemorySpace::HOST > & | operatorMatrix, |
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > & | BLASWrapperPtr, | ||
elpaScalaManager & | elpaScala, | ||
dataTypes::number * | eigenVectorsFlattened, | ||
const unsigned int | totalNumberWaveFunctions, | ||
const unsigned int | localVectorSize, | ||
std::vector< double > & | eigenValues, | ||
std::vector< double > & | residuals, | ||
const MPI_Comm & | interBandGroupComm, | ||
const MPI_Comm & | mpiCommDomain, | ||
const bool | isFirstFilteringCall, | ||
const bool | computeResidual, | ||
const bool | useMixedPrec = false, | ||
const bool | isFirstScf = false ) |
Solve a generalized eigen problem.
|
virtual |
Solve a generalized eigen problem.
Implements dftfe::eigenSolverClass.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |