1#ifndef linearAlgebraOperationsDeviceKernels_H
2#define linearAlgebraOperationsDeviceKernels_H
10 template <
typename ValueType1,
typename ValueType2>
14 const ValueType1 *rotatedXBlockSP,
21 template <
typename ValueType1,
typename ValueType2>
26 const ValueType1 *overlapMatrixBlock,
27 ValueType1 *overlapMatrixBlockDP,
28 ValueType2 *overlapMatrixBlockSP,
31 template <
typename ValueType1,
typename ValueType2>
38 template <
typename ValueType>
44 const double *eigenValues,
49 template <
typename ValueType>
56 double *residualSqDevice);
59 template <
typename ValueType>
Definition linearAlgebraOperationsDeviceKernels.h:9
void setZero(const dftfe::uInt BVec, const dftfe::uInt M, const dftfe::uInt N, ValueType *yVec, const dftfe::uInt startingXVecId)
void computeResidualDevice(const dftfe::uInt numVectors, const dftfe::uInt numDofs, const dftfe::uInt N, const dftfe::uInt startingVecId, const double *eigenValues, const ValueType *X, const ValueType *Y, double *r)
void addSubspaceRotatedBlockToX(const dftfe::uInt BDof, const dftfe::uInt BVec, const ValueType1 *rotatedXBlockSP, ValueType2 *X, const dftfe::uInt startingDofId, const dftfe::uInt startingVecId, const dftfe::uInt N, dftfe::utils::deviceStream_t &streamCompute)
void copyFromOverlapMatBlockToDPSPBlocks(const dftfe::uInt B, const dftfe::uInt D, const ValueType1 *overlapMatrixBlock, ValueType1 *overlapMatrixBlockDP, ValueType2 *overlapMatrixBlockSP, dftfe::utils::deviceStream_t &streamDataMove)
void computeGeneralisedResidualDevice(const dftfe::uInt numVectors, const dftfe::uInt numDofs, const dftfe::uInt N, const dftfe::uInt startingVecId, const ValueType *X, double *residualSqDevice)
void computeDiagQTimesX(const ValueType1 *diagValues, ValueType2 *X, const dftfe::uInt N, const dftfe::uInt M)
cudaStream_t deviceStream_t
Definition DeviceTypeConfig.cu.h:27
Definition pseudoPotentialToDftfeConverter.cc:34
std::uint32_t uInt
Definition TypeConfig.h:10