IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
QuadrilateralElement.h
Go to the documentation of this file.
1// Class QuadriateralElement
2// The QuadrilateralElement class. This is a class representing a quadrilateral element
3// for finite element methods.
4
5#ifndef IPPL_QUADRILATERALELEMENT_H
6#define IPPL_QUADRILATERALELEMENT_H
7
9
10namespace ippl {
11
12 // this is the basic square 2D element with 4 vertices
13 template <typename T>
14 class QuadrilateralElement : public Element2D<T, 4> {
15 public:
16 static constexpr unsigned NumVertices = 4;
17
20
27 KOKKOS_FUNCTION vertex_points_t getLocalVertices() const;
28
38 KOKKOS_FUNCTION point_t
39 getTransformationJacobian(const vertex_points_t& global_vertices) const;
40
50 KOKKOS_FUNCTION point_t
51 getInverseTransformationJacobian(const vertex_points_t& global_vertices) const;
52
62 KOKKOS_FUNCTION point_t globalToLocal(const vertex_points_t&, const point_t&) 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, 2>& point) const;
113 };
114} // namespace ippl
115
117
118#endif
Definition Archive.h:20
Element< T, 2, NumVertices > Element2D
Base class for all 2D elements.
Definition Element.h:55
Vector< point_t, NumVertices > vertex_points_t
Definition Element.h:26
KOKKOS_FUNCTION point_t getInverseTransposeTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the inverse of the transpose of the transformation Jacobian.
Element2D< T, NumVertices >::vertex_points_t vertex_points_t
KOKKOS_FUNCTION point_t getInverseTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the inverse of the Jacobian of the transformation matrix.
KOKKOS_FUNCTION T getDeterminantOfTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the determinant of the transformation Jacobian.
KOKKOS_FUNCTION point_t getTransformationJacobian(const vertex_points_t &global_vertices) const
Returns the Jacobian of the transformation matrix.
KOKKOS_FUNCTION point_t globalToLocal(const vertex_points_t &, const point_t &) const
Transforms a point from global to local coordinates.
Element2D< T, NumVertices >::point_t point_t
KOKKOS_FUNCTION vertex_points_t getLocalVertices() const
Returns the coordinates of the vertices of the reference element. in the order of the local degrees o...
static constexpr unsigned NumVertices
KOKKOS_FUNCTION bool isPointInRefElement(const Vector< T, 2 > &point) const
Returns whether a point in local coordinates ([0, 1]^2) is inside the reference element.
KOKKOS_FUNCTION point_t localToGlobal(const vertex_points_t &global_vertices, const point_t &point) const
Transforms a point from local to global coordinates.