next up previous contents
Next: 6.1 Data Structures for Up: Dynamic NURBS with Geometric Previous: 5.4 Constraining the Weights

6 Numerical Implementation


The evolution of the D-NURBS generalized coordinates is determined by the second-order nonlinear differential equations (17) or (22), with time-varying mass, damping, and stiffness matrices. We cannot obtain an analytical solution in general. An efficient numerical implementation of D-NURBS is possible, however, through the use of techniques from finite-element analysis [15].

Standard finite element codes assemble individual element matrices into the global matrices that appear in the discrete equations of motion [43, 15]. Despite the fact that the global matrices are stored using efficient sparse matrix storage schemes (which maintain only the entries needed for matrix factorization), matrix assembly and matrix-vector multiplications quickly become too costly, particularly for D-NURBS surfaces with high dimensional tex2html_wrap_inline1921 .

In our implementation, we use an iterative matrix solver that enables us to avoid the costs of assembling the global tex2html_wrap_inline2181 , tex2html_wrap_inline2183 , and tex2html_wrap_inline2053 matrices associated with the whole D-NURBS curve or surface. Rather, we work with the individual D-NURBS element matrices. We construct finite element data structures that contain the information needed to compute all of the element matrices independently and in parallel.

Demetri Terzopoulos | Source Reference