In the construction of U-splines, certain restrictions on allowable mesh topologies are imposed to guarantee the mathematical properties of U-spline spaces, and the (semi-) global data structures common to traditional splines (such as knot vectors and T-meshes) are done away with in favor of a Bernstein representation of spline functions, as is done in Bézier extraction. Leveraging this local Bernstein point of view, U-splines achieve greater locality than other types of splines, making it possible to construct well-behaved bases for a much wider range of spline spaces than is encompassed by other splines, including, for the first time, those that permit local variation in degree.
- An algorithm for
Solving a series of small and highly localized nullspace problems that encode the interelement continuity of the U-spline basis functions
Finding appropriate combinations of the basis vectors of these localized nullspaces to determine the U-spline basis functions.
The need for artificial constructs like global or local knot vectors, control meshes, or T-meshes is eliminated. The only input is a properly specified Bézier mesh that characterizes an associated spline space and the only outputs are linear combinations of Bernstein coefficients that describe U-spline basis functions that span that spline space.
Since continuity constraints, restricted to cell interfaces, are the primal building blocks of the U-spline algorithm, local variations in , , and can be processed by the same algorithm as well as T-junctions, extraordinary vertices and triangles.
The only requirement on the local basis assigned to each cell in the Bézier mesh is that it must be Bernstein-like. The key property is that it must have well-ordered derivatives at cell interfaces. This means that a mixture of standard polynomial Bernstein bases over quadrilateral and triangular elements can be used in addition to more exotic Bernstein-like bases based on exponential, trigonometric, and other special functions.
A simple definition of admissibility is given that characterizes a Bézier mesh topology, degree, and smoothness and ensures that the U-spline algorithm, applied to these meshes, produces U-spline basis functions that are locally linearly independent (thus forming a basis for the spline space), positive, form a partition of unity, and are complete up through a specified polynomial degree.
When the input Bézier mesh coincides with single- or multi-patch NURBS or analysis-suitable T-splines, the U-spline algorithm produces those spline spaces and associated bases with pointwise exactness.
Generate a linear quadrilateral or hexahedral finite element mesh on a CAD geometry
Prescribe the desired degree and continuity for the U-spline
Build the U-spline and fit to the underlying geometry
Export the U-spline for use in an external analysis code
U-splines can be encoded within a "Bézier Extraction" (BEXT) file and then this file (along with supporting files as needed) is read into one of several commercial and open-source codes that support BEXT files. If you have questions about how to incorporate Coreform’s U-splines into your workflow or a third-party solver, whether via the BEXT file or some other method, contact Coreform at email@example.com or ask a question on our public forum at forum.coreform.com.
Cubit does not currently support T-junctions, either through mesh-topology or supersmooth continuity.
Cubit does not currently support "per-element" local variation of degree.
Cubit does not currently support smooth extraordinary points, only supporting continuous extraordinary points.
Cubit does not currently support simplicial (tri/tet) cells, only supporting quadrilateral and hexahedral cells.
Cubit currently only constructs U-splines based on polynomial Bernstein bases.
Cubit currently only constructs U-splines over quadrilateral and hexahedral elements.
Currently, while Cubit can generate a U-spline on any quadrilateral mesh, only swept hexahedral meshes are currently supported for volumes.
Currently, Cubit is only tested (i.e. supported) on linear, quadrilateral, and cubic polynomials. Users may attempt to build higher degree U-splines, but may encounter bugs.
Cubit does not currently support building U-splines on non-manifold meshes. This includes edges that are shared by more than two elements for surface splines, as shown in figure 458. It also includes elements that are connected only by vertices for surface splines, or by edges or vertices for volumetric splines, as shown in figure 459.