IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
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
constexpr unsigned Dim
Definition Archive.h:20
Element< T, 2, NumVertices > Element2D
Base class for all 2D elements.
Definition Element.h:55
Element< T, 1, NumVertices > Element1D
Base class for all 1D elements.
Definition Element.h:47
Element< T, 3, NumVertices > Element3D
Base class for all 3D elements.
Definition Element.h:63
Base class for all elements.
Definition Element.h:17
static constexpr unsigned numVertices
Definition Element.h:20
Vector< point_t, NumVertices > vertex_points_t
Definition Element.h:26
Vector< T, Dim > point_t
Definition Element.h:23
static constexpr unsigned dim
Definition Element.h:19