DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace > Class Template Referenceabstract

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>

Inheritance diagram for dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >:
Collaboration diagram for dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >:

Public Types

using AttrStorage = std::vector< dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > >
 

Public Member Functions

 ExcSSDFunctionalBaseClass (const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::set< dftefe::ksdft::DensityDescrAttr > &densityDescrAttrs)
 
 ExcSSDFunctionalBaseClass (const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::set< dftefe::ksdft::DensityDescrAttr > &densityDescrAttrs, const std::set< dftefe::ksdft::WfcDescrAttr > &wfcDescrAttrs)
 
virtual ~ExcSSDFunctionalBaseClass ()
 
const std::set< dftefe::ksdft::DensityDescrAttr > & getDensityDescriptorAttributesList () const
 
densityFamilyType getDensityBasedFamilyType () const
 
virtual void computeRhoTauDependentXCData (const std::unordered_map< dftefe::ksdft::DensityDescrAttr, AttrStorage > &densityAttrVals, const std::unordered_map< dftefe::ksdft::WfcDescrAttr, AttrStorage > &wfcAttrVals, std::unordered_map< xcRemainderOutputDataAttributes, dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > &xDataOut, std::unordered_map< xcRemainderOutputDataAttributes, dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > &cDataOut) const =0
 Pure virtual. Call directly when you have pre-built density maps (e.g. from non-spin-polarized RDM1 split as ρ↑ = ρ↓ = ρ/2). More...
 
ExcFamilyType getExcFamilyType () const
 
virtual void checkInputOutputDataAttributesConsistency (const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const =0
 

Protected Attributes

const std::set< dftefe::ksdft::DensityDescrAttrd_densityDescrAttrs
 
const std::set< dftefe::ksdft::WfcDescrAttrd_wfcDescrAttrs
 
ExcFamilyType d_ExcFamilyType
 
densityFamilyType d_densityFamilyType
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_densityValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_sigmaValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_tauValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexDensityValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecDensityValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexTauValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecTauValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_exValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_ecValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexDensitySpinUpValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexDensitySpinDownValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecDensitySpinUpValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecDensitySpinDownValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexSigmaValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecSigmaValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexTauSpinUpValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdexTauSpinDownValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecTauSpinUpValues
 
dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOSTs_pdecTauSpinDownValues
 

Detailed Description

template<dftefe::utils::MemorySpace memorySpace>
class dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >

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]

Author
Vishal Subramanian, Sambit Das

Member Typedef Documentation

◆ AttrStorage

template<dftefe::utils::MemorySpace memorySpace>
using dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::AttrStorage = std::vector< dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> >

Constructor & Destructor Documentation

◆ ExcSSDFunctionalBaseClass() [1/2]

template<dftefe::utils::MemorySpace memorySpace>
dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::ExcSSDFunctionalBaseClass ( const ExcFamilyType  excFamType,
const densityFamilyType  densityFamType,
const std::set< dftefe::ksdft::DensityDescrAttr > &  densityDescrAttrs 
)

◆ ExcSSDFunctionalBaseClass() [2/2]

template<dftefe::utils::MemorySpace memorySpace>
dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::ExcSSDFunctionalBaseClass ( const ExcFamilyType  excFamType,
const densityFamilyType  densityFamType,
const std::set< dftefe::ksdft::DensityDescrAttr > &  densityDescrAttrs,
const std::set< dftefe::ksdft::WfcDescrAttr > &  wfcDescrAttrs 
)

◆ ~ExcSSDFunctionalBaseClass()

Member Function Documentation

◆ checkInputOutputDataAttributesConsistency()

template<dftefe::utils::MemorySpace memorySpace>
virtual void dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::checkInputOutputDataAttributesConsistency ( const std::vector< xcRemainderOutputDataAttributes > &  outputDataAttributes) const
pure virtual

◆ computeRhoTauDependentXCData()

template<dftefe::utils::MemorySpace memorySpace>
virtual void dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::computeRhoTauDependentXCData ( const std::unordered_map< dftefe::ksdft::DensityDescrAttr, AttrStorage > &  densityAttrVals,
const std::unordered_map< dftefe::ksdft::WfcDescrAttr, AttrStorage > &  wfcAttrVals,
std::unordered_map< xcRemainderOutputDataAttributes, dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > &  xDataOut,
std::unordered_map< xcRemainderOutputDataAttributes, dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > &  cDataOut 
) const
pure virtual

Pure virtual. Call directly when you have pre-built density maps (e.g. from non-spin-polarized RDM1 split as ρ↑ = ρ↓ = ρ/2).

Implemented in dftefe::ksdft::ExcDensityGGAClass< memorySpace >, and dftefe::ksdft::ExcDensityLDAClass< memorySpace >.

◆ getDensityBasedFamilyType()

template<dftefe::utils::MemorySpace memorySpace>
densityFamilyType dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::getDensityBasedFamilyType

◆ getDensityDescriptorAttributesList()

template<dftefe::utils::MemorySpace memorySpace>
const std::set< dftefe::ksdft::DensityDescrAttr > & dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::getDensityDescriptorAttributesList

◆ getExcFamilyType()

template<dftefe::utils::MemorySpace memorySpace>
ExcFamilyType dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::getExcFamilyType

Member Data Documentation

◆ d_densityDescrAttrs

template<dftefe::utils::MemorySpace memorySpace>
const std::set<dftefe::ksdft::DensityDescrAttr> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::d_densityDescrAttrs
protected

◆ d_densityFamilyType

template<dftefe::utils::MemorySpace memorySpace>
densityFamilyType dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::d_densityFamilyType
protected

◆ d_ExcFamilyType

template<dftefe::utils::MemorySpace memorySpace>
ExcFamilyType dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::d_ExcFamilyType
protected

◆ d_wfcDescrAttrs

template<dftefe::utils::MemorySpace memorySpace>
const std::set<dftefe::ksdft::WfcDescrAttr> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::d_wfcDescrAttrs
protected

◆ s_densityValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_densityValues
mutableprotected

◆ s_ecValues

◆ s_exValues

◆ s_pdecDensitySpinDownValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdecDensitySpinDownValues
protected

◆ s_pdecDensitySpinUpValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdecDensitySpinUpValues
protected

◆ s_pdecDensityValues

◆ s_pdecSigmaValues

◆ s_pdecTauSpinDownValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdecTauSpinDownValues
protected

◆ s_pdecTauSpinUpValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdecTauSpinUpValues
protected

◆ s_pdecTauValues

◆ s_pdexDensitySpinDownValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdexDensitySpinDownValues
protected

◆ s_pdexDensitySpinUpValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdexDensitySpinUpValues
protected

◆ s_pdexDensityValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdexDensityValues
mutableprotected

◆ s_pdexSigmaValues

◆ s_pdexTauSpinDownValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdexTauSpinDownValues
protected

◆ s_pdexTauSpinUpValues

template<dftefe::utils::MemorySpace memorySpace>
dftefe::utils::MemoryStorage<double, dftefe::utils::MemorySpace::HOST> dftefe::ksdft::ExcSSDFunctionalBaseClass< memorySpace >::s_pdexTauSpinUpValues
protected

◆ s_pdexTauValues

◆ s_sigmaValues

◆ s_tauValues


The documentation for this class was generated from the following files: