IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
HexahedralElement.h
Go to the documentation of this file.
1//
2// Class HexahedralElement
3// The HexahedralElement class. This is a class representing a hexahedron element
4// for finite element methods.
5#ifndef IPPL_HEXAHEDRALELEMENT_H
6#define IPPL_HEXAHEDRALELEMENT_H
7
9
10namespace ippl {
11
12 // this is the basic cube 3D element with 8 vertices
13 template <typename T>
14 class HexahedralElement : public Element3D<T, 8> {
15 public:
16 static constexpr unsigned NumVertices = 8;
17
20
26 KOKKOS_FUNCTION vertex_points_t getLocalVertices() const;
27
37 KOKKOS_FUNCTION point_t
38 getTransformationJacobian(const vertex_points_t& global_vertices) const;
39
49 KOKKOS_FUNCTION point_t
50 getInverseTransformationJacobian(const vertex_points_t& global_vertices) const;
51
61 KOKKOS_FUNCTION point_t globalToLocal(const vertex_points_t&, const point_t&) const;
62
77 KOKKOS_FUNCTION point_t localToGlobal(const vertex_points_t& global_vertices,
78 const point_t& point) const;
79
88 KOKKOS_FUNCTION T
89 getDeterminantOfTransformationJacobian(const vertex_points_t& global_vertices) const;
90
100 KOKKOS_FUNCTION point_t
102
111 KOKKOS_FUNCTION bool isPointInRefElement(const Vector<T, 3>& point) const;
112 };
113
114} // namespace ippl
115
117
118#endif
Definition Archive.h:20
Element< T, 3, NumVertices > Element3D
Base class for all 3D elements.
Definition Element.h:63
Vector< point_t, NumVertices > vertex_points_t
Definition Element.h:26
Element3D< T, NumVertices >::vertex_points_t vertex_points_t
KOKKOS_FUNCTION point_t getTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the Jacobian of the transformation matrix.
Element3D< T, NumVertices >::point_t point_t
KOKKOS_FUNCTION point_t getInverseTransposeTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the inverse of the transpose of the transformation Jacobian.
KOKKOS_FUNCTION vertex_points_t getLocalVertices() const
Returns the coordinates of the vertices of the reference element.
KOKKOS_FUNCTION T getDeterminantOfTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the determinant of the transformation Jacobian.
KOKKOS_FUNCTION bool isPointInRefElement(const Vector< T, 3 > &point) const
Returns whether a point in local coordinates ([0, 1]^3) is inside the reference element.
static constexpr unsigned NumVertices
KOKKOS_FUNCTION point_t globalToLocal(const vertex_points_t &, const point_t &) const
Transforms a point from global to local coordinates.
KOKKOS_FUNCTION point_t getInverseTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the inverse of the Jacobian of the transformation matrix.
KOKKOS_FUNCTION point_t localToGlobal(const vertex_points_t &global_vertices, const point_t &point) const
Transforms a point from local to global coordinates.