18#ifndef DFTFE_EXCSSDFUNCTIONALBASECLASS_H
19#define DFTFE_EXCSSDFUNCTIONALBASECLASS_H
78 template <dftfe::utils::MemorySpace memorySpace>
84 const std::vector<DensityDescriptorDataAttributes>
85 &densityDescriptorAttributesList);
89 const std::vector<DensityDescriptorDataAttributes> &
111 const unsigned int inputVecSize,
112 const unsigned int kPointIndex,
113 const unsigned int spinIndex) = 0;
131 const unsigned int inputVecSize,
132 const unsigned int kPointIndex,
133 const unsigned int spinIndex) = 0;
142 const std::vector<double> & kPointWeights) = 0;
152 const std::vector<double> & kPointWeights) = 0;
178 const std::vector<double> & quadPoints,
182 &cDataout)
const = 0;
189 const std::vector<xcRemainderOutputDataAttributes> &outputDataAttributes)
196 const std::vector<DensityDescriptorDataAttributes>
Definition AuxDensityMatrix.h:33
virtual void applyWaveFunctionDependentFuncDerWrtPsi(const dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex)=0
virtual void computeWaveFunctionDependentExcEnergy(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights)=0
densityFamilyType getDensityBasedFamilyType() const
Definition ExcSSDFunctionalBaseClass.t.cc:48
virtual double getWaveFunctionDependentExcEnergy()=0
ExcSSDFunctionalBaseClass(const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList)
Definition ExcSSDFunctionalBaseClass.t.cc:25
virtual void reinitKPointDependentVariables(unsigned int kPointIndex)=0
virtual void updateWaveFunctionDependentFuncDerWrtPsi(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights)=0
virtual void computeRhoTauDependentXCData(AuxDensityMatrix< memorySpace > &auxDensityMatrix, const std::vector< double > &quadPoints, std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > &xDataOut, std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > &cDataout) const =0
virtual double getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi()=0
virtual void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const =0
virtual ~ExcSSDFunctionalBaseClass()
Definition ExcSSDFunctionalBaseClass.t.cc:36
virtual void applyWaveFunctionDependentFuncDerWrtPsi(const dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex)=0
ExcFamilyType getExcFamilyType() const
Definition ExcSSDFunctionalBaseClass.t.cc:41
densityFamilyType d_densityFamilyType
Definition ExcSSDFunctionalBaseClass.h:200
ExcFamilyType d_ExcFamilyType
Definition ExcSSDFunctionalBaseClass.h:199
const std::vector< DensityDescriptorDataAttributes > d_densityDescriptorAttributesList
Definition ExcSSDFunctionalBaseClass.h:197
const std::vector< DensityDescriptorDataAttributes > & getDensityDescriptorAttributesList() const
Definition ExcSSDFunctionalBaseClass.t.cc:55
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:45
Definition pseudoPotentialToDftfeConverter.cc:34
xcRemainderOutputDataAttributes
Definition ExcSSDFunctionalBaseClass.h:51
@ pdeLaplacianSpinDown
Definition ExcSSDFunctionalBaseClass.h:61
@ pdeSigma
Definition ExcSSDFunctionalBaseClass.h:59
@ pdeLaplacianSpinUp
Definition ExcSSDFunctionalBaseClass.h:60
@ vSpinUp
Definition ExcSSDFunctionalBaseClass.h:53
@ vSpinDown
Definition ExcSSDFunctionalBaseClass.h:55
@ pdeDensitySpinDown
Definition ExcSSDFunctionalBaseClass.h:58
@ pdeDensitySpinUp
Definition ExcSSDFunctionalBaseClass.h:57
@ pdeTauSpinUp
Definition ExcSSDFunctionalBaseClass.h:62
@ e
Definition ExcSSDFunctionalBaseClass.h:52
@ pdeTauSpinDown
Definition ExcSSDFunctionalBaseClass.h:63
densityFamilyType
Definition ExcSSDFunctionalBaseClass.h:38
ExcFamilyType
Definition ExcSSDFunctionalBaseClass.h:28
@ DFTPlusU
Definition ExcSSDFunctionalBaseClass.h:33
@ HYBRID
Definition ExcSSDFunctionalBaseClass.h:32
@ GGA
Definition ExcSSDFunctionalBaseClass.h:30
@ MGGA
Definition ExcSSDFunctionalBaseClass.h:34
@ LDA
Definition ExcSSDFunctionalBaseClass.h:29
@ LLMGGA
Definition ExcSSDFunctionalBaseClass.h:31