DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::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, dftefe::uInt *map, T *shapeBuffer, dftefe::uInt nCells, dftefe::uInt nBatch)
 
static void computeHelmholtzX (T *dst, T *src, T *jacobianFactor, dftefe::uInt *map, T *shapeBuffer, T coeffHelmholtz, dftefe::uInt nCells, dftefe::uInt nBatch)
 
static void constraintsDistribute (T *src, const dftefe::uInt *constrainingNodeBuckets, const dftefe::uInt *constrainingNodeOffset, const dftefe::uInt *constrainedNodeBuckets, const dftefe::uInt *constrainedNodeOffset, const T *weightMatrixList, const dftefe::uInt *weightMatrixOffset, const T *inhomogenityList, const dftefe::uInt *ghostMap, const dftefe::uInt inhomogenityListSize, const dftefe::uInt nBatch, const dftefe::uInt nOwnedDofs, const dftefe::uInt nGhostDofs)
 
static void constraintsDistributeTranspose (T *dst, T *src, const dftefe::uInt *constrainingNodeBuckets, const dftefe::uInt *constrainingNodeOffset, const dftefe::uInt *constrainedNodeBuckets, const dftefe::uInt *constrainedNodeOffset, const T *weightMatrixList, const dftefe::uInt *weightMatrixOffset, const dftefe::uInt *ghostMap, const dftefe::uInt inhomogenityListSize, const dftefe::uInt nBatch, const dftefe::uInt nOwnedDofs, const dftefe::uInt nGhostDofs)
 

Detailed Description

template<typename T, dftefe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
struct dftefe::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 , dftefe::operatorList operatorID, std::uint32_t nDofsPerDim, std::uint32_t nQuadPointsPerDim, std::uint32_t batchSize>
static void dftefe::MatrixFreeDevice< T, operatorID, nDofsPerDim, nQuadPointsPerDim, batchSize >::computeHelmholtzX ( T *  dst,
T *  src,
T *  jacobianFactor,
dftefe::uInt map,
T *  shapeBuffer,
coeffHelmholtz,
dftefe::uInt  nCells,
dftefe::uInt  nBatch 
)
static

◆ computeLaplaceX()

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

◆ constraintsDistribute()

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

◆ constraintsDistributeTranspose()

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

◆ init()

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

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