IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
HexahedralElement.h
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
8#include "FEM/Elements/Element.h"
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& global_vertices,
62 const point_t& point) const;
63
78 KOKKOS_FUNCTION point_t localToGlobal(const vertex_points_t& global_vertices,
79 const point_t& point) const;
80
89 KOKKOS_FUNCTION T
90 getDeterminantOfTransformationJacobian(const vertex_points_t& global_vertices) const;
91
101 KOKKOS_FUNCTION point_t
103
112 KOKKOS_FUNCTION bool isPointInRefElement(const Vector<T, 3>& point) const;
113 };
114
115} // namespace ippl
116
117#include "FEM/Elements/HexahedralElement.hpp"
118
119#endif
Base class for all elements.
Definition Element.h:17
Definition HexahedralElement.h:14
KOKKOS_FUNCTION point_t getTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the Jacobian of the transformation matrix.
Definition HexahedralElement.hpp:16
KOKKOS_FUNCTION point_t getInverseTransposeTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the inverse of the transpose of the transformation Jacobian.
Definition HexahedralElement.hpp:84
KOKKOS_FUNCTION vertex_points_t getLocalVertices() const
Returns the coordinates of the vertices of the reference element.
Definition HexahedralElement.hpp:4
KOKKOS_FUNCTION T getDeterminantOfTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the determinant of the transformation Jacobian.
Definition HexahedralElement.hpp:69
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.
Definition HexahedralElement.hpp:91
KOKKOS_FUNCTION point_t getInverseTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the inverse of the Jacobian of the transformation matrix.
Definition HexahedralElement.hpp:29
KOKKOS_FUNCTION point_t localToGlobal(const vertex_points_t &global_vertices, const point_t &point) const
Transforms a point from local to global coordinates.
Definition HexahedralElement.hpp:55
KOKKOS_FUNCTION point_t globalToLocal(const vertex_points_t &global_vertices, const point_t &point) const
Transforms a point from global to local coordinates.
Definition HexahedralElement.hpp:41
Definition Vector.h:23
Definition Archive.h:20