DFT-EFE
 
Loading...
Searching...
No Matches
MultiVectorOps.t.cpp File Reference
#include <utils/Exceptions.h>
#include <utils/MPITypes.h>
#include <utils/MPIWrapper.h>
#include <utils/MemoryTransfer.h>
#include <linearAlgebra/BlasLapack.h>
#include <unordered_map>
#include <memory>
#include <algorithm>
Include dependency graph for MultiVectorOps.t.cpp:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  dftefe
 dealii includes
 
namespace  dftefe::linearAlgebra
 
namespace  dftefe::linearAlgebra::multiVectorOpsInternal
 

Functions

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)
 
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)
 
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))