DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize > Class Template Reference

MatrixFree class template. template parameter nDofsPerDim is the finite element polynomial order. nQuadPointsPerDim is the order of the Gauss quadrature rule. batchSize is the size of batch tuned to hardware. More...

#include <MatrixFree.h>

Public Member Functions

 MatrixFree (const MPI_Comm &mpi_comm, const dealii::MatrixFree< 3, double > *matrixFreeDataPtr, const dealii::AffineConstraints< double > &constraintMatrix, const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr, const std::uint32_t dofHandlerID, const std::uint32_t quadratureID, const dftfe::uInt nVectors)
 Constructor.
void init ()
 Initialize data structures for MatrixFree class.
void initOperatorCoeffs (T coeffHelmholtz)
 Initialize Helmholtz operator coefficient.
void computeAX (T *dst, T *src)
 Compute Laplace operator multipled by X.
void constraintsDistribute (T *src)
 Apply constraints to src vector.
void constraintsDistributeTranspose (T *dst, T *src)
 Apply transpose of constraints to src vector and set zero on src.

Private Types

typedef std::conditional_t< isComplex, std::complex< T >, T > DataType

Private Member Functions

void initConstraints ()
 Initialize optimized constraints.
void setupConstraints (const dealii::IndexSet &indexSet)

Private Attributes

const std::uint32_t d_dofHandlerID
const std::uint32_t d_quadratureID
const std::uint32_t d_nDofsPerCell
const std::uint32_t d_nQuadsPerCell
const dftfe::uInt d_nVectors
const dftfe::uInt d_nBatch
dftfe::uInt d_nOwnedDofs
dftfe::uInt d_nRelaventDofs
dftfe::uInt d_nGhostDofs
dftfe::uInt d_nCells
dftfe::uInt d_localBlockSize
dftfe::uInt d_localSize
dftfe::uInt d_ghostBlockSize
dftfe::uInt d_ghostSize
dftfe::uInt d_nOMPThreads
d_coeffHelmholtz
std::array< T, d_quadEDim *d_dofEDim+d_quadODim *d_dofODimnodalShapeFunctionValuesAtQuadPointsEO
std::array< T, 2 *d_quadODim *d_quadEDimquadShapeFunctionGradientsAtQuadPointsEO
std::array< T, nQuadPointsPerDim > quadratureWeights
dftfe::utils::MemoryStorage< T, memorySpace > d_jacobianFactor
dftfe::utils::MemoryStorage< dftfe::uInt, memorySpace > d_map
std::vector< std::vector< dftfe::uInt > > d_constrainingNodeBuckets
std::vector< std::vector< dftfe::uInt > > d_constrainedNodeBuckets
std::vector< std::vector< T > > d_weightMatrixList
std::vector< T > d_inhomogenityList
dftfe::utils::MemoryStorage< T, dftfe::utils::MemorySpace::DEVICEd_weightMatrixListDevice
dftfe::utils::MemoryStorage< T, dftfe::utils::MemorySpace::DEVICEd_inhomogenityListDevice
dftfe::utils::MemoryStorage< dftfe::uInt, dftfe::utils::MemorySpace::DEVICEd_constrainingNodeBucketsDevice
dftfe::utils::MemoryStorage< dftfe::uInt, dftfe::utils::MemorySpace::DEVICEd_constrainedNodeBucketsDevice
dftfe::utils::MemoryStorage< dftfe::uInt, dftfe::utils::MemorySpace::DEVICEd_constrainingNodeOffsetDevice
dftfe::utils::MemoryStorage< dftfe::uInt, dftfe::utils::MemorySpace::DEVICEd_constrainedNodeOffsetDevice
dftfe::utils::MemoryStorage< dftfe::uInt, dftfe::utils::MemorySpace::DEVICEd_weightMatrixOffsetDevice
dftfe::utils::MemoryStorage< T, dftfe::utils::MemorySpace::DEVICEshapeBufferDevice
const dealii::MatrixFree< 3, double > * d_matrixFreeDataPtr
const dealii::AffineConstraints< double > * d_constraintMatrixPtr
const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > d_BLASWrapperPtr
std::shared_ptr< const dealii::Utilities::MPI::Partitioner > d_singleVectorPartitioner
std::shared_ptr< const dealii::Utilities::MPI::Partitioner > d_singleBatchPartitioner
dealii::ConditionalOStream pcout
const MPI_Comm mpi_communicator
const std::uint32_t n_mpi_processes
const std::uint32_t this_mpi_process
std::vector< T > tempGhostStorage
std::vector< T > tempCompressStorage
std::vector< MPI_Request > mpiRequestsGhost
std::vector< MPI_Request > mpiRequestsCompress

Static Private Attributes

static constexpr std::uint32_t d_quadODim = nQuadPointsPerDim / 2
static constexpr std::uint32_t d_quadEDim
static constexpr std::uint32_t d_dofODim = nDofsPerDim / 2
static constexpr std::uint32_t d_dofEDim

Detailed Description

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
class dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >

MatrixFree class template. template parameter nDofsPerDim is the finite element polynomial order. nQuadPointsPerDim is the order of the Gauss quadrature rule. batchSize is the size of batch tuned to hardware.

Author
Gourab Panigrahi

Member Typedef Documentation

◆ DataType

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
typedef std::conditional_t<isComplex, std::complex<T>, T> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::DataType
private

Constructor & Destructor Documentation

◆ MatrixFree()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::MatrixFree ( const MPI_Comm & mpi_comm,
const dealii::MatrixFree< 3, double > * matrixFreeDataPtr,
const dealii::AffineConstraints< double > & constraintMatrix,
const std::shared_ptr< dftfe::linearAlgebra::BLASWrapper< memorySpace > > BLASWrapperPtr,
const std::uint32_t dofHandlerID,
const std::uint32_t quadratureID,
const dftfe::uInt nVectors )

Constructor.

Member Function Documentation

◆ computeAX()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::computeAX ( T * dst,
T * src )
inline

Compute Laplace operator multipled by X.

◆ constraintsDistribute()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::constraintsDistribute ( T * src)
inline

Apply constraints to src vector.

◆ constraintsDistributeTranspose()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::constraintsDistributeTranspose ( T * dst,
T * src )
inline

Apply transpose of constraints to src vector and set zero on src.

◆ init()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::init ( )
inline

Initialize data structures for MatrixFree class.

◆ initConstraints()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::initConstraints ( )
private

Initialize optimized constraints.

◆ initOperatorCoeffs()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::initOperatorCoeffs ( T coeffHelmholtz)
inline

Initialize Helmholtz operator coefficient.

◆ setupConstraints()

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::setupConstraints ( const dealii::IndexSet & indexSet)
private

Member Data Documentation

◆ d_BLASWrapperPtr

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::shared_ptr<dftfe::linearAlgebra::BLASWrapper<memorySpace> > dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_BLASWrapperPtr
private

◆ d_coeffHelmholtz

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
T dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_coeffHelmholtz
private

◆ d_constrainedNodeBuckets

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<std::vector<dftfe::uInt> > dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainedNodeBuckets
private

◆ d_constrainedNodeBucketsDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<dftfe::uInt, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainedNodeBucketsDevice
private

◆ d_constrainedNodeOffsetDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<dftfe::uInt, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainedNodeOffsetDevice
private

◆ d_constrainingNodeBuckets

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<std::vector<dftfe::uInt> > dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainingNodeBuckets
private

◆ d_constrainingNodeBucketsDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<dftfe::uInt, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainingNodeBucketsDevice
private

◆ d_constrainingNodeOffsetDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<dftfe::uInt, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainingNodeOffsetDevice
private

◆ d_constraintMatrixPtr

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const dealii::AffineConstraints<double>* dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constraintMatrixPtr
private

◆ d_dofEDim

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_dofEDim
staticconstexprprivate
Initial value:
=
nDofsPerDim % 2 == 1 ? d_dofODim + 1 : d_dofODim
static constexpr std::uint32_t d_dofODim
Definition MatrixFree.h:131

◆ d_dofHandlerID

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_dofHandlerID
private

◆ d_dofODim

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_dofODim = nDofsPerDim / 2
staticconstexprprivate

◆ d_ghostBlockSize

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_ghostBlockSize
private

◆ d_ghostSize

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_ghostSize
private

◆ d_inhomogenityList

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<T> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_inhomogenityList
private

◆ d_inhomogenityListDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<T, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_inhomogenityListDevice
private

◆ d_jacobianFactor

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<T, memorySpace> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_jacobianFactor
private

◆ d_localBlockSize

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_localBlockSize
private

◆ d_localSize

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_localSize
private

◆ d_map

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<dftfe::uInt, memorySpace> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_map
private

◆ d_matrixFreeDataPtr

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const dealii::MatrixFree<3, double>* dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_matrixFreeDataPtr
private

◆ d_nBatch

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nBatch
private

◆ d_nCells

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nCells
private

◆ d_nDofsPerCell

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nDofsPerCell
private

◆ d_nGhostDofs

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nGhostDofs
private

◆ d_nOMPThreads

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nOMPThreads
private

◆ d_nOwnedDofs

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nOwnedDofs
private

◆ d_nQuadsPerCell

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nQuadsPerCell
private

◆ d_nRelaventDofs

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nRelaventDofs
private

◆ d_nVectors

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const dftfe::uInt dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nVectors
private

◆ d_quadEDim

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_quadEDim
staticconstexprprivate
Initial value:
=
nQuadPointsPerDim % 2 == 1 ? d_quadODim + 1 : d_quadODim
static constexpr std::uint32_t d_quadODim
Definition MatrixFree.h:128

◆ d_quadODim

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_quadODim = nQuadPointsPerDim / 2
staticconstexprprivate

◆ d_quadratureID

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_quadratureID
private

◆ d_singleBatchPartitioner

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::shared_ptr<const dealii::Utilities::MPI::Partitioner> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_singleBatchPartitioner
private

◆ d_singleVectorPartitioner

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::shared_ptr<const dealii::Utilities::MPI::Partitioner> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_singleVectorPartitioner
private

◆ d_weightMatrixList

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<std::vector<T> > dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_weightMatrixList
private

◆ d_weightMatrixListDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<T, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_weightMatrixListDevice
private

◆ d_weightMatrixOffsetDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<dftfe::uInt, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_weightMatrixOffsetDevice
private

◆ mpi_communicator

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const MPI_Comm dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::mpi_communicator
private

◆ mpiRequestsCompress

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<MPI_Request> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::mpiRequestsCompress
private

◆ mpiRequestsGhost

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<MPI_Request> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::mpiRequestsGhost
private

◆ n_mpi_processes

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::n_mpi_processes
private

◆ nodalShapeFunctionValuesAtQuadPointsEO

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::array<T, d_quadEDim * d_dofEDim + d_quadODim * d_dofODim> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::nodalShapeFunctionValuesAtQuadPointsEO
private

◆ pcout

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dealii::ConditionalOStream dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::pcout
private

◆ quadratureWeights

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::array<T, nQuadPointsPerDim> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::quadratureWeights
private

◆ quadShapeFunctionGradientsAtQuadPointsEO

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::array<T, 2 * d_quadODim * d_quadEDim> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::quadShapeFunctionGradientsAtQuadPointsEO
private

◆ shapeBufferDevice

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftfe::utils::MemoryStorage<T, dftfe::utils::MemorySpace::DEVICE> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::shapeBufferDevice
private

◆ tempCompressStorage

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<T> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::tempCompressStorage
private

◆ tempGhostStorage

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
std::vector<T> dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::tempGhostStorage
private

◆ this_mpi_process

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
const std::uint32_t dftfe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::this_mpi_process
private

The documentation for this class was generated from the following file: