18#ifndef DFTFE_EXCDENSIYLDACLASS_H
19#define DFTFE_EXCDENSIYLDACLASS_H
26 template <dftfe::utils::MemorySpace memorySpace>
31 std::shared_ptr<xc_func_type> &funcCPtr,
36 std::shared_ptr<xc_func_type> &funcCPtr,
37 std::string modelXCInputFile,
48 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
56 &cDataout)
const override;
59 const std::vector<xcRemainderOutputDataAttributes> &outputDataAttributes)
95 const std::vector<double> &kPointWeights)
override;
99 const std::vector<double> &kPointWeights)
override;
Definition AuxDensityMatrix.h:40
ExcSSDFunctionalBaseClass(const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList)
Definition ExcSSDFunctionalBaseClass.t.cc:25
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) override
double getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi() override
void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const override
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) override
std::shared_ptr< xc_func_type > d_funcXPtr
Definition excDensityLDAClass.h:112
void reinitKPointDependentVariables(dftfe::uInt kPointIndex) override
excDensityLDAClass(std::shared_ptr< xc_func_type > &funcXPtr, std::shared_ptr< xc_func_type > &funcCPtr, const bool useLibXC, std::string XCType)
NNLDA * d_NNLDAPtr
Definition excDensityLDAClass.h:111
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 override
void computeWaveFunctionDependentExcEnergy(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights) override
void updateWaveFunctionDependentFuncDerWrtPsi(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights) override
bool d_useLibXC
Flag to indicate whether to use libxc or not.
Definition excDensityLDAClass.h:114
std::shared_ptr< xc_func_type > d_funcCPtr
Definition excDensityLDAClass.h:113
std::string d_XCType
Definition excDensityLDAClass.h:115
double getWaveFunctionDependentExcEnergy() override
excDensityLDAClass(std::shared_ptr< xc_func_type > &funcXPtr, std::shared_ptr< xc_func_type > &funcCPtr, std::string modelXCInputFile, const bool useLibXC, std::string XCType)
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
std::uint32_t uInt
Definition TypeConfig.h:10