DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::linearAlgebra::multiVectorOpsInternal Namespace Reference

Functions

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
static void projectImpl (MultiVectorProductSpace< ValueTypeOperand, memorySpace > &X, const bool spaceBlocked, const std::shared_ptr< const ProcessGrid > &processGrid, ScaLAPACKMatrix< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > > *overlapMatPars, const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &Op, const size_type eigenVecBatchSize, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XinBatch, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XoutBatch, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XinBatchSmall, std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &XoutBatchSmall)
 
template<typename ValueType1 , typename ValueType2 , utils::MemorySpace memorySpace>
static void copyBatchImpl (const ValueType1 *copyFromVec, size_type srcLeadingDim, size_type srcSpaceStride, size_type srcBase, ValueType2 *copyToVec, size_type dstLeadingDim, size_type dstSpaceStride, size_type dstBase, size_type vecSize, size_type numSpaces, size_type numVecBatch, LinAlgOpContext< memorySpace > &context)
 
template<typename ValueType , utils::MemorySpace memorySpace>
static void rotateImpl (MultiVectorProductSpace< ValueType, memorySpace > &X, const bool spaceBlocked, const std::shared_ptr< const ProcessGrid > &processGrid, const ScaLAPACKMatrix< ValueType > *rotationMatPars, const size_type subspaceRotDofsBlockSize, const size_type wfcBlockSize, const bool rotationMatTranspose=false, const bool isRotationMatLowerTria=false, const bool allowFullCPUMemSubspaceRot=(memorySpace==utils::MemorySpace::DEVICE ? true :false))
 

Function Documentation

◆ copyBatchImpl()

template<typename ValueType1 , typename ValueType2 , utils::MemorySpace memorySpace>
static void dftefe::linearAlgebra::multiVectorOpsInternal::copyBatchImpl ( const ValueType1 *  copyFromVec,
size_type  srcLeadingDim,
size_type  srcSpaceStride,
size_type  srcBase,
ValueType2 *  copyToVec,
size_type  dstLeadingDim,
size_type  dstSpaceStride,
size_type  dstBase,
size_type  vecSize,
size_type  numSpaces,
size_type  numVecBatch,
LinAlgOpContext< memorySpace > &  context 
)
static

◆ projectImpl()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
static void dftefe::linearAlgebra::multiVectorOpsInternal::projectImpl ( MultiVectorProductSpace< ValueTypeOperand, memorySpace > &  X,
const bool  spaceBlocked,
const std::shared_ptr< const ProcessGrid > &  processGrid,
ScaLAPACKMatrix< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > > *  overlapMatPars,
const OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > &  Op,
const size_type  eigenVecBatchSize,
std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &  XinBatch,
std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &  XoutBatch,
std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &  XinBatchSmall,
std::shared_ptr< MultiVector< blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > > &  XoutBatchSmall 
)
static
Here is the call graph for this function:

◆ rotateImpl()

template<typename ValueType , utils::MemorySpace memorySpace>
static void dftefe::linearAlgebra::multiVectorOpsInternal::rotateImpl ( MultiVectorProductSpace< ValueType, memorySpace > &  X,
const bool  spaceBlocked,
const std::shared_ptr< const ProcessGrid > &  processGrid,
const ScaLAPACKMatrix< ValueType > *  rotationMatPars,
const size_type  subspaceRotDofsBlockSize,
const size_type  wfcBlockSize,
const bool  rotationMatTranspose = false,
const bool  isRotationMatLowerTria = false,
const bool  allowFullCPUMemSubspaceRot = (memorySpace == utils::MemorySpace::DEVICE ? true : false) 
)
static
Here is the call graph for this function: