18#ifndef DFTFE_EXCSSDFUNCTIONALBASECLASS_H
19#define DFTFE_EXCSSDFUNCTIONALBASECLASS_H
85 template <dftfe::utils::MemorySpace memorySpace>
91 const std::vector<DensityDescriptorDataAttributes>
92 &densityDescriptorAttributesList);
95 const std::vector<DensityDescriptorDataAttributes>
96 &densityDescriptorAttributesList,
97 const std::vector<WfcDescriptorDataAttributes>
98 &wfcDescriptorAttributesList);
102 const std::vector<DensityDescriptorDataAttributes> &
155 const std::vector<double> &kPointWeights) = 0;
165 const std::vector<double> &kPointWeights) = 0;
193 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
197 &cDataout)
const = 0;
205 const std::vector<xcRemainderOutputDataAttributes> &outputDataAttributes)
212 const std::vector<DensityDescriptorDataAttributes>
215 const std::vector<WfcDescriptorDataAttributes>
Definition AuxDensityMatrix.h:40
const std::vector< WfcDescriptorDataAttributes > d_wfcDescriptorAttributesList
Definition ExcSSDFunctionalBaseClass.h:216
virtual void computeWaveFunctionDependentExcEnergy(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights)=0
densityFamilyType getDensityBasedFamilyType() const
Definition ExcSSDFunctionalBaseClass.t.cc:61
virtual void computeRhoTauDependentXCData(AuxDensityMatrix< memorySpace > &auxDensityMatrix, const std::pair< dftfe::uInt, dftfe::uInt > &quadIndexRange, std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > &xDataOut, std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > &cDataout) const =0
virtual double getWaveFunctionDependentExcEnergy()=0
ExcSSDFunctionalBaseClass(const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList)
Definition ExcSSDFunctionalBaseClass.t.cc:25
virtual void updateWaveFunctionDependentFuncDerWrtPsi(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights)=0
virtual double getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi()=0
virtual void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const =0
virtual ~ExcSSDFunctionalBaseClass()
Definition ExcSSDFunctionalBaseClass.t.cc:49
virtual void applyWaveFunctionDependentFuncDerWrtPsi(const dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const dftfe::uInt inputVecSize, const dftfe::uInt kPointIndex, const dftfe::uInt spinIndex)=0
virtual void applyWaveFunctionDependentFuncDerWrtPsi(const dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst, const dftfe::uInt inputVecSize, const dftfe::uInt kPointIndex, const dftfe::uInt spinIndex)=0
virtual void reinitKPointDependentVariables(dftfe::uInt kPointIndex)=0
ExcFamilyType getExcFamilyType() const
Definition ExcSSDFunctionalBaseClass.t.cc:54
densityFamilyType d_densityFamilyType
Definition ExcSSDFunctionalBaseClass.h:219
ExcFamilyType d_ExcFamilyType
Definition ExcSSDFunctionalBaseClass.h:218
const std::vector< DensityDescriptorDataAttributes > d_densityDescriptorAttributesList
Definition ExcSSDFunctionalBaseClass.h:213
const std::vector< DensityDescriptorDataAttributes > & getDensityDescriptorAttributesList() const
Definition ExcSSDFunctionalBaseClass.t.cc:68
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition MultiVector.h:127
float numberFP32
Definition dftfeDataTypes.h:43
Definition pseudoPotentialToDftfeConverter.cc:34
xcRemainderOutputDataAttributes
Definition ExcSSDFunctionalBaseClass.h:58
@ pdeLaplacianSpinDown
Definition ExcSSDFunctionalBaseClass.h:68
@ pdeSigma
Definition ExcSSDFunctionalBaseClass.h:66
@ pdeLaplacianSpinUp
Definition ExcSSDFunctionalBaseClass.h:67
@ vSpinUp
Definition ExcSSDFunctionalBaseClass.h:60
@ vSpinDown
Definition ExcSSDFunctionalBaseClass.h:62
@ pdeDensitySpinDown
Definition ExcSSDFunctionalBaseClass.h:65
@ pdeDensitySpinUp
Definition ExcSSDFunctionalBaseClass.h:64
@ pdeTauSpinUp
Definition ExcSSDFunctionalBaseClass.h:69
@ e
Definition ExcSSDFunctionalBaseClass.h:59
@ pdeTauSpinDown
Definition ExcSSDFunctionalBaseClass.h:70
std::uint32_t uInt
Definition TypeConfig.h:10
densityFamilyType
Definition ExcSSDFunctionalBaseClass.h:45
ExcFamilyType
Definition ExcSSDFunctionalBaseClass.h:28
@ DFTPlusU
Definition ExcSSDFunctionalBaseClass.h:39
@ HYBRID
Definition ExcSSDFunctionalBaseClass.h:38
@ GGA
Definition ExcSSDFunctionalBaseClass.h:36
@ MGGA
Definition ExcSSDFunctionalBaseClass.h:40
@ LDA
Definition ExcSSDFunctionalBaseClass.h:35
@ LLMGGA
Definition ExcSSDFunctionalBaseClass.h:37
@ TauMGGA
Definition ExcSSDFunctionalBaseClass.h:41