IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
Element.h
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
23 typedef Vector<T, Dim> point_t;
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
Base class for all elements.
Definition Element.h:17
Definition Vector.h:23
Definition Archive.h:20