DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::linearAlgebraOperationsDevice Namespace Reference

Functions

template<typename ValueType1, typename ValueType2>
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)
 
template<typename ValueType1, typename ValueType2>
void copyFromOverlapMatBlockToDPSPBlocks (const unsigned int B, const unsigned int D, const ValueType1 *overlapMatrixBlock, ValueType1 *overlapMatrixBlockDP, ValueType2 *overlapMatrixBlockSP, dftfe::utils::deviceStream_t &streamDataMove)
 
template<typename ValueType1, typename ValueType2>
void computeDiagQTimesX (const ValueType1 *diagValues, ValueType2 *X, const unsigned int N, const unsigned int M)
 
template<typename ValueType>
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)
 
template<typename ValueType>
void computeGeneralisedResidualDevice (const unsigned int numVectors, const unsigned int numDofs, const unsigned int N, const unsigned int startingVecId, const ValueType *X, double *residualSqDevice)
 
template<typename ValueType>
void setZero (const unsigned int BVec, const unsigned int M, const unsigned int N, ValueType *yVec, const unsigned int startingXVecId)
 

Function Documentation

◆ addSubspaceRotatedBlockToX()

template<typename ValueType1, typename ValueType2>
void dftfe::linearAlgebraOperationsDevice::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 )

◆ computeDiagQTimesX()

template<typename ValueType1, typename ValueType2>
void dftfe::linearAlgebraOperationsDevice::computeDiagQTimesX ( const ValueType1 * diagValues,
ValueType2 * X,
const unsigned int N,
const unsigned int M )

◆ computeGeneralisedResidualDevice()

template<typename ValueType>
void dftfe::linearAlgebraOperationsDevice::computeGeneralisedResidualDevice ( const unsigned int numVectors,
const unsigned int numDofs,
const unsigned int N,
const unsigned int startingVecId,
const ValueType * X,
double * residualSqDevice )

◆ computeResidualDevice()

template<typename ValueType>
void dftfe::linearAlgebraOperationsDevice::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 )

◆ copyFromOverlapMatBlockToDPSPBlocks()

template<typename ValueType1, typename ValueType2>
void dftfe::linearAlgebraOperationsDevice::copyFromOverlapMatBlockToDPSPBlocks ( const unsigned int B,
const unsigned int D,
const ValueType1 * overlapMatrixBlock,
ValueType1 * overlapMatrixBlockDP,
ValueType2 * overlapMatrixBlockSP,
dftfe::utils::deviceStream_t & streamDataMove )

◆ setZero()

template<typename ValueType>
void dftfe::linearAlgebraOperationsDevice::setZero ( const unsigned int BVec,
const unsigned int M,
const unsigned int N,
ValueType * yVec,
const unsigned int startingXVecId )