Implementation of Rational Bézier Cells into VTK
Introduction by TJ Corona, Senior R&D Engineer at Kitware
VTK 8.1.0 saw the introduction of Lagrange Finite Elements to VTK. These cells use Lagrange polynomials as basis functions to describe the geometry of 2- and 3-dimensional cells. There are other sets of basis functions that are often used to describe higher-order finite elements, and each have different mathematical properties that make them useful for certain tasks. For example, Lagrange shape functions have the property that the function they represent is guaranteed to go through each of its control points.
Another set of basis functions, called Bernstein-Bezier functions (hereafter referred to simply as Bezier functions), are frequently used due to their geometric scaling properties and the fact that the functions’ control points constitute a convex hull for their domain. When rational weights are assigned to the control points of a Bezier cell, Bezier cells can conform to an even greater number of shapes. For these reasons, Computer-Aided Design (CAD) software most commonly employ Bezier shape functions to model geometric elements.
The development team at CoreForm have extended VTK’s support for higher order cells to include another class of cell types to VTK that are described using rational Bezier shape functions. As a result, VTK is now able to accept shapes from input sources that internally use Bezier shapes without having to translate or approximate the input cell information. VTK can also now model different shapes that it couldn’t in the past.
You can read the full report here: Implementation of rational Bézier cells into VTK
If you’d like to learn more about how we introduced Lagrange Finite Elements to VTK, you can read the article in the Source, Kitware’s quarterly magazine.