NURBS.jl

This package provides functionality to define and evaluate B-spline, Curry-Schoenberg, and NURBS (non-uniform rational B-spline) basis functions, their derivatives, as well as curves and surfaces based on B-spline and NURBS basis functions.


Overview

The following aspects are implemented (✓) and planned (⌛):

B-spline, Curry-Schoenberg & NURBS evaluation
  • ✓ Basis & derivatives
  • ✓ Curves & derivatives
  • ✓ Surfaces & derivatives
Fundamental operations
  • ✓ File I/O (.step)
  • ✓ Knot manipulation
    • knot insertion / refinement
    • knot removal
    • splitting of curves and surfaces
  • ✓ Transformation of curves and surfaces
    • scaling
    • translating
    • rotating
    • mirroring
  • ⌛ Degree elevation / reduction
  • ⌛ Construction of common geometries
Connectivity
  • ✓ Determine patch connectivity
    • identify interfaces between patches
    • introduce per patch local numbering for vertices and edges
  • ✓ Virtual Bezier mesh connectivty (for FEM)
    • introduce on each patch a virtual Bezier mesh
    • determine adjacency information of mesh cells

Concerning the B-splines itself, chapters 2-5.4 of [1] are implemented so far (adapted to 1-based indexing).

Note

Open knot vectors are assumed everywhere, if not stated otherwise.

Note

The parametric space is assumed to be $[0, 1]$ or ${[0,1]}^2$ everywhere.


Installation

Installing NURBS is done by entering the package manager (enter ] at the julia REPL) and issuing:

pkg> add NURBS 

References

The implementation is based on

  • [1] L. Piegl, The NURBS Book, Berlin Heidelberg, Springer-Verlag, 1997.
  • [2] R.N. Simpson, et. al, A Two-Dimensional Isogeometric Boundary Element Method for Elastostatic Analysis, Comput. Methods Appl. Mech. Engrg., 2012.
  • [3] C. de Boor, A Practical Guide to Splines, revised ed., Appl. Math. Sci., vol. 27, Springer-Verlag, New York, 2001.
  • [4] L. Beirão da Veiga, A. Buffa, G. Sangalli, R. Vázquez, Analysis-suitable T-splines of arbitrary degree: Definition, linear independence and approximation properties, Math. Models Methods Appl. Sci. 23, 2013.