DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
This class provides the structure for all Exc functionals that can be written as a combination of functional of Single Slater determinant that results in a non-multiplicative potential plus a remainder functional dependent on density and Tau. More...
#include <ExcSSDFunctionalBaseClass.h>
Public Member Functions | |
ExcSSDFunctionalBaseClass (const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList) | |
ExcSSDFunctionalBaseClass (const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList, const std::vector< WfcDescriptorDataAttributes > &wfcDescriptorAttributesList) | |
virtual | ~ExcSSDFunctionalBaseClass () |
const std::vector< DensityDescriptorDataAttributes > & | getDensityDescriptorAttributesList () const |
densityFamilyType | getDensityBasedFamilyType () const |
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 | updateWaveFunctionDependentFuncDerWrtPsi (const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights)=0 |
virtual void | computeWaveFunctionDependentExcEnergy (const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights)=0 |
virtual double | getWaveFunctionDependentExcEnergy ()=0 |
virtual double | getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi ()=0 |
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 |
ExcFamilyType | getExcFamilyType () const |
virtual void | checkInputOutputDataAttributesConsistency (const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const =0 |
virtual void | reinitKPointDependentVariables (dftfe::uInt kPointIndex)=0 |
Protected Attributes | |
const std::vector< DensityDescriptorDataAttributes > | d_densityDescriptorAttributesList |
const std::vector< WfcDescriptorDataAttributes > | d_wfcDescriptorAttributesList |
ExcFamilyType | d_ExcFamilyType |
densityFamilyType | d_densityFamilyType |
This class provides the structure for all Exc functionals that can be written as a combination of functional of Single Slater determinant that results in a non-multiplicative potential plus a remainder functional dependent on density and Tau.
Exc = S{\phi} + R [\rho, \tau]
dftfe::ExcSSDFunctionalBaseClass< memorySpace >::ExcSSDFunctionalBaseClass | ( | const ExcFamilyType | excFamType, |
const densityFamilyType | densityFamType, | ||
const std::vector< DensityDescriptorDataAttributes > & | densityDescriptorAttributesList ) |
dftfe::ExcSSDFunctionalBaseClass< memorySpace >::ExcSSDFunctionalBaseClass | ( | const ExcFamilyType | excFamType, |
const densityFamilyType | densityFamType, | ||
const std::vector< DensityDescriptorDataAttributes > & | densityDescriptorAttributesList, | ||
const std::vector< WfcDescriptorDataAttributes > & | wfcDescriptorAttributesList ) |
|
virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
x and c denotes exchange and correlation respectively. This function computes the rho and tau dependent part of the Exc functional energy density and its partial derivatives
Implemented in dftfe::excDensityGGAClass< memorySpace >, dftfe::excDensityLDAClass< memorySpace >, dftfe::excDensityLLMGGAClass< memorySpace >, dftfe::ExcDFTPlusU< ValueType, memorySpace >, and dftfe::excTauMGGAClass< memorySpace >.
|
pure virtual |
densityFamilyType dftfe::ExcSSDFunctionalBaseClass< memorySpace >::getDensityBasedFamilyType | ( | ) | const |
const std::vector< DensityDescriptorDataAttributes > & dftfe::ExcSSDFunctionalBaseClass< memorySpace >::getDensityDescriptorAttributesList | ( | ) | const |
ExcFamilyType dftfe::ExcSSDFunctionalBaseClass< memorySpace >::getExcFamilyType | ( | ) | const |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
protected |
|
protected |
|
protected |
|
protected |