Spring-based Smoothing#
Spring-based smoothing methods can be used both to more evenly distribute nodes and to allow for controlled mesh deformation by treating the mesh as a network of springs.
Node Spring-based#
Blom [Blo00]
For a node \(i\) connected by springs to its \(n_i\) neighbors, the net force on the node is
where \(k_{ij}\) is the stiffness in units of [force/distance] of the spring connecting node \(i\) to its \(j^{th}\) neighbor, \(\bar{x}_i\) is the coordinates \((x_i, y_i, z_i)\) of the \(i^{th}\), and \(\bar{F}_i^{applied}\) is an externally applied load.
For a spring network in equilibrium, \(\bar{F}_i = 0\) and
Since the neighboring nodes are also repositioned, this system can be solved iteratively as
until the change between \(\bar{x}_i^{m+1}\) and \(\bar{x}_i^{m+1}\) becomes sufficiently small. Since achieving equilibrium isn’t strictly necessary for smoothing, sufficient smoothing can often be achieved in a small number of iterations.