DFT-FE 1.3.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
MatrixFreeWrapper.h File Reference
#include <variant>
#include <memory>
#include <headers.h>
#include <linearAlgebraOperations.h>
#include <MatrixFree.h>
#include "MatrixFreeWrapper.def"

Go to the source code of this file.

Classes

class  dftfe::MatrixFreeWrapperClass< T, operatorID, memorySpace, isComplex >
 MatrixFreeWrapper class. More...

Namespaces

namespace  dftfe

Macros

#define MatrixFreeWrapperTemplates(NDOFSPERDIM)
#define MatrixFreeWrapperTemplatesL(NDOFSPERDIM)
#define MatrixFreeWrapperTemplates(NDOFSPERDIM)
#define MatrixFreeWrapperTemplatesL(NDOFSPERDIM)

Typedefs

using dftfe::MatrixFreeObject
 Datastructure to hold different MatrixFree class objects.

Functions

template<typename T, dftfe::operatorList operatorID, dftfe::utils::MemorySpace memorySpace, bool isComplex, class... Args>
MatrixFreeObject dftfe::createMatrixFreeObject (std::uint32_t nDofsPerDim, Args &&...args)
 Factory function to create MatrixFree object.

Macro Definition Documentation

◆ MatrixFreeWrapperTemplates [1/2]

#define MatrixFreeWrapperTemplates ( NDOFSPERDIM)
Value:
case NDOFSPERDIM: \
return MatrixFreeObject( \
std::make_shared<dftfe::MatrixFree<T, \
operatorID, \
memorySpace, \
isComplex, \
NDOFSPERDIM, \
NDOFSPERDIM, \
1, \
1>>(std::forward<Args>(args)...));
MatrixFree class template. template parameter nDofsPerDim is the finite element polynomial order....
Definition MatrixFree.h:56

◆ MatrixFreeWrapperTemplates [2/2]

#define MatrixFreeWrapperTemplates ( NDOFSPERDIM)
Value:
std::shared_ptr<dftfe::MatrixFree<double, \
false, \
NDOFSPERDIM, \
NDOFSPERDIM, \
1, \
1>>, \
std::shared_ptr<dftfe::MatrixFree<double, \
false, \
NDOFSPERDIM, \
NDOFSPERDIM, \
1, \
1>>,
@ DEVICE
Definition MemorySpaceType.h:36
@ Laplace
Definition MatrixFreeDevice.h:38
@ Helmholtz
Definition MatrixFreeDevice.h:39

◆ MatrixFreeWrapperTemplatesL [1/2]

#define MatrixFreeWrapperTemplatesL ( NDOFSPERDIM)
Value:
case NDOFSPERDIM: \
return MatrixFreeObject( \
std::make_shared<dftfe::MatrixFree<T, \
operatorID, \
memorySpace, \
isComplex, \
NDOFSPERDIM, \
NDOFSPERDIM, \
1, \
1>>(std::forward<Args>(args)...));

◆ MatrixFreeWrapperTemplatesL [2/2]

#define MatrixFreeWrapperTemplatesL ( NDOFSPERDIM)
Value:
std::shared_ptr<dftfe::MatrixFree<double, \
false, \
NDOFSPERDIM, \
NDOFSPERDIM, \
1, \
1>>, \
std::shared_ptr<dftfe::MatrixFree<double, \
false, \
NDOFSPERDIM, \
NDOFSPERDIM, \
1, \
1>>