35 NewArray<double>& values)
const = 0;
44 NewArray<Vector3>& grads)
const = 0;
67 MeshEntity* elem, MeshEntity* shared,
int order[]);
98 virtual const char*
getName()
const = 0;
99 void registerSelf(
const char* name);
156 MeshEntity* boundary,
FieldShape * getIPShape(int dimension, int order)
Get the Integration Point distribution.
virtual void getLocalGradients(Mesh *m, MeshEntity *e, Vector3 const &xi, NewArray< Vector3 > &grads) const =0
evaluate element shape function gradients
virtual void getNodeXi(int type, int node, Vector3 &xi)
Get the parent element coordinates of an element node.
virtual void getValues(Mesh *m, MeshEntity *e, Vector3 const &xi, NewArray< double > &values) const =0
evaluate element shape functions
int countElementNodes(FieldShape *s, int type)
count the number of nodes affecting an element type
FieldShape * getVoronoiShape(int dimension, int order)
Get the Voronoi shape function.
virtual int countNodes() const =0
return the number of nodes affecting this element
Describes field distribution and shape functions.
FieldShape * getConstant(int dimension)
Get the Constant shape function over some dimension.
FieldShape * getHierarchic(int order)
Get the quadratic hierarchic shape function.
virtual int getOrder()=0
Return the polynomial order of the shape functions.
void projectHierarchicField(Field *to, Field *from)
Project a hierarchic field.
virtual EntityShape * getEntityShape(int type)=0
Get the sub-descriptor for this entity type.
FieldShape * getLagrange(int order)
Get the Lagrangian shape function of some polynomial order.
virtual int countNodesOn(int type)=0
Return the number of nodes associated with an entity of this type.
virtual const char * getName() const =0
Get a unique string for this shape function scheme.
Interface to a mesh part.
virtual void alignSharedNodes(Mesh *m, MeshEntity *elem, MeshEntity *shared, int order[])
convert from shared node order to local element order
apf::Mesh2 Mesh
convenient mesh name
FieldShape * getIPFitShape(int dimension, int order)
Get the IP Fit shape function.
convenience wrapper over apf::Vector<3>
virtual bool hasNodesIn(int dimension)=0
Return true iff there are nodes on entities of this dimension.
Shape functions over this element.
Vector3 boundaryToElementXi(Mesh *m, MeshEntity *boundary, MeshEntity *element, Vector3 const &xi)
Reparameterize from boundary entity to element.
FieldShape * getSerendipity()
Get the Serendipity shape functions of second order.