DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
linearAlgebraOperationsDeviceKernels.h
Go to the documentation of this file.
1#ifndef linearAlgebraOperationsDeviceKernels_H
2#define linearAlgebraOperationsDeviceKernels_H
3#include <DeviceAPICalls.h>
6namespace dftfe
7{
9 {
10 template <typename ValueType1, typename ValueType2>
11 void
12 addSubspaceRotatedBlockToX(const unsigned int BDof,
13 const unsigned int BVec,
14 const ValueType1 * rotatedXBlockSP,
15 ValueType2 * X,
16 const unsigned int startingDofId,
17 const unsigned int startingVecId,
18 const unsigned int N,
19 dftfe::utils::deviceStream_t &streamCompute);
20
21 template <typename ValueType1, typename ValueType2>
22 void
24 const unsigned int B,
25 const unsigned int D,
26 const ValueType1 * overlapMatrixBlock,
27 ValueType1 * overlapMatrixBlockDP,
28 ValueType2 * overlapMatrixBlockSP,
29 dftfe::utils::deviceStream_t &streamDataMove);
30
31 template <typename ValueType1, typename ValueType2>
32 void
33 computeDiagQTimesX(const ValueType1 * diagValues,
34 ValueType2 * X,
35 const unsigned int N,
36 const unsigned int M);
37
38 template <typename ValueType>
39 void
40 computeResidualDevice(const unsigned int numVectors,
41 const unsigned int numDofs,
42 const unsigned int N,
43 const unsigned int startingVecId,
44 const double * eigenValues,
45 const ValueType * X,
46 const ValueType * Y,
47 double * r);
48
49 template <typename ValueType>
50 void
51 computeGeneralisedResidualDevice(const unsigned int numVectors,
52 const unsigned int numDofs,
53 const unsigned int N,
54 const unsigned int startingVecId,
55 const ValueType * X,
56 double * residualSqDevice);
57
58
59 template <typename ValueType>
60 void
61 setZero(const unsigned int BVec,
62 const unsigned int M,
63 const unsigned int N,
64 ValueType * yVec,
65 const unsigned int startingXVecId);
66
67 } // namespace linearAlgebraOperationsDevice
68} // namespace dftfe
69#endif
Definition linearAlgebraOperationsDeviceKernels.h:9
void computeResidualDevice(const unsigned int numVectors, const unsigned int numDofs, const unsigned int N, const unsigned int startingVecId, const double *eigenValues, const ValueType *X, const ValueType *Y, double *r)
void setZero(const unsigned int BVec, const unsigned int M, const unsigned int N, ValueType *yVec, const unsigned int startingXVecId)
void addSubspaceRotatedBlockToX(const unsigned int BDof, const unsigned int BVec, const ValueType1 *rotatedXBlockSP, ValueType2 *X, const unsigned int startingDofId, const unsigned int startingVecId, const unsigned int N, dftfe::utils::deviceStream_t &streamCompute)
void computeGeneralisedResidualDevice(const unsigned int numVectors, const unsigned int numDofs, const unsigned int N, const unsigned int startingVecId, const ValueType *X, double *residualSqDevice)
void computeDiagQTimesX(const ValueType1 *diagValues, ValueType2 *X, const unsigned int N, const unsigned int M)
void copyFromOverlapMatBlockToDPSPBlocks(const unsigned int B, const unsigned int D, const ValueType1 *overlapMatrixBlock, ValueType1 *overlapMatrixBlockDP, ValueType2 *overlapMatrixBlockSP, dftfe::utils::deviceStream_t &streamDataMove)
cudaStream_t deviceStream_t
Definition DeviceTypeConfig.cu.h:27
Definition pseudoPotentialToDftfeConverter.cc:34