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

#include <KohnShamDFTBaseOperator.h>

Inheritance diagram for dftfe::KohnShamDFTBaseOperator< memorySpace >:
dftfe::operatorDFTClass< memorySpace > dftfe::KohnShamDFTStandardEigenOperator< memorySpace >

Public Member Functions

 KohnShamDFTBaseOperator (std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > basisOperationsPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > basisOperationsPtrHost, std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > pseudopotentialClassPtr, std::shared_ptr< excManager< memorySpace > > excManagerPtr, dftParameters *dftParamsPtr, const dftfe::uInt densityQuadratureID, const dftfe::uInt lpspQuadratureID, const dftfe::uInt feOrderPlusOneQuadratureID, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
 
void init (const std::vector< double > &kPointCoordinates, const std::vector< double > &kPointWeights)
 
void resetExtPotHamFlag ()
 
void resetKohnShamOp ()
 
const MPI_Comm & getMPICommunicatorDomain ()
 
dftUtils::constraintMatrixInfo< dftfe::utils::MemorySpace::HOST > * getOverloadedConstraintMatrixHost () const
 
dftUtils::constraintMatrixInfo< memorySpace > * getOverloadedConstraintMatrix () const
 
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & getScratchFEMultivector (const dftfe::uInt numVectors, const dftfe::uInt index)
 
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & getScratchFEMultivectorSinglePrec (const dftfe::uInt numVectors, const dftfe::uInt index)
 
void computeVEff (std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &phiValues, const dftfe::uInt spinIndex=0)
 Computes effective potential involving exchange-correlation functionals.
 
void setVEff (const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &vKS_quadValues, const dftfe::uInt spinIndex)
 Sets the V-eff potential.
 
void computeVEffExternalPotCorr (const std::map< dealii::CellId, std::vector< double > > &externalPotCorrValues)
 
void computeVEffPrime (std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &rhoPrimeValues, const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradRhoPrimeValues, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &phiPrimeValues, const dftfe::uInt spinIndex)
 
void reinitkPointSpinIndex (const dftfe::uInt kPointIndex, const dftfe::uInt spinIndex)
 sets the data member to appropriate kPoint and spin Index
 
void reinitNumberWavefunctions (const dftfe::uInt numWfc)
 
const dftfe::utils::MemoryStorage< double, memorySpace > & getInverseSqrtMassVector ()
 
const dftfe::utils::MemoryStorage< double, memorySpace > & getSqrtMassVector ()
 
void computeCellHamiltonianMatrix (const bool onlyHPrimePartForFirstOrderDensityMatResponse=false)
 
void computeCellHamiltonianMatrixExtPotContribution ()
 
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)
 Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision.
 
void HX (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)
 Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision.
 
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)
 Computing Y = scalarHX*M^{1/2}HM^{1/2}X + scalarX*X + scalarY*Y for a given X and Y in full precision. Used for TD-DFT and Inverse DFT calc.
 
void setVEffExternalPotCorrToZero ()
 Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision.
 
- Public Member Functions inherited from dftfe::operatorDFTClass< memorySpace >
virtual ~operatorDFTClass ()
 Destructor.
 
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
 

Protected Attributes

std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::number, memorySpace > > d_pseudopotentialNonLocalOperator
 
std::shared_ptr< AtomicCenteredNonLocalOperator< dataTypes::numberFP32, memorySpace > > d_pseudopotentialNonLocalOperatorSinglePrec
 
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > d_basisOperationsPtr
 
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > d_basisOperationsPtrHost
 
std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > d_pseudopotentialClassPtr
 
std::shared_ptr< excManager< memorySpace > > d_excManagerPtr
 
dftParametersd_dftParamsPtr
 
std::vector< dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > > d_cellHamiltonianMatrix
 
std::vector< dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > > d_cellHamiltonianMatrixSinglePrec
 
dftfe::utils::MemoryStorage< double, memorySpace > d_cellHamiltonianMatrixExtPot
 
dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > d_cellWaveFunctionMatrixSrc
 
dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > d_cellWaveFunctionMatrixDst
 
dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > d_cellWaveFunctionMatrixSrcSinglePrec
 
dftfe::utils::MemoryStorage< dataTypes::numberFP32, memorySpace > d_cellWaveFunctionMatrixDstSinglePrec
 
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_pseudopotentialNonLocalProjectorTimesVectorBlock
 
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_pseudopotentialNonLocalProjectorTimesVectorBlockSinglePrec
 
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_tempBlockVectorOverlapInvX
 
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_tempBlockVectorOverlapInvXSinglePrec
 
dftfe::utils::MemoryStorage< double, memorySpace > d_VeffJxW
 
dftfe::utils::MemoryStorage< double, memorySpace > d_VeffExtPotJxW
 
dftfe::utils::MemoryStorage< double, memorySpace > d_invJacderExcWithSigmaTimesGradRhoJxW
 
dftfe::utils::MemoryStorage< double, memorySpace > d_invJacinvJacderExcWithTauJxW
 
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_invJacKPointTimesJxW
 
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_halfKSquareTimesDerExcwithTauJxW
 
std::vector< dftfe::utils::MemoryStorage< double, memorySpace > > d_derExcwithTauTimesinvJacKpointTimesJxW
 
std::shared_ptr< dftUtils::constraintMatrixInfo< memorySpace > > inverseMassVectorScaledConstraintsNoneDataInfoPtr
 
std::shared_ptr< dftUtils::constraintMatrixInfo< memorySpace > > inverseSqrtMassVectorScaledConstraintsNoneDataInfoPtr
 
std::vector< double > d_kPointCoordinates
 
std::vector< double > d_kPointWeights
 
dftfe::utils::MemoryStorage< double, memorySpace > tempHamMatrixRealBlock
 
dftfe::utils::MemoryStorage< double, memorySpace > tempHamMatrixImagBlock
 
const dftfe::uInt d_densityQuadratureID
 
const dftfe::uInt d_lpspQuadratureID
 
const dftfe::uInt d_feOrderPlusOneQuadratureID
 
dftfe::uInt d_kPointIndex
 
dftfe::uInt d_spinIndex
 
dftfe::uInt d_HamiltonianIndex
 
bool d_isExternalPotCorrHamiltonianComputed
 
const MPI_Comm d_mpiCommParent
 
const MPI_Comm d_mpiCommDomain
 
const dftfe::uInt n_mpi_processes
 
const dftfe::uInt this_mpi_process
 
dftfe::uInt d_cellsBlockSizeHamiltonianConstruction
 
dftfe::uInt d_cellsBlockSizeHX
 
dftfe::uInt d_numVectorsInternal
 
dftfe::uInt d_nOMPThreads
 
dealii::ConditionalOStream pcout
 
dealii::TimerOutput computing_timer
 
std::shared_ptr< hubbard< dataTypes::number, memorySpace > > d_hubbardClassPtr
 
bool d_useHubbard
 
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_srcNonLocalTemp
 
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > d_dstNonLocalTemp
 
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_srcNonLocalTempSinglePrec
 
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > d_dstNonLocalTempSinglePrec
 
dftfe::utils::MemoryStorage< dftfe::uInt, memorySpace > d_mapNodeIdToProcId
 

Constructor & Destructor Documentation

◆ KohnShamDFTBaseOperator()

template<dftfe::utils::MemorySpace memorySpace>
dftfe::KohnShamDFTBaseOperator< memorySpace >::KohnShamDFTBaseOperator ( std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr,
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, memorySpace > > basisOperationsPtr,
std::shared_ptr< dftfe::basis::FEBasisOperations< dataTypes::number, double, dftfe::utils::MemorySpace::HOST > > basisOperationsPtrHost,
std::shared_ptr< dftfe::pseudopotentialBaseClass< dataTypes::number, memorySpace > > pseudopotentialClassPtr,
std::shared_ptr< excManager< memorySpace > > excManagerPtr,
dftParameters * dftParamsPtr,
const dftfe::uInt densityQuadratureID,
const dftfe::uInt lpspQuadratureID,
const dftfe::uInt feOrderPlusOneQuadratureID,
const MPI_Comm & mpi_comm_parent,
const MPI_Comm & mpi_comm_domain )

Member Function Documentation

◆ computeCellHamiltonianMatrix()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::computeCellHamiltonianMatrix ( const bool onlyHPrimePartForFirstOrderDensityMatResponse = false)

◆ computeCellHamiltonianMatrixExtPotContribution()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::computeCellHamiltonianMatrixExtPotContribution ( )

◆ computeVEff()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::computeVEff ( std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & phiValues,
const dftfe::uInt spinIndex = 0 )

Computes effective potential involving exchange-correlation functionals.

Parameters
auxDensityMatrixRepresentationcore plus valence electron-density
phiValueselectrostatic potential arising both from electron-density and nuclear charge

◆ computeVEffExternalPotCorr()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::computeVEffExternalPotCorr ( const std::map< dealii::CellId, std::vector< double > > & externalPotCorrValues)

◆ computeVEffPrime()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::computeVEffPrime ( std::shared_ptr< AuxDensityMatrix< memorySpace > > auxDensityXCRepresentationPtr,
const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & rhoPrimeValues,
const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & gradRhoPrimeValues,
const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > & phiPrimeValues,
const dftfe::uInt spinIndex )

◆ getInverseSqrtMassVector()

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

◆ getMPICommunicatorDomain()

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

◆ getOverloadedConstraintMatrix()

template<dftfe::utils::MemorySpace memorySpace>
dftUtils::constraintMatrixInfo< memorySpace > * dftfe::KohnShamDFTBaseOperator< memorySpace >::getOverloadedConstraintMatrix ( ) const
inlinevirtual

◆ getOverloadedConstraintMatrixHost()

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

◆ getScratchFEMultivector()

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dftfe::KohnShamDFTBaseOperator< memorySpace >::getScratchFEMultivector ( const dftfe::uInt numVectors,
const dftfe::uInt index )
virtual

◆ getScratchFEMultivectorSinglePrec()

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > & dftfe::KohnShamDFTBaseOperator< memorySpace >::getScratchFEMultivectorSinglePrec ( const dftfe::uInt numVectors,
const dftfe::uInt index )
virtual

◆ getSqrtMassVector()

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

◆ HX() [1/2]

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< 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 )
virtual

Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision.

Parameters
srcX vector
scalarHXscalar for HX
scalarYscalar for Y
scalarXscalar for X
dstY vector
onlyHPrimePartForFirstOrderDensityMatResponseflag to compute only HPrime part for first order density matrix response

Implements dftfe::operatorDFTClass< memorySpace >.

◆ HX() [2/2]

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::HX ( 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 )
virtual

Computing Y = scalarHX*HX + scalarX*X + scalarY*Y for a given X and Y in full precision.

Parameters
srcX vector
scalarHXscalar for HX
scalarYscalar for Y
scalarXscalar for X
dstY vector
onlyHPrimePartForFirstOrderDensityMatResponseflag to compute only HPrime part for first order density matrix response

Implements dftfe::operatorDFTClass< memorySpace >.

◆ HXWithLowdinOrthonormalisedInput()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< 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 )
virtual

Computing Y = scalarHX*M^{1/2}HM^{1/2}X + scalarX*X + scalarY*Y for a given X and Y in full precision. Used for TD-DFT and Inverse DFT calc.

Parameters
srcX vector
scalarHXscalar for HX
scalarYscalar for Y
scalarXscalar for X
dstY vector
onlyHPrimePartForFirstOrderDensityMatResponseflag to compute only HPrime part for first order density matrix response

Implements dftfe::operatorDFTClass< memorySpace >.

◆ init()

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

◆ reinitkPointSpinIndex()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::reinitkPointSpinIndex ( const dftfe::uInt kPointIndex,
const dftfe::uInt spinIndex )
virtual

sets the data member to appropriate kPoint and spin Index

Parameters
kPointIndexk-point Index to set

Implements dftfe::operatorDFTClass< memorySpace >.

◆ reinitNumberWavefunctions()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::reinitNumberWavefunctions ( const dftfe::uInt numWfc)
virtual

◆ resetExtPotHamFlag()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::resetExtPotHamFlag ( )

◆ resetKohnShamOp()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::resetKohnShamOp ( )

◆ setVEff()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::setVEff ( const std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > & vKS_quadValues,
const dftfe::uInt spinIndex )

Sets the V-eff potential.

Parameters
vKS_quadValuesthe input V-KS values stored at the quadrature points
spinIndexspin index

◆ setVEffExternalPotCorrToZero()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::KohnShamDFTBaseOperator< memorySpace >::setVEffExternalPotCorrToZero ( )

Computing Y = scalarOX*OX + scalarX*X + scalarY*Y for a given X and Y in full precision.

Parameters
srcX vector
scalarHXscalar for OX
scalarYscalar for Y
scalarXscalar for X
dstY vector
useApproximateMatrixEntriesflag to use approximate overlap matrix

Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in full precision

Parameters
srcX vector
scalarOinvXscalar for O^{-1}X
scalarYscalar for Y
scalarXscalar for X
dstY vector

Computing Y = scalarOinvX*O^{-1}X + scalarX*X + scalarY*Y for a given X and Y in Reduced precision

Parameters
srcX vector
scalarOinvXscalar for O^{-1}X
scalarYscalar for Y
scalarXscalar for X
dstY vector

Computing Y = scalarHX*HM^{-1}X + scalarX*X + scalarY*Y for a given X and Y in reduced precision

Parameters
srcX vector
scalarHXscalar for HX
scalarYscalar for Y
scalarXscalar for X
dstY vector
onlyHPrimePartForFirstOrderDensityMatResponseflag to compute only HPrime part for first order density matrix response
skip1flag to skip extraction
skip2flag to skip nonLoal All Reduce
skip3flag to skip local HX and Assembly

Computing Y = scalarHX*M^{-1}HX + scalarX*X + scalarY*Y for a given X and Y in full precision

Parameters
srcX vector
scalarHXscalar for HX
scalarYscalar for Y
scalarXscalar for X
dstY vector
onlyHPrimePartForFirstOrderDensityMatResponseflag to compute only HPrime part for first order density matrix response
skip1flag to skip extraction
skip2flag to skip nonLoal All Reduce
skip3flag to skip local HX and Assembly

Member Data Documentation

◆ computing_timer

template<dftfe::utils::MemorySpace memorySpace>
dealii::TimerOutput dftfe::KohnShamDFTBaseOperator< memorySpace >::computing_timer
protected

◆ d_basisOperationsPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations<dataTypes::number, double, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_basisOperationsPtr
protected

◆ d_basisOperationsPtrHost

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::basis::FEBasisOperations<dataTypes::number, double, dftfe::utils::MemorySpace::HOST> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_basisOperationsPtrHost
protected

◆ d_BLASWrapperPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_BLASWrapperPtr
protected

◆ d_cellHamiltonianMatrix

template<dftfe::utils::MemorySpace memorySpace>
std::vector<dftfe::utils::MemoryStorage<dataTypes::number, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellHamiltonianMatrix
protected

◆ d_cellHamiltonianMatrixExtPot

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellHamiltonianMatrixExtPot
protected

◆ d_cellHamiltonianMatrixSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
std::vector<dftfe::utils::MemoryStorage<dataTypes::numberFP32, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellHamiltonianMatrixSinglePrec
protected

◆ d_cellsBlockSizeHamiltonianConstruction

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellsBlockSizeHamiltonianConstruction
protected

◆ d_cellsBlockSizeHX

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellsBlockSizeHX
protected

◆ d_cellWaveFunctionMatrixDst

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dataTypes::number, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellWaveFunctionMatrixDst
protected

◆ d_cellWaveFunctionMatrixDstSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dataTypes::numberFP32, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellWaveFunctionMatrixDstSinglePrec
protected

◆ d_cellWaveFunctionMatrixSrc

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dataTypes::number, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellWaveFunctionMatrixSrc
protected

◆ d_cellWaveFunctionMatrixSrcSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dataTypes::numberFP32, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_cellWaveFunctionMatrixSrcSinglePrec
protected

◆ d_densityQuadratureID

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_densityQuadratureID
protected

◆ d_derExcwithTauTimesinvJacKpointTimesJxW

template<dftfe::utils::MemorySpace memorySpace>
std::vector<dftfe::utils::MemoryStorage<double, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_derExcwithTauTimesinvJacKpointTimesJxW
protected

◆ d_dftParamsPtr

template<dftfe::utils::MemorySpace memorySpace>
dftParameters* dftfe::KohnShamDFTBaseOperator< memorySpace >::d_dftParamsPtr
protected

◆ d_dstNonLocalTemp

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_dstNonLocalTemp
protected

◆ d_dstNonLocalTempSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_dstNonLocalTempSinglePrec
protected

◆ d_excManagerPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<excManager<memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_excManagerPtr
protected

◆ d_feOrderPlusOneQuadratureID

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_feOrderPlusOneQuadratureID
protected

◆ d_halfKSquareTimesDerExcwithTauJxW

template<dftfe::utils::MemorySpace memorySpace>
std::vector<dftfe::utils::MemoryStorage<double, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_halfKSquareTimesDerExcwithTauJxW
protected

◆ d_HamiltonianIndex

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_HamiltonianIndex
protected

◆ d_hubbardClassPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<hubbard<dataTypes::number, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_hubbardClassPtr
protected

◆ d_invJacderExcWithSigmaTimesGradRhoJxW

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_invJacderExcWithSigmaTimesGradRhoJxW
protected

◆ d_invJacinvJacderExcWithTauJxW

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_invJacinvJacderExcWithTauJxW
protected

◆ d_invJacKPointTimesJxW

template<dftfe::utils::MemorySpace memorySpace>
std::vector<dftfe::utils::MemoryStorage<double, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_invJacKPointTimesJxW
protected

◆ d_isExternalPotCorrHamiltonianComputed

template<dftfe::utils::MemorySpace memorySpace>
bool dftfe::KohnShamDFTBaseOperator< memorySpace >::d_isExternalPotCorrHamiltonianComputed
protected

◆ d_kPointCoordinates

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_kPointCoordinates
protected

◆ d_kPointIndex

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_kPointIndex
protected

◆ d_kPointWeights

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_kPointWeights
protected

◆ d_lpspQuadratureID

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_lpspQuadratureID
protected

◆ d_mapNodeIdToProcId

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<dftfe::uInt, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_mapNodeIdToProcId
protected

◆ d_mpiCommDomain

template<dftfe::utils::MemorySpace memorySpace>
const MPI_Comm dftfe::KohnShamDFTBaseOperator< memorySpace >::d_mpiCommDomain
protected

◆ d_mpiCommParent

template<dftfe::utils::MemorySpace memorySpace>
const MPI_Comm dftfe::KohnShamDFTBaseOperator< memorySpace >::d_mpiCommParent
protected

◆ d_nOMPThreads

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_nOMPThreads
protected

◆ d_numVectorsInternal

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_numVectorsInternal
protected

◆ d_pseudopotentialClassPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< dftfe::pseudopotentialBaseClass<dataTypes::number, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_pseudopotentialClassPtr
protected

◆ d_pseudopotentialNonLocalOperator

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< AtomicCenteredNonLocalOperator<dataTypes::number, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_pseudopotentialNonLocalOperator
protected

◆ d_pseudopotentialNonLocalOperatorSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< AtomicCenteredNonLocalOperator<dataTypes::numberFP32, memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::d_pseudopotentialNonLocalOperatorSinglePrec
protected

◆ d_pseudopotentialNonLocalProjectorTimesVectorBlock

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_pseudopotentialNonLocalProjectorTimesVectorBlock
protected

◆ d_pseudopotentialNonLocalProjectorTimesVectorBlockSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_pseudopotentialNonLocalProjectorTimesVectorBlockSinglePrec
protected

◆ d_spinIndex

template<dftfe::utils::MemorySpace memorySpace>
dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::d_spinIndex
protected

◆ d_srcNonLocalTemp

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_srcNonLocalTemp
protected

◆ d_srcNonLocalTempSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_srcNonLocalTempSinglePrec
protected

◆ d_tempBlockVectorOverlapInvX

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::number, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_tempBlockVectorOverlapInvX
protected

◆ d_tempBlockVectorOverlapInvXSinglePrec

template<dftfe::utils::MemorySpace memorySpace>
dftfe::linearAlgebra::MultiVector<dataTypes::numberFP32, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_tempBlockVectorOverlapInvXSinglePrec
protected

◆ d_useHubbard

template<dftfe::utils::MemorySpace memorySpace>
bool dftfe::KohnShamDFTBaseOperator< memorySpace >::d_useHubbard
protected

◆ d_VeffExtPotJxW

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_VeffExtPotJxW
protected

◆ d_VeffJxW

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::d_VeffJxW
protected

◆ inverseMassVectorScaledConstraintsNoneDataInfoPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<dftUtils::constraintMatrixInfo<memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::inverseMassVectorScaledConstraintsNoneDataInfoPtr
protected

◆ inverseSqrtMassVectorScaledConstraintsNoneDataInfoPtr

template<dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<dftUtils::constraintMatrixInfo<memorySpace> > dftfe::KohnShamDFTBaseOperator< memorySpace >::inverseSqrtMassVectorScaledConstraintsNoneDataInfoPtr
protected

◆ n_mpi_processes

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::n_mpi_processes
protected

◆ pcout

template<dftfe::utils::MemorySpace memorySpace>
dealii::ConditionalOStream dftfe::KohnShamDFTBaseOperator< memorySpace >::pcout
protected

◆ tempHamMatrixImagBlock

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::tempHamMatrixImagBlock
protected

◆ tempHamMatrixRealBlock

template<dftfe::utils::MemorySpace memorySpace>
dftfe::utils::MemoryStorage<double, memorySpace> dftfe::KohnShamDFTBaseOperator< memorySpace >::tempHamMatrixRealBlock
protected

◆ this_mpi_process

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::uInt dftfe::KohnShamDFTBaseOperator< memorySpace >::this_mpi_process
protected

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