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,
201 &cDataout)
const = 0;
209 const std::vector<xcRemainderOutputDataAttributes> &outputDataAttributes)
216 const std::vector<DensityDescriptorDataAttributes>
219 const std::vector<WfcDescriptorDataAttributes>
Definition AuxDensityMatrix.h:40
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_sigmaValues
Definition ExcSSDFunctionalBaseClass.h:226
size_t s_pinnedCap
Definition ExcSSDFunctionalBaseClass.h:246
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexTauSpinDownValues
Definition ExcSSDFunctionalBaseClass.h:236
const std::vector< WfcDescriptorDataAttributes > d_wfcDescriptorAttributesList
Definition ExcSSDFunctionalBaseClass.h:220
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_densityValues
Definition ExcSSDFunctionalBaseClass.h:226
dftfe::utils::MemoryStorage< double, memorySpace > s_ecValuesTemp
Definition ExcSSDFunctionalBaseClass.h:241
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_ecValues
Definition ExcSSDFunctionalBaseClass.h:233
dftfe::utils::MemoryStorage< double, memorySpace > s_exValuesTemp
Definition ExcSSDFunctionalBaseClass.h:240
virtual void computeWaveFunctionDependentExcEnergy(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights)=0
dftfe::utils::MemoryStorage< double, memorySpace > s_sigmaValuesTemp
Definition ExcSSDFunctionalBaseClass.h:240
densityFamilyType getDensityBasedFamilyType() const
Definition ExcSSDFunctionalBaseClass.t.cc:61
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecSigmaValues
Definition ExcSSDFunctionalBaseClass.h:235
virtual double getWaveFunctionDependentExcEnergy()=0
dftfe::utils::MemoryStorage< double, memorySpace > s_pdexSigmaValuesTemp
Definition ExcSSDFunctionalBaseClass.h:242
dftfe::utils::MemoryStorage< double, memorySpace > s_pdecSigmaValuesTemp
Definition ExcSSDFunctionalBaseClass.h:242
dftfe::utils::MemoryStorage< double, memorySpace > s_tauValuesTemp
Definition ExcSSDFunctionalBaseClass.h:240
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecDensitySpinDownValues
Definition ExcSSDFunctionalBaseClass.h:235
void * s_pinnedBuf
Definition ExcSSDFunctionalBaseClass.h:245
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecDensitySpinUpValues
Definition ExcSSDFunctionalBaseClass.h:234
ExcSSDFunctionalBaseClass(const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList)
Definition ExcSSDFunctionalBaseClass.t.cc:25
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_tauValues
Definition ExcSSDFunctionalBaseClass.h:226
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexTauSpinUpValues
Definition ExcSSDFunctionalBaseClass.h:236
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecDensityValuesNonNN
Definition ExcSSDFunctionalBaseClass.h:229
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexDensityValuesNonNN
Definition ExcSSDFunctionalBaseClass.h:229
virtual void updateWaveFunctionDependentFuncDerWrtPsi(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights)=0
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecTauValuesNonNN
Definition ExcSSDFunctionalBaseClass.h:230
virtual double getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi()=0
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecTauSpinUpValues
Definition ExcSSDFunctionalBaseClass.h:236
virtual void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const =0
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexDensitySpinDownValues
Definition ExcSSDFunctionalBaseClass.h:234
virtual ~ExcSSDFunctionalBaseClass()
Definition ExcSSDFunctionalBaseClass.t.cc:49
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexTauValuesNonNN
Definition ExcSSDFunctionalBaseClass.h:229
dftfe::utils::MemoryStorage< double, memorySpace > s_densityValuesTemp
Definition ExcSSDFunctionalBaseClass.h:240
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_exValues
Definition ExcSSDFunctionalBaseClass.h:233
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
dftfe::utils::MemoryStorage< double, memorySpace > s_pdecTauValuesTemp
Definition ExcSSDFunctionalBaseClass.h:243
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexDensitySpinUpValues
Definition ExcSSDFunctionalBaseClass.h:233
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:223
ExcFamilyType d_ExcFamilyType
Definition ExcSSDFunctionalBaseClass.h:222
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdecTauSpinDownValues
Definition ExcSSDFunctionalBaseClass.h:237
dftfe::utils::MemoryStorage< double, memorySpace > s_pdexTauValuesTemp
Definition ExcSSDFunctionalBaseClass.h:242
const std::vector< DensityDescriptorDataAttributes > d_densityDescriptorAttributesList
Definition ExcSSDFunctionalBaseClass.h:217
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > s_pdexSigmaValues
Definition ExcSSDFunctionalBaseClass.h:235
dftfe::utils::MemoryStorage< double, memorySpace > s_pdexDensityTemp
Definition ExcSSDFunctionalBaseClass.h:241
const std::vector< DensityDescriptorDataAttributes > & getDensityDescriptorAttributesList() const
Definition ExcSSDFunctionalBaseClass.t.cc:68
dftfe::utils::MemoryStorage< double, memorySpace > s_pdecDensityTemp
Definition ExcSSDFunctionalBaseClass.h:241
virtual void computeRhoTauDependentXCData(AuxDensityMatrix< memorySpace > &auxDensityMatrix, const std::pair< dftfe::uInt, dftfe::uInt > &quadIndexRange, std::unordered_map< xcRemainderOutputDataAttributes, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &xDataOut, std::unordered_map< xcRemainderOutputDataAttributes, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &cDataout) const =0
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition MultiVector.h:127
Definition MemoryStorage.h:33
float numberFP32
Definition dftfeDataTypes.h:42
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