|
MeshFields
GPU accelerated mesh-based fields
|
Enable definition of field classes with multiple inheritance. More...
#include <MeshField_ShapeField.hpp>
Inherits MeshField::Mixins.

Enable definition of field classes with multiple inheritance.
The field definition (e.g., linear triangle, quadratic tet, etc.) dictates what combination of interfaces need to be exposed. For example, the functions that provide the coefficients (name?) (e.g., QuadraticTriangleShape) needs to return the values for each dof holder and associated metadata to define their association with mesh entities, the mesh entity topology, and how many components exist per dof. Likewise, the interface that allows getting and setting field values needs to be customized to accomodate the field interface.
To avoid inheritance, virtual functions, and to allow RAII, the 'mixin' technique enables definition of a class that inherites from multiple parent classes.
| MeshFieldType | MeshField type templated on a Controller (i.e., KokkosController or CabanaController) |
| Shape | Defines the shape function order and mesh topology (i.e., QuadraticTriangleShape, QuadraticTetrahedronShape, ...) |
| Mixins | Accessor type that provides paren operator to underlying slice (i.e., LinearAccessor, QuadraticAccessor) |
| meshFieldIn | see MeshFieldType |
| meshInfoIn | defines on-process mesh metadata |
| mixins | object(s) needed to construct the Accessor [ShapeField] |
Definition at line 76 of file MeshField_ShapeField.hpp.