|
MeshFields
GPU accelerated mesh-based fields
|
Supports the evaluation of a field, and other per-element operations, given the definition of the element ((the topological type of mesh entity to operate over (i.e., edge, tri, quad, tet, etc.)) and shape functions used by the field. Operations are expected to be executed concurrently across all (or a subset of) elements in the on-process mesh (e.g., within a parallel for loop). More...
#include <MeshField_Element.hpp>
Public Member Functions | |
| KOKKOS_INLINE_FUNCTION ValArray | getValue (int ent, Kokkos::Array< Real, MeshEntDim > localCoord) const |
| evaluate the field in the specified element at the specified parametric/local/area coordinate More... | |
| KOKKOS_INLINE_FUNCTION Real | getJacobian1d (int ent) const |
| compute the Jacobian of an edge More... | |
| template<typename Matrices > | |
| Kokkos::View< Real * > | getJacobianDeterminants (Matrices const &J) const |
| Kokkos::View< Real *** > | getJacobians (Kokkos::View< Real ** > localCoords, Kokkos::View< LO * > offsets) const |
| Given an array of parametric coordinates 'localCoords', one per mesh element, compute the jacobian within each element. More... | |
Supports the evaluation of a field, and other per-element operations, given the definition of the element ((the topological type of mesh entity to operate over (i.e., edge, tri, quad, tet, etc.)) and shape functions used by the field. Operations are expected to be executed concurrently across all (or a subset of) elements in the on-process mesh (e.g., within a parallel for loop).
| FieldAccessor | provides parenthesis operator to access the field (see CreateLagrangeField and CreateCoordinateField) |
| ShapeType | Defines the shape function order and mesh topology (i.e., QuadraticTriangleShape, QuadraticTetrahedronShape, ...) |
| ElementDofHolderAccessor | provides the mapping from the element indices to the underlying field storage |
| in_numMeshEnts | number of mesh entities that are associated with the ElementType |
| fieldIn | see FieldAccessor |
| elmIn | see ElementType |
Definition at line 148 of file MeshField_Element.hpp.
|
inline |
compute the Jacobian of an edge
@TODO use the same approach taken for 2d
heavily based on SCOREC/core @ 7cd76473 apf/apfVectorElement.cc
| ent | the mesh entity index |
Definition at line 242 of file MeshField_Element.hpp.
|
inline |
heavily based on SCOREC/core @ 7cd76473 apf/apfVectorElement.cc
Definition at line 260 of file MeshField_Element.hpp.
|
inline |
Given an array of parametric coordinates 'localCoords', one per mesh element, compute the jacobian within each element.
add static asserts for values and functions provided by the templated types
consider making this a member function of FieldElement
| localCoords | 2D Kokkos::View containing the local/parametric/area coordinates for each element |
| offsets | 1D Kokkos::View containing the offsets into localCoords, size = localCoords.extent(0)+1 |
Definition at line 344 of file MeshField_Element.hpp.
|
inline |
evaluate the field in the specified element at the specified parametric/local/area coordinate
heavily based on SCOREC/core @ 7cd76473 apf/apfElement.cc
| ent | the mesh entity index |
| localCoord | the parametric coordinate |
Definition at line 192 of file MeshField_Element.hpp.