19#ifndef densityFirstOrderResponseCalculator_H_
20#define densityFirstOrderResponseCalculator_H_
31 template <
typename NumberType, dftfe::utils::MemorySpace memorySpace>
37 const std::vector<std::vector<double>> &densityMatDerFermiEnergy,
45 const std::vector<double> &kPointWeights,
48 &rhoResponseValuesHam,
51 &rhoResponseValuesFermiEnergy,
52 const MPI_Comm &mpiCommParent,
53 const MPI_Comm &interpoolcomm,
54 const MPI_Comm &interBandGroupComm,
58 template <
typename NumberType>
64 const std::pair<dftfe::uInt, dftfe::uInt> cellRange,
65 const std::pair<dftfe::uInt, dftfe::uInt> vecRange,
68 double *partialOccupPrimeVec,
69 NumberType *wfcQuadPointData,
70 NumberType *wfcPrimeQuadPointData,
71 double *rhoResponseHamCellsWfcContributions,
72 double *rhoResponseFermiEnergyCellsWfcContributions,
73 double *rhoResponseHam,
74 double *rhoResponseFermiEnergy);
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
std::uint32_t uInt
Definition TypeConfig.h:10
void computeRhoResponseFromInterpolatedValues(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 *onesVec, double *partialOccupPrimeVec, NumberType *wfcQuadPointData, NumberType *wfcPrimeQuadPointData, double *rhoResponseHamCellsWfcContributions, double *rhoResponseFermiEnergyCellsWfcContributions, double *rhoResponseHam, double *rhoResponseFermiEnergy)
void computeRhoFirstOrderResponse(const dftfe::utils::MemoryStorage< NumberType, memorySpace > &X, const dftfe::utils::MemoryStorage< NumberType, memorySpace > &XPrime, const dftfe::uInt totalNumWaveFunctions, const std::vector< std::vector< double > > &densityMatDerFermiEnergy, 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 > &kPointWeights, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &rhoResponseValuesHam, std::vector< dftfe::utils::MemoryStorage< double, dftfe::utils::MemorySpace::HOST > > &rhoResponseValuesFermiEnergy, const MPI_Comm &mpiCommParent, const MPI_Comm &interpoolcomm, const MPI_Comm &interBandGroupComm, const dftParameters &dftParams)