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 .
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.