Incremental Interval Assignment by Integer Linear Algebra with Improvements. (May 2023) - Mitchell, Scott A.
Abstract: Interval Assignment (IA) is the problem of selecting the number of mesh edges (intervals) for each curve for conforming quad and hex meshing. The intervals x is fundamentally integer-valued. Many other approaches perform numerical optimization then convert a floating-point solution into an integer solution, which is slow and error prone. We avoid such steps: we start integer, and stay integer. Incremental Interval Assignment (IIA) uses integer linear algebra (Hermite normal form) to find an initial solution to the meshing constraints, satisfying the integer matrix equation A x = b . Solving for reduced row echelon form provides integer vectors spanning the nullspace of A . We add vectors from the nullspace to improve the initial solution, maintaining A x = b . Heuristics find good integer linear combinations of nullspace vectors that provide strict improvement towards variable bounds or goals. IIA always produces an integer solution if one exists. In practice we usually achieve solutions close to the user goals, but there is no guarantee that the solution is optimal, nor even satisfies variable bounds, e.g. has positive intervals. We describe several algorithmic changes since first publication that tend to improve the final solution. The software is freely available. Graphical abstract: Highlights: Assigns intervals, number of mesh edges, on bounding curves. Required preprocess for quad and hex meshing. Solves integer Ax = b, with bounds and goals for x, where A is nearly totally unimodular. No numerical floating point optimization. Open source, BSD-like license: https://github.com/samitch/IntervalAssignment/.