Shape functions over this element. More...
Public Member Functions | |
virtual void | getValues (Mesh *m, MeshEntity *e, Vector3 const &xi, NewArray< double > &values) const =0 |
evaluate element shape functions | |
virtual void | getLocalGradients (Mesh *m, MeshEntity *e, Vector3 const &xi, NewArray< Vector3 > &grads) const =0 |
evaluate element shape function gradients | |
virtual int | countNodes () const =0 |
return the number of nodes affecting this element | |
virtual void | alignSharedNodes (Mesh *m, MeshEntity *elem, MeshEntity *shared, int order[]) |
convert from shared node order to local element order |
Shape functions over this element.
virtual void apf::EntityShape::alignSharedNodes | ( | Mesh * | m, | |
MeshEntity * | elem, | |||
MeshEntity * | shared, | |||
int | order[] | |||
) | [virtual] |
convert from shared node order to local element order
when two elements share nodes on a common entity, that entity will have its own unique orientation. when there is more than one node on that entity, this function will be queried to determine in what order the shared nodes go in the list of all element nodes.
the order array should contain numbers 0 through n-1, where n is the number of nodes in the shared entity only. the shared nodes will be reordered such that node i moves to position order[i], and then they will be added to the list of element nodes as a group.
users are encouraged to implement this with the help of apf::getAlignment
virtual int apf::EntityShape::countNodes | ( | ) | const [pure virtual] |
return the number of nodes affecting this element
in a linear mesh, there are two nodes affecting and edge, three nodes affecting a triangle, four for a tet, etc.
virtual void apf::EntityShape::getLocalGradients | ( | Mesh * | m, | |
MeshEntity * | e, | |||
Vector3 const & | xi, | |||
NewArray< Vector3 > & | grads | |||
) | const [pure virtual] |
evaluate element shape function gradients
xi | parent element coordinates | |
grads | each entry is the shape function gradient with respect to parent element coordinates for one node |
virtual void apf::EntityShape::getValues | ( | Mesh * | m, | |
MeshEntity * | e, | |||
Vector3 const & | xi, | |||
NewArray< double > & | values | |||
) | const [pure virtual] |
evaluate element shape functions
xi | the parent element coordinates | |
values | each entry is the shape function value for one node |