DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
AuxDensityMatrix.h
Go to the documentation of this file.
1//
2// Created by Arghadwip Paul.
3//
4
5#ifndef DFTFE_AUXDM_AUXDENSITYMATRIX_H
6#define DFTFE_AUXDM_AUXDENSITYMATRIX_H
7
8#include <vector>
9#include <utility>
10#include <map>
11#include <string>
12#include <unordered_map>
13#include <mpi.h>
14#include <dftUtils.h>
15
16namespace dftfe
17{
30
37
38 template <dftfe::utils::MemorySpace memorySpace>
40 {
41 public:
42 /**
43 * @brief compute local descriptors of the aux basis electron-density
44 * representation at the supplied range of Quadrature index range
45 */
46 virtual void
48 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
49 std::unordered_map<
52 &densityData) = 0;
53
54
55
56 virtual void
58 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
59 std::unordered_map<
62 &wfcData) = 0;
63
64 /**
65 * @brief Compute aux basis overlap matrix batchwise contribution from
66 * supplied set of quadrature points and their associated weights
67 */
68 virtual void
71 &quadpts,
73 &quadWt) = 0;
74
75 /**
76 * @brief for MPI accumulation
77 */
78 virtual void
79 evalOverlapMatrixEnd(const MPI_Comm &mpiComm) = 0;
80
81 // FIXME: to be extended to memoryspace
82 /**
83 * @brief Projects the KS density matrix to aux basis (L2 projection) batch wise
84 */
85 virtual void
87 const std::unordered_map<std::string, std::vector<dataTypes::number>>
88 &projectionInputsDataType,
89 const std::unordered_map<
90 std::string,
92 &projectionInputsReal,
93 const dftfe::Int iSpin) = 0;
94
95 /**
96 * @brief for MPI accumulation
97 */
98 virtual void
99 projectDensityMatrixEnd(const MPI_Comm &mpiComm) = 0;
100
101
102 /**
103 * @brief Projects the quadrature density to aux basis (L2 projection) batch wise
104 */
105 virtual void
107 const std::unordered_map<
108 std::string,
110 &projectionInputs) = 0;
111
112 /**
113 * @brief for MPI accumulation
114 */
115 virtual void
116 projectDensityEnd(const MPI_Comm &mpiComm) = 0;
117 };
118} // namespace dftfe
119
120#endif // DFTFE_AUXDM_AUXDENSITYMATRIX_H
Definition AuxDensityMatrix.h:40
virtual void evalOverlapMatrixEnd(const MPI_Comm &mpiComm)=0
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)=0
Projects the KS density matrix to aux basis (L2 projection) batch wise.
virtual void evalOverlapMatrixStart(const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadpts, const dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > &quadWt)=0
Compute aux basis overlap matrix batchwise contribution from supplied set of quadrature points and th...
virtual void projectDensityMatrixEnd(const MPI_Comm &mpiComm)=0
for MPI accumulation
virtual void projectDensityStart(const std::unordered_map< std::string, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &projectionInputs)=0
Projects the quadrature density to aux basis (L2 projection) batch wise.
virtual void applyLocalOperations(const std::pair< dftfe::uInt, dftfe::uInt > &quadIndexRange, std::unordered_map< WfcDescriptorDataAttributes, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &wfcData)=0
virtual void projectDensityEnd(const MPI_Comm &mpiComm)=0
for MPI accumulation
virtual void applyLocalOperations(const std::pair< dftfe::uInt, dftfe::uInt > &quadIndexRange, std::unordered_map< DensityDescriptorDataAttributes, dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityData)=0
compute local descriptors of the aux basis electron-density representation at the supplied range of Q...
Definition MemoryStorage.h:33
Definition pseudoPotentialToDftfeConverter.cc:34
DensityDescriptorDataAttributes
Definition AuxDensityMatrix.h:19
@ gradValuesSpinUp
Definition AuxDensityMatrix.h:23
@ laplacianSpinUp
Definition AuxDensityMatrix.h:27
@ gradValuesSpinDown
Definition AuxDensityMatrix.h:24
@ valuesSpinUp
Definition AuxDensityMatrix.h:21
@ laplacianSpinDown
Definition AuxDensityMatrix.h:28
@ hessianSpinUp
Definition AuxDensityMatrix.h:25
@ hessianSpinDown
Definition AuxDensityMatrix.h:26
@ valuesTotal
Definition AuxDensityMatrix.h:20
@ valuesSpinDown
Definition AuxDensityMatrix.h:22
std::int32_t Int
Definition TypeConfig.h:11
WfcDescriptorDataAttributes
Definition AuxDensityMatrix.h:32
@ tauSpinUp
Definition AuxDensityMatrix.h:34
@ tauSpinDown
Definition AuxDensityMatrix.h:35
@ tauTotal
Definition AuxDensityMatrix.h:33