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

MatrixFreeDevice 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 <MatrixFreeDevice.h>

Static Public Member Functions

static void init (T *constMemDataHost, std::size_t constMemDataSize)
static void computeLaplaceX (T *dst, T *src, T *jacobianFactor, dftfe::uInt *map, T *shapeBuffer, dftfe::uInt nCells, dftfe::uInt nBatch)
static void computeHelmholtzX (T *dst, T *src, T *jacobianFactor, dftfe::uInt *map, T *shapeBuffer, T coeffHelmholtz, dftfe::uInt nCells, dftfe::uInt nBatch)
static void constraintsDistribute (T *src, const dftfe::uInt *constrainingNodeBuckets, const dftfe::uInt *constrainingNodeOffset, const dftfe::uInt *constrainedNodeBuckets, const dftfe::uInt *constrainedNodeOffset, const T *weightMatrixList, const dftfe::uInt *weightMatrixOffset, const T *inhomogenityList, const dftfe::uInt *ghostMap, const dftfe::uInt inhomogenityListSize, const dftfe::uInt nBatch, const dftfe::uInt nOwnedDofs, const dftfe::uInt nGhostDofs)
static void constraintsDistributeTranspose (T *dst, T *src, const dftfe::uInt *constrainingNodeBuckets, const dftfe::uInt *constrainingNodeOffset, const dftfe::uInt *constrainedNodeBuckets, const dftfe::uInt *constrainedNodeOffset, const T *weightMatrixList, const dftfe::uInt *weightMatrixOffset, const dftfe::uInt *ghostMap, const dftfe::uInt inhomogenityListSize, const dftfe::uInt nBatch, const dftfe::uInt nOwnedDofs, const dftfe::uInt nGhostDofs)

Detailed Description

template<typename T, dftfe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
struct dftfe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >

MatrixFreeDevice 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 Function Documentation

◆ computeHelmholtzX()

template<typename T, dftfe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
void dftfe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >::computeHelmholtzX ( T * dst,
T * src,
T * jacobianFactor,
dftfe::uInt * map,
T * shapeBuffer,
T coeffHelmholtz,
dftfe::uInt nCells,
dftfe::uInt nBatch )
inlinestatic

◆ computeLaplaceX()

template<typename T, dftfe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
void dftfe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >::computeLaplaceX ( T * dst,
T * src,
T * jacobianFactor,
dftfe::uInt * map,
T * shapeBuffer,
dftfe::uInt nCells,
dftfe::uInt nBatch )
inlinestatic

◆ constraintsDistribute()

template<typename T, dftfe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
void dftfe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >::constraintsDistribute ( T * src,
const dftfe::uInt * constrainingNodeBuckets,
const dftfe::uInt * constrainingNodeOffset,
const dftfe::uInt * constrainedNodeBuckets,
const dftfe::uInt * constrainedNodeOffset,
const T * weightMatrixList,
const dftfe::uInt * weightMatrixOffset,
const T * inhomogenityList,
const dftfe::uInt * ghostMap,
const dftfe::uInt inhomogenityListSize,
const dftfe::uInt nBatch,
const dftfe::uInt nOwnedDofs,
const dftfe::uInt nGhostDofs )
inlinestatic

◆ constraintsDistributeTranspose()

template<typename T, dftfe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
void dftfe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >::constraintsDistributeTranspose ( T * dst,
T * src,
const dftfe::uInt * constrainingNodeBuckets,
const dftfe::uInt * constrainingNodeOffset,
const dftfe::uInt * constrainedNodeBuckets,
const dftfe::uInt * constrainedNodeOffset,
const T * weightMatrixList,
const dftfe::uInt * weightMatrixOffset,
const dftfe::uInt * ghostMap,
const dftfe::uInt inhomogenityListSize,
const dftfe::uInt nBatch,
const dftfe::uInt nOwnedDofs,
const dftfe::uInt nGhostDofs )
inlinestatic

◆ init()

template<typename T, dftfe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
void dftfe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >::init ( T * constMemDataHost,
std::size_t constMemDataSize )
inlinestatic

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