DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::ExcDFTPlusU< ValueType, memorySpace > Class Template Reference

#include <ExcDFTPlusU.h>

Inheritance diagram for dftfe::ExcDFTPlusU< ValueType, memorySpace >:
dftfe::ExcSSDFunctionalBaseClass< memorySpace >

Public Member Functions

 ExcDFTPlusU (std::shared_ptr< ExcSSDFunctionalBaseClass< memorySpace > > excSSDObjPtr, unsigned int numSpins)
 
 ~ExcDFTPlusU ()
 
void applyWaveFunctionDependentFuncDerWrtPsi (const dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &src, dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex) override
 
void applyWaveFunctionDependentFuncDerWrtPsi (const dftfe::linearAlgebra::MultiVector< typename dataTypes::singlePrecType< ValueType >::type, memorySpace > &src, dftfe::linearAlgebra::MultiVector< typename dataTypes::singlePrecType< ValueType >::type, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex) override
 
void updateWaveFunctionDependentFuncDerWrtPsi (const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrixPtr, const std::vector< double > &kPointWeights) override
 
void computeWaveFunctionDependentExcEnergy (const std::shared_ptr< AuxDensityMatrix< memorySpace > > &auxDensityMatrix, const std::vector< double > &kPointWeights) override
 
double getWaveFunctionDependentExcEnergy () override
 
double getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi () override
 
void computeRhoTauDependentXCData (AuxDensityMatrix< memorySpace > &auxDensityMatrix, const std::vector< double > &quadPoints, std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > &xDataOut, std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > &cDataout) const override
 
void checkInputOutputDataAttributesConsistency (const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const override
 
void reinitKPointDependentVariables (unsigned int kPointIndex) override
 
void initialiseHubbardClass (const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const MPI_Comm &mpi_comm_interPool, const MPI_Comm &mpi_comm_interBandGroup, std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, memorySpace > > basisOperationsMemPtr, std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > basisOperationsHostPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperMemPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > BLASWrapperHostPtr, const unsigned int matrixFreeVectorComponent, const unsigned int densityQuadratureId, const unsigned int sparsityPatternQuadratureId, const unsigned int numberWaveFunctions, const unsigned int numSpins, const dftParameters &dftParam, const std::string &scratchFolderName, const bool singlePrecNonLocalOperator, const bool updateNonlocalSparsity, const std::vector< std::vector< double > > &atomLocations, const std::vector< std::vector< double > > &atomLocationsFrac, const std::vector< int > &imageIds, const std::vector< std::vector< double > > &imagePositions, std::vector< double > &kPointCoordinates, const std::vector< double > &kPointWeights, const std::vector< std::vector< double > > &domainBoundaries)
 
std::shared_ptr< hubbard< ValueType, memorySpace > > & getHubbardClass ()
 
- Public Member Functions inherited from dftfe::ExcSSDFunctionalBaseClass< memorySpace >
 ExcSSDFunctionalBaseClass (const ExcFamilyType excFamType, const densityFamilyType densityFamType, const std::vector< DensityDescriptorDataAttributes > &densityDescriptorAttributesList)
 
virtual ~ExcSSDFunctionalBaseClass ()
 
const std::vector< DensityDescriptorDataAttributes > & getDensityDescriptorAttributesList () const
 
densityFamilyType getDensityBasedFamilyType () const
 
virtual void applyWaveFunctionDependentFuncDerWrtPsi (const dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &src, dftfe::linearAlgebra::MultiVector< dataTypes::numberFP32, memorySpace > &dst, const unsigned int inputVecSize, const unsigned int kPointIndex, const unsigned int spinIndex)=0
 
ExcFamilyType getExcFamilyType () const
 

Public Attributes

std::shared_ptr< ExcSSDFunctionalBaseClass< memorySpace > > d_excSSDObjPtr
 
std::shared_ptr< hubbard< ValueType, memorySpace > > d_hubbardClassPtr
 

Additional Inherited Members

- Protected Attributes inherited from dftfe::ExcSSDFunctionalBaseClass< memorySpace >
const std::vector< DensityDescriptorDataAttributesd_densityDescriptorAttributesList
 
ExcFamilyType d_ExcFamilyType
 
densityFamilyType d_densityFamilyType
 

Constructor & Destructor Documentation

◆ ExcDFTPlusU()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
dftfe::ExcDFTPlusU< ValueType, memorySpace >::ExcDFTPlusU ( std::shared_ptr< ExcSSDFunctionalBaseClass< memorySpace > > excSSDObjPtr,
unsigned int numSpins )

◆ ~ExcDFTPlusU()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
dftfe::ExcDFTPlusU< ValueType, memorySpace >::~ExcDFTPlusU ( )

Member Function Documentation

◆ applyWaveFunctionDependentFuncDerWrtPsi() [1/2]

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::applyWaveFunctionDependentFuncDerWrtPsi ( const dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & src,
dftfe::linearAlgebra::MultiVector< dataTypes::number, memorySpace > & dst,
const unsigned int inputVecSize,
const unsigned int kPointIndex,
const unsigned int spinIndex )
overridevirtual

◆ applyWaveFunctionDependentFuncDerWrtPsi() [2/2]

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::applyWaveFunctionDependentFuncDerWrtPsi ( const dftfe::linearAlgebra::MultiVector< typename dataTypes::singlePrecType< ValueType >::type, memorySpace > & src,
dftfe::linearAlgebra::MultiVector< typename dataTypes::singlePrecType< ValueType >::type, memorySpace > & dst,
const unsigned int inputVecSize,
const unsigned int kPointIndex,
const unsigned int spinIndex )
override

◆ checkInputOutputDataAttributesConsistency()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::checkInputOutputDataAttributesConsistency ( const std::vector< xcRemainderOutputDataAttributes > & outputDataAttributes) const
overridevirtual

◆ computeRhoTauDependentXCData()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::computeRhoTauDependentXCData ( AuxDensityMatrix< memorySpace > & auxDensityMatrix,
const std::vector< double > & quadPoints,
std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > & xDataOut,
std::unordered_map< xcRemainderOutputDataAttributes, std::vector< double > > & cDataout ) const
overridevirtual

x and c denotes exchange and correlation respectively

Implements dftfe::ExcSSDFunctionalBaseClass< memorySpace >.

◆ computeWaveFunctionDependentExcEnergy()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::computeWaveFunctionDependentExcEnergy ( const std::shared_ptr< AuxDensityMatrix< memorySpace > > & auxDensityMatrix,
const std::vector< double > & kPointWeights )
overridevirtual

◆ getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
double dftfe::ExcDFTPlusU< ValueType, memorySpace >::getExpectationOfWaveFunctionDependentExcFuncDerWrtPsi ( )
overridevirtual

◆ getHubbardClass()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr< hubbard< ValueType, memorySpace > > & dftfe::ExcDFTPlusU< ValueType, memorySpace >::getHubbardClass ( )

◆ getWaveFunctionDependentExcEnergy()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
double dftfe::ExcDFTPlusU< ValueType, memorySpace >::getWaveFunctionDependentExcEnergy ( )
overridevirtual

◆ initialiseHubbardClass()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::initialiseHubbardClass ( const MPI_Comm & mpi_comm_parent,
const MPI_Comm & mpi_comm_domain,
const MPI_Comm & mpi_comm_interPool,
const MPI_Comm & mpi_comm_interBandGroup,
std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, memorySpace > > basisOperationsMemPtr,
std::shared_ptr< dftfe::basis::FEBasisOperations< ValueType, double, dftfe::utils::MemorySpace::HOST > > basisOperationsHostPtr,
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperMemPtr,
std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > BLASWrapperHostPtr,
const unsigned int matrixFreeVectorComponent,
const unsigned int densityQuadratureId,
const unsigned int sparsityPatternQuadratureId,
const unsigned int numberWaveFunctions,
const unsigned int numSpins,
const dftParameters & dftParam,
const std::string & scratchFolderName,
const bool singlePrecNonLocalOperator,
const bool updateNonlocalSparsity,
const std::vector< std::vector< double > > & atomLocations,
const std::vector< std::vector< double > > & atomLocationsFrac,
const std::vector< int > & imageIds,
const std::vector< std::vector< double > > & imagePositions,
std::vector< double > & kPointCoordinates,
const std::vector< double > & kPointWeights,
const std::vector< std::vector< double > > & domainBoundaries )

◆ reinitKPointDependentVariables()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::reinitKPointDependentVariables ( unsigned int kPointIndex)
overridevirtual

◆ updateWaveFunctionDependentFuncDerWrtPsi()

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
void dftfe::ExcDFTPlusU< ValueType, memorySpace >::updateWaveFunctionDependentFuncDerWrtPsi ( const std::shared_ptr< AuxDensityMatrix< memorySpace > > & auxDensityMatrixPtr,
const std::vector< double > & kPointWeights )
overridevirtual

Member Data Documentation

◆ d_excSSDObjPtr

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<ExcSSDFunctionalBaseClass<memorySpace> > dftfe::ExcDFTPlusU< ValueType, memorySpace >::d_excSSDObjPtr

◆ d_hubbardClassPtr

template<typename ValueType, dftfe::utils::MemorySpace memorySpace>
std::shared_ptr<hubbard<ValueType, memorySpace> > dftfe::ExcDFTPlusU< ValueType, memorySpace >::d_hubbardClassPtr

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