DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::operatorDFTClass< memorySpace > Class Template Referenceabstract

Base class for building the DFT operator and the action of operator on a vector. More...

#include <operator.h>

Inheritance diagram for dftfe::operatorDFTClass< memorySpace >:
dftfe::KohnShamHamiltonianOperator< memorySpace >

Public Member Functions

virtual ~operatorDFTClass ()
 Destructor.
 
virtual dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & getScratchFEMultivector (const unsigned int numVectors, const unsigned int index)=0
 
virtual dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & getScratchFEMultivectorSinglePrec (const unsigned int numVectors, const unsigned int index)=0
 
virtual void init (const std::vector< double > &kPointCoordinates, const std::vector< double > &kPointWeights)=0
 
virtual void reinitkPointSpinIndex (const unsigned int kPointIndex, const unsigned int spinIndex)=0
 
virtual void reinitNumberWavefunctions (const unsigned int numWfc)=0
 
virtual void HX (dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)=0
 
virtual void HXWithLowdinOrthonormalisedInput (dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)=0
 
virtual void overlapMatrixTimesX (dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarOX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool useApproximateMatrixEntries=true)=0
 
virtual void overlapInverseMatrixTimesX (dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarOinvX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst)=0
 
virtual void overlapInverseMatrixTimesX (dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, const double scalarOinvX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst)=0
 
virtual void HXCheby (dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false, const bool skip1=false, const bool skip2=false, const bool skip3=false)=0
 
virtual void HXCheby (dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, const double scalarHX, const double scalarY, const double scalarX, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst, const bool onlyHPrimePartForFirstOrderDensityMatResponse=false, const bool skip1=false, const bool skip2=false, const bool skip3=false)=0
 
virtual dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOST > * getOverloadedConstraintMatrixHost () const =0
 
virtual dftUtils::constraintMatrixInfo< memorySpace > * getOverloadedConstraintMatrix () const =0
 
virtual const MPI_Comm & getMPICommunicatorDomain ()=0
 
virtual const dftfe::utils::MemoryStorage< double, memorySpace > & getInverseSqrtMassVector ()=0
 
virtual const dftfe::utils::MemoryStorage< double, memorySpace > & getSqrtMassVector ()=0
 

Detailed Description

template<dftfe::utils::MemorySpace memorySpace>
class dftfe::operatorDFTClass< memorySpace >

Base class for building the DFT operator and the action of operator on a vector.

Author
Phani Motamarri, Sambit Das

Member Function Documentation

◆ getInverseSqrtMassVector()

template<dftfe::utils::MemorySpace memorySpace>
virtual const dftfe::utils::MemoryStorage< double, memorySpace > & dftfe::operatorDFTClass< memorySpace >::getInverseSqrtMassVector ( )
pure virtual

◆ getMPICommunicatorDomain()

template<dftfe::utils::MemorySpace memorySpace>
virtual const MPI_Comm & dftfe::operatorDFTClass< memorySpace >::getMPICommunicatorDomain ( )
pure virtual

◆ getOverloadedConstraintMatrix()

template<dftfe::utils::MemorySpace memorySpace>
virtual dftUtils::constraintMatrixInfo< memorySpace > * dftfe::operatorDFTClass< memorySpace >::getOverloadedConstraintMatrix ( ) const
pure virtual

◆ getOverloadedConstraintMatrixHost()

template<dftfe::utils::MemorySpace memorySpace>
virtual dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOST > * dftfe::operatorDFTClass< memorySpace >::getOverloadedConstraintMatrixHost ( ) const
pure virtual

◆ getScratchFEMultivector()

template<dftfe::utils::MemorySpace memorySpace>
virtual dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dftfe::operatorDFTClass< memorySpace >::getScratchFEMultivector ( const unsigned int numVectors,
const unsigned int index )
pure virtual

◆ getScratchFEMultivectorSinglePrec()

template<dftfe::utils::MemorySpace memorySpace>
virtual dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & dftfe::operatorDFTClass< memorySpace >::getScratchFEMultivectorSinglePrec ( const unsigned int numVectors,
const unsigned int index )
pure virtual

◆ getSqrtMassVector()

template<dftfe::utils::MemorySpace memorySpace>
virtual const dftfe::utils::MemoryStorage< double, memorySpace > & dftfe::operatorDFTClass< memorySpace >::getSqrtMassVector ( )
pure virtual

◆ HX()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::HX ( dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & src,
const double scalarHX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dst,
const bool onlyHPrimePartForFirstOrderDensityMatResponse = false )
pure virtual

◆ HXCheby() [1/2]

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::HXCheby ( dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & src,
const double scalarHX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dst,
const bool onlyHPrimePartForFirstOrderDensityMatResponse = false,
const bool skip1 = false,
const bool skip2 = false,
const bool skip3 = false )
pure virtual

◆ HXCheby() [2/2]

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::HXCheby ( dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & src,
const double scalarHX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & dst,
const bool onlyHPrimePartForFirstOrderDensityMatResponse = false,
const bool skip1 = false,
const bool skip2 = false,
const bool skip3 = false )
pure virtual

◆ HXWithLowdinOrthonormalisedInput()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::HXWithLowdinOrthonormalisedInput ( dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & src,
const double scalarHX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dst,
const bool onlyHPrimePartForFirstOrderDensityMatResponse = false )
pure virtual

◆ init()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::init ( const std::vector< double > & kPointCoordinates,
const std::vector< double > & kPointWeights )
pure virtual

◆ overlapInverseMatrixTimesX() [1/2]

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::overlapInverseMatrixTimesX ( dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & src,
const double scalarOinvX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dst )
pure virtual

◆ overlapInverseMatrixTimesX() [2/2]

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::overlapInverseMatrixTimesX ( dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & src,
const double scalarOinvX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & dst )
pure virtual

◆ overlapMatrixTimesX()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::overlapMatrixTimesX ( dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & src,
const double scalarOX,
const double scalarY,
const double scalarX,
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dst,
const bool useApproximateMatrixEntries = true )
pure virtual

◆ reinitkPointSpinIndex()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::reinitkPointSpinIndex ( const unsigned int kPointIndex,
const unsigned int spinIndex )
pure virtual

◆ reinitNumberWavefunctions()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::operatorDFTClass< memorySpace >::reinitNumberWavefunctions ( const unsigned int numWfc)
pure virtual

◆ ~operatorDFTClass()

template<dftfe::utils::MemorySpace memorySpace>
virtual dftfe::operatorDFTClass< memorySpace >::~operatorDFTClass ( )
inlinevirtual

Destructor.


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