18#ifndef densityCalculator_H_
19#define densityCalculator_H_
27 template <
typename NumberType, dftfe::utils::MemorySpace memorySpace>
32 const std::vector<std::vector<double>> &partialOccupancies,
40 const std::vector<double> &kPointCoords,
41 const std::vector<double> &kPointWeights,
51 const bool isEvaluateGradRho,
52 const bool isEvaluateTau,
53 const MPI_Comm &mpiCommParent,
54 const MPI_Comm &interpoolcomm,
55 const MPI_Comm &interBandGroupComm,
59 template <
typename NumberType>
65 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
66 const std::pair<dftfe::uInt, dftfe::uInt> vecRange,
68 double *partialOccupVec,
69 NumberType *wfcQuadPointData,
70 NumberType *gradWfcQuadPointData,
71 double *rhoCellsWfcContributions,
72 double *gradRhoCellsWfcContributions,
75 const bool isEvaluateGradRho);
77 template <
typename NumberType>
83 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
84 const std::pair<dftfe::uInt, dftfe::uInt> vecRange,
86 double *partialOccupVec,
88 NumberType *wfcQuadPointData,
89 NumberType *gradWfcQuadPointData,
90 double *kineticEnergyDensityCellsWfcContributions,
Definition FEBasisOperations.h:85
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:36
Definition BLASWrapper.h:35
Definition MemoryStorage.h:33
Definition pseudoPotentialToDftfeConverter.cc:34
@ tau
Definition mixingClass.h:38
@ gradRho
Definition mixingClass.h:34
@ rho
Definition mixingClass.h:33
void computeRhoGradRhoFromInterpolatedValues(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, double *partialOccupVec, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *rhoCellsWfcContributions, double *gradRhoCellsWfcContributions, double *rho, double *gradRho, const bool isEvaluateGradRho)
std::uint32_t uInt
Definition TypeConfig.h:10
void computeRhoFromPSI(const dftfe::utils::MemoryStorage< NumberType, memorySpace > *X, const dftfe::uInt totalNumWaveFunctions, const std::vector< std::vector< double > > &partialOccupancies, std::shared_ptr< dftfe::basis::FEBasisOperations< NumberType, double, memorySpace > > &basisOperationsPtr, std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > &BLASWrapperPtr, const dftfe::uInt matrixFreeDofhandlerIndex, const dftfe::uInt quadratureIndex, const std::vector< double > &kPointCoords, const std::vector< double > &kPointWeights, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &densityValues, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &gradDensityValues, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &tauValues, const bool isEvaluateGradRho, const bool isEvaluateTau, const MPI_Comm &mpiCommParent, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)
void computeTauFromInterpolatedValues(std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< dftfe::utils::MemorySpace::HOST > > &BLASWrapperPtr, const std::pair< dftfe::uInt, dftfe::uInt > cellRange, const std::pair< dftfe::uInt, dftfe::uInt > vecRange, const dftfe::uInt nQuadsPerCell, double *partialOccupVec, double *kCoord, NumberType *wfcQuadPointData, NumberType *gradWfcQuadPointData, double *kineticEnergyDensityCellsWfcContributions, double *tau)