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{
31
38
39 template <dftfe::utils::MemorySpace memorySpace>
41 {
42 public:
43 /**
44 * @brief compute local descriptors of the aux basis electron-density
45 * representation at the supplied range of Quadrature index range
46 */
47 virtual void
49 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
50 std::unordered_map<
53 &densityData) = 0;
54
55
56
57 virtual void
59 const std::pair<dftfe::uInt, dftfe::uInt> &quadIndexRange,
60 std::unordered_map<
63 &wfcData) = 0;
64
65 /**
66 * @brief Compute aux basis overlap matrix batchwise contribution from
67 * supplied set of quadrature points and their associated weights
68 */
69 virtual void
72 &quadpts,
74 &quadWt) = 0;
75
76 /**
77 * @brief for MPI accumulation
78 */
79 virtual void
80 evalOverlapMatrixEnd(const MPI_Comm &mpiComm) = 0;
81
82 // FIXME: to be extended to memoryspace
83 /**
84 * @brief Projects the KS density matrix to aux basis (L2 projection) batch wise
85 */
86 virtual void
88 const std::unordered_map<std::string, std::vector<dataTypes::number>>
89 &projectionInputsDataType,
90 const std::unordered_map<
91 std::string,
93 &projectionInputsReal,
94 const dftfe::Int iSpin) = 0;
95
96 /**
97 * @brief for MPI accumulation
98 */
99 virtual void
100 projectDensityMatrixEnd(const MPI_Comm &mpiComm) = 0;
101
102
103 /**
104 * @brief Projects the quadrature density to aux basis (L2 projection) batch wise
105 */
106 virtual void
108 const std::unordered_map<
109 std::string,
111 &projectionInputs) = 0;
112
113 /**
114 * @brief for MPI accumulation
115 */
116 virtual void
117 projectDensityEnd(const MPI_Comm &mpiComm) = 0;
118 };
119} // namespace dftfe
120
121#endif // DFTFE_AUXDM_AUXDENSITYMATRIX_H
Definition AuxDensityMatrix.h:41
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
@ magAxisValues
Definition AuxDensityMatrix.h:29
@ 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:33
@ tauSpinUp
Definition AuxDensityMatrix.h:35
@ tauSpinDown
Definition AuxDensityMatrix.h:36
@ tauTotal
Definition AuxDensityMatrix.h:34