DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
excTauMGGAClass.h
Go to the documentation of this file.
1#ifndef DFTFE_excTauMGGAClass_H
2#define DFTFE_excTauMGGAClass_H
3
4#include <xc.h>
6
7namespace dftfe
8{
9 template <dftfe::utils::MemorySpace memorySpace>
10 class excTauMGGAClass : public ExcSSDFunctionalBaseClass<memorySpace>
11 {
12 public:
13 excTauMGGAClass(std::shared_ptr<xc_func_type> funcXPtr,
14 std::shared_ptr<xc_func_type> funcCPtr);
15
16 excTauMGGAClass(std::shared_ptr<xc_func_type> funcXPtr,
17 std::shared_ptr<xc_func_type> funcCPtr,
18 std::string modelXCInputFile);
19
21
22 void
24 AuxDensityMatrix<memorySpace> &auxDensityMatrix,
25 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
26 std::unordered_map<xcRemainderOutputDataAttributes, std::vector<double>>
27 &xDataOut,
28 std::unordered_map<xcRemainderOutputDataAttributes, std::vector<double>>
29 &cDataout) const override;
30
31 void
33 const std::vector<xcRemainderOutputDataAttributes> &outputDataAttributes)
34 const override;
35
36 void
39 &src,
41 const dftfe::uInt inputVecSize,
42 const dftfe::uInt kPointIndex,
43 const dftfe::uInt spinIndex) override;
44
45 /*
46 * @brief The apply function that will be called in HXCheby() with single precision.
47 * The distribute() and updateGhostValues() for src
48 * has to be called before this function.
49 * Similarly for dst, accumulateLocallyOwned() should be called in HX()
50 * after this function is called. param[in] src The input vector param[out]
51 * dst The output vector param[in] inputVecSize The size of the input vector
52 * param[in] kPointIndex the k point for which the HX() is called
53 * param[in] spinIndex the spin index for which the HX() is called
54 */
55 void
58 memorySpace> &src,
60 &dst,
61 const dftfe::uInt inputVecSize,
62 const dftfe::uInt kPointIndex,
63 const dftfe::uInt spinIndex) override;
64
65
66 void
68 const std::shared_ptr<AuxDensityMatrix<memorySpace>> &auxDensityMatrixPtr,
69 const std::vector<double> &kPointWeights) override;
70
71 void
73 const std::shared_ptr<AuxDensityMatrix<memorySpace>> &auxDensityMatrix,
74 const std::vector<double> &kPointWeights) override;
75
76 double
78
79 double
81
82 void
84
85 private:
86 std::shared_ptr<xc_func_type> d_funcXPtr;
87 std::shared_ptr<xc_func_type> d_funcCPtr;
88 };
89
90} // namespace dftfe
91
92
93#endif
Definition AuxDensityMatrix.h:40
ExcSSDFunctionalBaseClass(const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList)
Definition ExcSSDFunctionalBaseClass.t.cc:25
void computeWaveFunctionDependentExcEnergy(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights) override
void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const override
double getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi() override
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 override
excTauMGGAClass(std::shared_ptr< xc_func_type > funcXPtr, std::shared_ptr< xc_func_type > funcCPtr, std::string modelXCInputFile)
void reinitKPointDependentVariables(dftfe::uInt kPointIndex) override
excTauMGGAClass(std::shared_ptr< xc_func_type > funcXPtr, std::shared_ptr< xc_func_type > funcCPtr)
void updateWaveFunctionDependentFuncDerWrtPsi(const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights) override
double getWaveFunctionDependentExcEnergy() override
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
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_funcCPtr
Definition excTauMGGAClass.h:87
std::shared_ptr< xc_func_type > d_funcXPtr
Definition excTauMGGAClass.h:86
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
std::uint32_t uInt
Definition TypeConfig.h:10