DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
AuxDensityMatrixFE.h
Go to the documentation of this file.
1//
2// Created by Sambit Das.
3//
4
5#ifndef DFTFE_AUXDM_AUXDENSITYMATRIXFE_H
6#define DFTFE_AUXDM_AUXDENSITYMATRIXFE_H
7
8#include <vector>
9#include <utility>
10#include <AuxDensityMatrix.h>
11
12namespace dftfe
13{
14 template <dftfe::utils::MemorySpace memorySpace>
15 class AuxDensityMatrixFE : public AuxDensityMatrix<memorySpace>
16 {
17 public:
18 // FIXME: to be implemented
19
20 void
23 &eigenVectorsFlattenedMemSpace,
24 const std::vector<std::vector<double>> &fractionalOccupancies);
25
26
27 void
29 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
30 std::unordered_map<
33 &densityData) override;
34
35
36
37 void
39 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
40 std::unordered_map<
43 &wfcData) override;
44
45 void
48 &quadpts,
50 &quadWt) override;
51
52 void
53 evalOverlapMatrixEnd(const MPI_Comm &mpiComm) override;
54
55 virtual void
57 const std::unordered_map<std::string, std::vector<dataTypes::number>>
58 &projectionInputsDataType,
59 const std::unordered_map<
60 std::string,
62 &projectionInputsReal,
63 const dftfe::Int iSpin) override;
64
65 void
66 projectDensityMatrixEnd(const MPI_Comm &mpiComm) override;
67
68 /**
69 * @brief Projects the quadrature density to aux basis (L2 projection).
70 * This is actually a copy call. All the local partition quadrature points
71 * must to be passed to this function in one go
72 *
73 * @param projectionInputs is a map from string to inputs needed
74 * for projection.
75 * projectionInputs["quadpts"],
76 * projectionInputs["quadWt"],
77 * projectionInputs["densityFunc"]
78 * projectionInputs["gradDensityFunc"]
79 *
80 * densityFunc The density Values at quad points
81 * densityFunc(spin_index, quad_index),
82 * quad_index is fastest.
83 *
84 * gradDensityFunc The density Values at quad points
85 * gradDensityFunc(spin_index, quad_index,dim_index),
86 * dim_index is fastest.
87 *
88 */
89 void
91 const std::unordered_map<
92 std::string,
94 &projectionInputs) override;
95
96 void
97 projectDensityEnd(const MPI_Comm &mpiComm) override;
98
99 const std::vector<std::vector<double>> *
101
104
105 private:
108
109 const std::vector<std::vector<double>> *d_fractionalOccupancies;
110
127
132 };
133} // namespace dftfe
134
135#endif // DFTFE_AUXDM_AUXDENSITYMATRIXFE_H
Definition AuxDensityMatrixFE.h:16
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_densityValsSpinDownAllQuads
Definition AuxDensityMatrixFE.h:116
void projectDensityEnd(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, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &projectionInputsReal, const dftfe::Int iSpin) override
Projects the KS density matrix to aux basis (L2 projection) batch wise.
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_quadWeightsAll
Definition AuxDensityMatrixFE.h:131
void evalOverlapMatrixStart(const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadpts, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadWt) override
Compute aux basis overlap matrix batchwise contribution from supplied set of quadrature points and th...
const std::vector< std::vector< double > > * getDensityMatrixComponents_occupancies() const
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_tauValsSpinDownAllQuads
Definition AuxDensityMatrixFE.h:126
void projectDensityStart(const std::unordered_map< std::string, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &projectionInputs) override
Projects the quadrature density to aux basis (L2 projection). This is actually a copy call....
void applyLocalOperations(const std::pair< dftfe::uInt, dftfe::uInt > &quadIndexRange, std::unordered_map< DensityDescriptorDataAttributes, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityData) override
compute local descriptors of the aux basis electron-density representation at the supplied range of Q...
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_quadPointsAll
Definition AuxDensityMatrixFE.h:129
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_gradDensityValsSpinUpAllQuads
Definition AuxDensityMatrixFE.h:118
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * getDensityMatrixComponents_wavefunctions() const
void applyLocalOperations(const std::pair< dftfe::uInt, dftfe::uInt > &quadIndexRange, std::unordered_map< WfcDescriptorDataAttributes, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &wfcData) override
void evalOverlapMatrixEnd(const MPI_Comm &mpiComm) override
for MPI accumulation
const std::vector< std::vector< double > > * d_fractionalOccupancies
Definition AuxDensityMatrixFE.h:109
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_tauValsSpinUpAllQuads
Definition AuxDensityMatrixFE.h:124
void setDensityMatrixComponents(const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > &eigenVectorsFlattenedMemSpace, const std::vector< std::vector< double > > &fractionalOccupancies)
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_gradDensityValsSpinDownAllQuads
Definition AuxDensityMatrixFE.h:120
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_densityValsTotalAllQuads
Definition AuxDensityMatrixFE.h:112
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_densityValsSpinUpAllQuads
Definition AuxDensityMatrixFE.h:114
const dftfe::utils::MemoryStorage< dataTypes::number, memorySpace > * d_eigenVectorsFlattenedMemSpacePtr
Definition AuxDensityMatrixFE.h:107
void projectDensityMatrixEnd(const MPI_Comm &mpiComm) override
for MPI accumulation
dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > d_tauValsTotalAllQuads
Definition AuxDensityMatrixFE.h:122
Definition AuxDensityMatrix.h:40
Definition MemoryStorage.h:33
Definition pseudoPotentialToDftfeConverter.cc:34
DensityDescriptorDataAttributes
Definition AuxDensityMatrix.h:19
std::int32_t Int
Definition TypeConfig.h:11
WfcDescriptorDataAttributes
Definition AuxDensityMatrix.h:32