OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
ippl/src/FEM/Elements/Element.h
Go to the documentation of this file.
1//
2
3#ifndef IPPL_ELEMENT_H
4#define IPPL_ELEMENT_H
5
6#include "Types/Vector.h"
7
8namespace ippl {
9
16 template <typename T, unsigned Dim, unsigned NumVertices>
17 class Element {
18 public:
19 static constexpr unsigned dim = Dim;
20 static constexpr unsigned numVertices = NumVertices;
21
22 // A point in the local or global coordinate system
24
25 // A list of all vertices
27
28 // Cannot define common functions to all Element child classes
29 // due to problem with accessing the Element functions through
30 // the Finite Element Space class from device code
31 // (defaults to base class virtual function which causes errors)
32 //
33 // The common functions would be globalToLocal, localToGlobal,
34 // getDeterminantOfTransformationJacobian, getInverseTransposeTransformationJacobian,
35 // and isPointInRefElement.
36 //
37 // Virtual functions would be getLocalVertices, getTransformationJacobian,
38 // and getInverseTransformationJacobian.
39 };
40
46 template <typename T, unsigned NumVertices>
48
54 template <typename T, unsigned NumVertices>
56
62 template <typename T, unsigned NumVertices>
64
65} // namespace ippl
66
67#endif
Implementations for FFT constructor/destructor and transforms.
Definition: Archive.h:20
Base class for all elements.
static constexpr unsigned numVertices
Vector< point_t, NumVertices > vertex_points_t
static constexpr unsigned dim
constexpr unsigned Dim