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 .
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 .
In our implementation, we use an iterative matrix solver that enables us to avoid the costs of assembling the global , , and 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.