DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::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>

Collaboration diagram for dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >:

Public Member Functions

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

Private Types

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

Private Member Functions

void initConstraints ()
 Initialize optimized constraints. More...
 
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 dftefe::uInt d_nVectors
 
const dftefe::uInt d_nBatch
 
dftefe::uInt d_nOwnedDofs
 
dftefe::uInt d_nRelaventDofs
 
dftefe::uInt d_nGhostDofs
 
dftefe::uInt d_nCells
 
dftefe::uInt d_localBlockSize
 
dftefe::uInt d_localSize
 
dftefe::uInt d_ghostBlockSize
 
dftefe::uInt d_ghostSize
 
dftefe::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
 
dftefe::utils::MemoryStorage< T, memorySpace > d_jacobianFactor
 
dftefe::utils::MemoryStorage< dftefe::uInt, memorySpace > d_map
 
std::vector< std::vector< dftefe::uInt > > d_constrainingNodeBuckets
 
std::vector< std::vector< dftefe::uInt > > d_constrainedNodeBuckets
 
std::vector< std::vector< T > > d_weightMatrixList
 
std::vector< T > d_inhomogenityList
 
dftefe::utils::MemoryStorage< T, dftefe::utils::MemorySpace::DEVICEd_weightMatrixListDevice
 
dftefe::utils::MemoryStorage< T, dftefe::utils::MemorySpace::DEVICEd_inhomogenityListDevice
 
dftefe::utils::MemoryStorage< dftefe::uInt, dftefe::utils::MemorySpace::DEVICEd_constrainingNodeBucketsDevice
 
dftefe::utils::MemoryStorage< dftefe::uInt, dftefe::utils::MemorySpace::DEVICEd_constrainedNodeBucketsDevice
 
dftefe::utils::MemoryStorage< dftefe::uInt, dftefe::utils::MemorySpace::DEVICEd_constrainingNodeOffsetDevice
 
dftefe::utils::MemoryStorage< dftefe::uInt, dftefe::utils::MemorySpace::DEVICEd_constrainedNodeOffsetDevice
 
dftefe::utils::MemoryStorage< dftefe::uInt, dftefe::utils::MemorySpace::DEVICEd_weightMatrixOffsetDevice
 
dftefe::utils::MemoryStorage< T, dftefe::utils::MemorySpace::DEVICEshapeBufferDevice
 
const dealii::MatrixFree< 3, double > * d_matrixFreeDataPtr
 
const dealii::AffineConstraints< double > * d_constraintMatrixPtr
 
std::shared_ptr< const dealii::Utilities::MPI::Partitioner > d_singleVectorPartitioner
 
std::shared_ptr< const dealii::Utilities::MPI::Partitioner > d_singleBatchPartitioner
 
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, dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
class dftefe::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 , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::DataType
private

Constructor & Destructor Documentation

◆ MatrixFree()

template<typename T , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
dftefe::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::uint32_t  dofHandlerID,
const std::uint32_t  quadratureID,
const dftefe::uInt  nVectors 
)

Constructor.

Member Function Documentation

◆ computeAX()

template<typename T , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftefe::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 , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::constraintsDistribute ( T *  src)
inline

Apply constraints to src vector.

◆ constraintsDistributeTranspose()

template<typename T , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftefe::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 , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
void dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::init

Initialize data structures for MatrixFree class.

Here is the call graph for this function:

◆ initConstraints()

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

Initialize optimized constraints.

◆ initOperatorCoeffs()

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

Initialize Helmholtz operator coefficient.

◆ setupConstraints()

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

Member Data Documentation

◆ d_coeffHelmholtz

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

◆ d_constrainedNodeBuckets

template<typename T , dftefe::operatorList operatorID, dftefe::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<dftefe::uInt> > dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainedNodeBuckets
private

◆ d_constrainedNodeBucketsDevice

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

◆ d_constrainedNodeOffsetDevice

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

◆ d_constrainingNodeBuckets

template<typename T , dftefe::operatorList operatorID, dftefe::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<dftefe::uInt> > dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constrainingNodeBuckets
private

◆ d_constrainingNodeBucketsDevice

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

◆ d_constrainingNodeOffsetDevice

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

◆ d_constraintMatrixPtr

template<typename T , dftefe::operatorList operatorID, dftefe::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>* dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_constraintMatrixPtr
private

◆ d_dofEDim

template<typename T , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
constexpr std::uint32_t dftefe::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:133

◆ d_dofHandlerID

template<typename T , dftefe::operatorList operatorID, dftefe::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 dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_dofHandlerID
private

◆ d_dofODim

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

◆ d_ghostBlockSize

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

◆ d_ghostSize

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

◆ d_inhomogenityList

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

◆ d_inhomogenityListDevice

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

◆ d_jacobianFactor

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

◆ d_localBlockSize

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

◆ d_localSize

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

◆ d_map

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

◆ d_matrixFreeDataPtr

template<typename T , dftefe::operatorList operatorID, dftefe::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>* dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_matrixFreeDataPtr
private

◆ d_nBatch

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

◆ d_nCells

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

◆ d_nDofsPerCell

template<typename T , dftefe::operatorList operatorID, dftefe::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 dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nDofsPerCell
private

◆ d_nGhostDofs

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

◆ d_nOMPThreads

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

◆ d_nOwnedDofs

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

◆ d_nQuadsPerCell

template<typename T , dftefe::operatorList operatorID, dftefe::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 dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_nQuadsPerCell
private

◆ d_nRelaventDofs

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

◆ d_nVectors

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

◆ d_quadEDim

template<typename T , dftefe::operatorList operatorID, dftefe::utils::MemorySpace memorySpace, bool isComplex, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize, std::uint32_t subBatchSize>
constexpr std::uint32_t dftefe::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:130

◆ d_quadODim

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

◆ d_quadratureID

template<typename T , dftefe::operatorList operatorID, dftefe::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 dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_quadratureID
private

◆ d_singleBatchPartitioner

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_singleBatchPartitioner
private

◆ d_singleVectorPartitioner

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_singleVectorPartitioner
private

◆ d_weightMatrixList

template<typename T , dftefe::operatorList operatorID, dftefe::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> > dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::d_weightMatrixList
private

◆ d_weightMatrixListDevice

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

◆ d_weightMatrixOffsetDevice

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

◆ mpi_communicator

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

◆ mpiRequestsCompress

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::mpiRequestsCompress
private

◆ mpiRequestsGhost

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::mpiRequestsGhost
private

◆ n_mpi_processes

template<typename T , dftefe::operatorList operatorID, dftefe::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 dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::n_mpi_processes
private

◆ nodalShapeFunctionValuesAtQuadPointsEO

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::nodalShapeFunctionValuesAtQuadPointsEO
private

◆ quadratureWeights

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::quadratureWeights
private

◆ quadShapeFunctionGradientsAtQuadPointsEO

template<typename T , dftefe::operatorList operatorID, dftefe::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> dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::quadShapeFunctionGradientsAtQuadPointsEO
private

◆ shapeBufferDevice

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

◆ tempCompressStorage

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

◆ tempGhostStorage

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

◆ this_mpi_process

template<typename T , dftefe::operatorList operatorID, dftefe::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 dftefe::MatrixFree< T, operatorID, memorySpace, isComplex, nDofsPerDim, nQuadPointsPerDim, batchSize, subBatchSize >::this_mpi_process
private

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