A noniterative method for robustly computing the intersections between a line and a curve or surface
The need to compute the intersections between a line and a high-order curve or surface arises in a large number of finite element applications. Such intersection problems are easy to formulate but hard to solve robustly. We introduce a non-iterative method for computing intersections by solving a matrix singular value decomposition (SVD) and an eigenvalue problem. That is, all intersection points and their parametric coordinates are determined in one-shot using only standard linear algebra techniques available in most software libraries. As a result, the introduced technique is far more robust than the widely used Newton-Raphson iteration or its variants. The maximum size of the considered matrices depends on the polynomial degree $q$ of the shape functions and is $2q \times 3q$ for curves and $6 q^2 \times 8 q^2$ for surfaces. The method has its origin in algebraic geometry and has here been considerably simplified with a view to widely used high-order finite elements. In addition, the method is derived from a purely linear algebra perspective without resorting to algebraic geometry terminology. A complete implementation is available from http://bitbucket.org/nitro-project/.
International Journal for Numerical Methods in Engineering
- Pub Date:
- October 2019
- Mathematics - Numerical Analysis;
- Computer Science - Computational Geometry;
- Mathematics - Algebraic Geometry