DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::chebyshevOrthogonalizedSubspaceIterationSolver Class Reference

Concrete class implementing Chebyshev filtered orthogonalized subspace iteration solver. More...

#include <chebyshevOrthogonalizedSubspaceIterationSolver.h>

Inheritance diagram for dftfe::chebyshevOrthogonalizedSubspaceIterationSolver:
dftfe::eigenSolverClass

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
 
- Public Member Functions inherited from dftfe::eigenSolverClass
virtual ~eigenSolverClass ()=0
 Destructor.
 

Private Attributes

const MPI_Comm d_mpiCommParent
 
double d_lowerBoundWantedSpectrum
 
double d_lowerBoundUnWantedSpectrum
 
double d_upperBoundUnWantedSpectrum
 
const dftParametersd_dftParams
 
dealii::ConditionalOStream pcout
 
dealii::TimerOutput computing_timer
 

Additional Inherited Members

- Public Types inherited from dftfe::eigenSolverClass
enum class  ReturnValueType { SUCCESS = 0 , FAILURE , MAX_ITER_REACHED }
 
- Protected Member Functions inherited from dftfe::eigenSolverClass
 eigenSolverClass ()
 Constructor.
 

Detailed Description

Concrete class implementing Chebyshev filtered orthogonalized subspace iteration solver.

Author
Phani Motamarri, Sambit Das

Constructor & Destructor Documentation

◆ chebyshevOrthogonalizedSubspaceIterationSolver()

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.

Parameters
mpi_comm_parentparent mpi communicator
mpi_comm_domaindomain decomposition mpi communicator
lowerBoundWantedSpectrumLower Bound of the Wanted Spectrum.
lowerBoundUnWantedSpectrumLower Bound of the UnWanted Spectrum.

◆ ~chebyshevOrthogonalizedSubspaceIterationSolver()

dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::~chebyshevOrthogonalizedSubspaceIterationSolver ( )

Destructor.

Member Function Documentation

◆ reinitSpectrumBounds()

void dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::reinitSpectrumBounds ( double lowerBoundWantedSpectrum,
double lowerBoundUnWantedSpectrum,
double upperBoundUnWantedSpectrum )

reinit spectrum bounds

◆ solve() [1/2]

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.

◆ solve() [2/2]

void dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::solve ( operatorDFTClass< dftfe::utils::MemorySpace::HOST > & operatorMatrix,
std::vector< distributedCPUVec< double > > & eigenVectors,
std::vector< double > & eigenValues,
std::vector< double > & residuals )
virtual

Solve a generalized eigen problem.

Implements dftfe::eigenSolverClass.

Member Data Documentation

◆ computing_timer

dealii::TimerOutput dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::computing_timer
private

◆ d_dftParams

const dftParameters& dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::d_dftParams
private

◆ d_lowerBoundUnWantedSpectrum

double dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::d_lowerBoundUnWantedSpectrum
private

◆ d_lowerBoundWantedSpectrum

double dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::d_lowerBoundWantedSpectrum
private

◆ d_mpiCommParent

const MPI_Comm dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::d_mpiCommParent
private

◆ d_upperBoundUnWantedSpectrum

double dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::d_upperBoundUnWantedSpectrum
private

◆ pcout

dealii::ConditionalOStream dftfe::chebyshevOrthogonalizedSubspaceIterationSolver::pcout
private

The documentation for this class was generated from the following file: