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

#include <AuxDensityMatrixFE.h>

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

Public Member Functions

void setDensityMatrixComponents (const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectorsFlattenedMemSpace, const std::vector< std::vector< double > > &fractionalOccupancies)
 
void applyLocalOperations (const std::vector< double > &points, 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
 Projects the KS density matrix to aux basis (L2 projection) batch wise.
 
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). This is actually a copy call. All the local partition quadrature points must to be passed to this function in one go.
 
void projectDensityEnd (const MPI_Comm &mpiComm) override
 for MPI accumulation
 
const std::vector< std::vector< double > > * getDensityMatrixComponents_occupancies () const
 
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * getDensityMatrixComponents_wavefunctions () const
 

Private Attributes

const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * d_eigenVectorsFlattenedMemSpacePtr
 
const std::vector< std::vector< double > > * d_fractionalOccupancies
 
std::vector< double > d_densityValsTotalAllQuads
 
std::vector< double > d_densityValsSpinUpAllQuads
 
std::vector< double > d_densityValsSpinDownAllQuads
 
std::vector< double > d_gradDensityValsSpinUpAllQuads
 
std::vector< double > d_gradDensityValsSpinDownAllQuads
 
std::vector< double > d_quadPointsAll
 
std::vector< double > d_quadWeightsAll
 

Member Function Documentation

◆ applyLocalOperations()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixFE< 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::AuxDensityMatrixFE< memorySpace >::evalOverlapMatrixEnd ( const MPI_Comm & mpiComm)
overridevirtual

for MPI accumulation

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ evalOverlapMatrixStart()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixFE< 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 >.

◆ getDensityMatrixComponents_occupancies()

template<dftfe::utils::MemorySpace memorySpace>
const std::vector< std::vector< double > > * dftfe::AuxDensityMatrixFE< memorySpace >::getDensityMatrixComponents_occupancies ( ) const

◆ getDensityMatrixComponents_wavefunctions()

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * dftfe::AuxDensityMatrixFE< memorySpace >::getDensityMatrixComponents_wavefunctions ( ) const

◆ projectDensityEnd()

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

for MPI accumulation

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ projectDensityMatrixEnd()

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

for MPI accumulation

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ projectDensityMatrixStart()

template<dftfe::utils::MemorySpace memorySpace>
virtual void dftfe::AuxDensityMatrixFE< 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

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

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ projectDensityStart()

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

Projects the quadrature density to aux basis (L2 projection). This is actually a copy call. All the local partition quadrature points must to be passed to this function in one go.

Parameters
projectionInputsis a map from string to inputs needed for projection. projectionInputs["quadpts"], projectionInputs["quadWt"], projectionInputs["densityFunc"] projectionInputs["gradDensityFunc"]

densityFunc The density Values at quad points densityFunc(spin_index, quad_index), quad_index is fastest.

gradDensityFunc The density Values at quad points gradDensityFunc(spin_index, quad_index,dim_index), dim_index is fastest.

Implements dftfe::AuxDensityMatrix< memorySpace >.

◆ setDensityMatrixComponents()

template<dftfe::utils::MemorySpace memorySpace>
void dftfe::AuxDensityMatrixFE< memorySpace >::setDensityMatrixComponents ( const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > & eigenVectorsFlattenedMemSpace,
const std::vector< std::vector< double > > & fractionalOccupancies )

Member Data Documentation

◆ d_densityValsSpinDownAllQuads

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_densityValsSpinDownAllQuads
private

◆ d_densityValsSpinUpAllQuads

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_densityValsSpinUpAllQuads
private

◆ d_densityValsTotalAllQuads

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_densityValsTotalAllQuads
private

◆ d_eigenVectorsFlattenedMemSpacePtr

template<dftfe::utils::MemorySpace memorySpace>
const dftfe::utils::MemoryStorage<dataTypes::number, memorySpace>* dftfe::AuxDensityMatrixFE< memorySpace >::d_eigenVectorsFlattenedMemSpacePtr
private

◆ d_fractionalOccupancies

template<dftfe::utils::MemorySpace memorySpace>
const std::vector<std::vector<double> >* dftfe::AuxDensityMatrixFE< memorySpace >::d_fractionalOccupancies
private

◆ d_gradDensityValsSpinDownAllQuads

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_gradDensityValsSpinDownAllQuads
private

◆ d_gradDensityValsSpinUpAllQuads

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_gradDensityValsSpinUpAllQuads
private

◆ d_quadPointsAll

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_quadPointsAll
private

◆ d_quadWeightsAll

template<dftfe::utils::MemorySpace memorySpace>
std::vector<double> dftfe::AuxDensityMatrixFE< memorySpace >::d_quadWeightsAll
private

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