MeshFields
GPU accelerated mesh-based fields
List of all members
MeshField::ShapeField< numCompIn, Shape, Mixins > Struct Template Reference

Enable definition of field classes with multiple inheritance. More...

#include <MeshField_ShapeField.hpp>

Inherits MeshField::Mixins.

Collaboration diagram for MeshField::ShapeField< numCompIn, Shape, Mixins >:
Collaboration graph
[legend]

Detailed Description

template<size_t numCompIn, typename Shape, typename... Mixins>
struct MeshField::ShapeField< numCompIn, Shape, 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.

Template Parameters
MeshFieldTypeMeshField type templated on a Controller (i.e., KokkosController or CabanaController)
ShapeDefines the shape function order and mesh topology (i.e., QuadraticTriangleShape, QuadraticTetrahedronShape, ...)
MixinsAccessor type that provides paren operator to underlying slice (i.e., LinearAccessor, QuadraticAccessor)
Parameters
meshFieldInsee MeshFieldType
meshInfoIndefines on-process mesh metadata
mixinsobject(s) needed to construct the Accessor [ShapeField]

Definition at line 76 of file MeshField_ShapeField.hpp.


The documentation for this struct was generated from the following file: