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

#include <AuxDensityMatrixAtomicBasis.h>

Inheritance diagram for dftfe::AuxDensityMatrixAtomicBasis< memorySpace >:
dftfe::AuxDensityMatrix< memorySpace >

Public Member Functions

void reinit (const AtomicBasis::BasisType basisType, const std::vector< std::pair< std::string, std::vector< double > > > &atomCoords, const std::unordered_map< std::string, std::string > &atomBasisFileNames, const int nSpin, const int maxDerOrder)
 
void applyLocalOperations (const std::vector< double > &quadpts, std::unordered_map< DensityDescriptorDataAttributes, std::vector< double > > &densityData) override
 compute local descriptors of the aux basis electron-density representation at the supplied set of points using
 
void evalOverlapMatrixStart (const std::vector< double > &quadpts, const std::vector< double > &quadWt) override
 Compute aux basis overlap matrix batchwise contribution from supplied set of quadrature points and their associated weights.
 
void evalOverlapMatrixEnd (const MPI_Comm &mpiComm) override
 for MPI accumulation
 
virtual void projectDensityMatrixStart (const std::unordered_map< std::string, std::vector< dataTypes::number > > &projectionInputsDataType, const std::unordered_map< std::string, std::vector< double > > &projectionInputsReal, const int iSpin) override
 
void projectDensityMatrixEnd (const MPI_Comm &mpiComm) override
 for MPI accumulation
 
void projectDensityStart (const std::unordered_map< std::string, std::vector< double > > &projectionInputs) override
 Projects the quadrature density to aux basis (L2 projection) batch wise.
 
void projectDensityEnd (const MPI_Comm &mpiComm) override
 for MPI accumulation
 

Private Member Functions

void evalOverlapMatrixInv ()
 
std::vector< double > & getOverlapMatrixInv ()
 

Private Attributes

int d_nQuad
 
int d_nSpin
 
std::unique_ptr< AtomicBasisd_atomicBasisPtr
 
AtomicBasisData d_atomicBasisData
 
int d_nBasis
 
int d_maxDerOrder
 
std::vector< double > d_DM
 
std::vector< double > d_SMatrix
 
std::vector< double > d_SMatrixInv
 
std::vector< double > d_basisWFCInnerProducts
 
std::vector< double > d_fValues
 
int d_nWFC
 
int d_iSpin
 

Member Function Documentation

◆ applyLocalOperations()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::applyLocalOperations ( const std::vector< double > & Points,
std::unordered_map< DensityDescriptorDataAttributes, std::vector< double > > & densityData )
overridevirtual

compute local descriptors of the aux basis electron-density representation at the supplied set of points using

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ evalOverlapMatrixEnd()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::evalOverlapMatrixEnd ( const MPI_Comm & mpiComm)
overridevirtual

for MPI accumulation

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ evalOverlapMatrixInv()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::evalOverlapMatrixInv ( )
private

◆ evalOverlapMatrixStart()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::evalOverlapMatrixStart ( const std::vector< double > & quadpts,
const std::vector< double > & quadWt )
overridevirtual

Compute aux basis overlap matrix batchwise contribution from supplied set of quadrature points and their associated weights.

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ getOverlapMatrixInv()

template<dftfe::utils::MemorySpace memorySpace>
std::vector< double > & dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::getOverlapMatrixInv ( )
private

◆ projectDensityEnd()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::projectDensityEnd ( const MPI_Comm & mpiComm)
overridevirtual

for MPI accumulation

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ projectDensityMatrixEnd()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::projectDensityMatrixEnd ( const MPI_Comm & mpiComm)
overridevirtual

for MPI accumulation

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ projectDensityMatrixStart()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::projectDensityMatrixStart ( const std::unordered_map< std::string, std::vector< dataTypes::number > > & projectionInputsDataType,
const std::unordered_map< std::string, std::vector< double > > & projectionInputsReal,
const int iSpin )
overridevirtual
Parameters
projectionInputsis a map from string to inputs needed for projection. eg - projectionInputsReal["quadpts"], projectionInputsReal["quadWt"], projectionInputsDataType["psiFunc"], projectionInputsReal["fValues"]

psiFunc The SCF wave function or eigen function in FE Basis. psiFunc(quad_index, wfc_index), quad_index is fastest. fValues are the occupancies.

Parameters
iSpinindicates up (iSpin = 0) or down (iSpin = 0) spin.

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ projectDensityStart()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::projectDensityStart ( const std::unordered_map< std::string, std::vector< double > > & projectionInputs)
overridevirtual

Projects the quadrature density to aux basis (L2 projection) batch wise.

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ reinit()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::reinit ( const AtomicBasis::BasisType basisType,
const std::vector< std::pair< std::string, std::vector< double > > > & atomCoords,
const std::unordered_map< std::string, std::string > & atomBasisFileNames,
const int nSpin,
const int maxDerOrder )

Member Data Documentation

◆ d_atomicBasisData

template<dftfe::utils::MemorySpace memorySpace>
AtomicBasisData dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_atomicBasisData
private

◆ d_atomicBasisPtr

template<dftfe::utils::MemorySpace memorySpace>
std::unique_ptr<AtomicBasis> dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_atomicBasisPtr
private

◆ d_basisWFCInnerProducts

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_basisWFCInnerProducts
private

◆ d_DM

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_DM
private

◆ d_fValues

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_fValues
private

◆ d_iSpin

template<dftfe::utils::MemorySpace memorySpace>
int dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_iSpin
private

◆ d_maxDerOrder

template<dftfe::utils::MemorySpace memorySpace>
int dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_maxDerOrder
private

◆ d_nBasis

template<dftfe::utils::MemorySpace memorySpace>
int dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_nBasis
private

◆ d_nQuad

template<dftfe::utils::MemorySpace memorySpace>
int dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_nQuad
private

◆ d_nSpin

template<dftfe::utils::MemorySpace memorySpace>
int dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_nSpin
private

◆ d_nWFC

template<dftfe::utils::MemorySpace memorySpace>
int dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_nWFC
private

◆ d_SMatrix

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_SMatrix
private

◆ d_SMatrixInv

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixAtomicBasis< memorySpace >::d_SMatrixInv
private

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