Skip to content
  • T.J. Corona's avatar
    Add Lagrange polynomial higher-order cells to VTK. · cc5101a8
    T.J. Corona authored and David Thompson's avatar David Thompson committed
    This commit adds support for Lagrange cells of the following shape:
    curve, triangle, quadrilateral, tetrahedron, hexahedron, and wedge.
    The new cell types may have arbitrary order, up to a compile-time maximum of 10.
    The maximum may be changed easily.
    The order is inferred from the number of points defining the cell
    and is assumed to be the same along each coordinate axis.
    
    Visualization operations that cells must provide (contouring, clipping, cutting)
    are implemented by approximating each higher-order cell as a collection of
    multi-linear "primitive" cells of the same shape.
    
    Note that the wedge element, when asked for boundary faces, returns faces
    with outward-pointing normals. This is not the same convention as vtkWedge
    but is the same as other VTK cell shapes.
    
    See the vtkCellTypeSource class in vtkFiltersSources for an example of how
    cell connectivity is specified. In general, the shape corner points are
    specified first, matching the linear cell counterparts. Then points on
    edges and faces bounding the shape are listed. Finally, interior points
    are listed. This will allow simpler connectivity entries in the future
    where points on edges and faces may only require 2 numbers each instead
    of a number proportional to the order raised to the parametric dimension
    of the boundary.
    
    T. J. Corona provided the triangle and tetrahedron implementations.
    cc5101a8