Curve Discretization

A curve is discretized by simply creating an edge for each segment of the binary tree structure associated with the curve. The edge is connected to its end (tree) nodes and classified to the curve. This raw curve discretization is likely to be quite unsmooth in terms of the lengths of adjacent edges. Therefore a mesh optimization process has to be applied to improve the curve discretization. Apparently, application of a plain Laplacian smoothing will result (after a sufficient number of cycles of the smoothing) in an equidistant node distribution over the curve, which is not acceptable. Therefore a weighted Laplacian smoothing with weights based on the required mesh size is used. The smoothing is accomplished in the real space using the following iterative relation

where is the smoothed node classified to the curve, are nodes connected to node by an edge, corresponds to the weight based on the required element size (Eq. 2.85), and is an appropriately chosen coefficient (currently set to ) influencing the level of relaxation. This smoothing provides satisfactory results if a non-boundary curve is considered. For boundary curves, this smoothing is still too ``free'' and will consequently spoil the shape of elements on surfaces and in regions bounded by this curve. To resolve this problem a selective smoothing was implemented which resides in the fact that the smoothing is applied only to those nodes that are shared by segments with significantly different lengths. This solution seems to be a good compromise between the unsmoothed and standardly smoothed curve discretization.

In order to satisfy the curve constraint, the smoothed node has to be projected back to the curve after each iteration. The projection (Fig. 3.5) of a point to the curve is performed in an iterative manner similarly as projection to the surface. Any nearby point on the curve (typically the original position of the node being smoothed) is taken as the first approximation of the projected point . In the first phase, point is projected to plane given by point and normal vector which is tangent to the curve and which can be expressed as

(3.20) |

where gradient is calculated according to

(3.21) |

The position of point projected to plane may be written as

(3.22) |

The increment of parameter used to get a more accurate approximation of point is obtained from the relation

using that scalar equation from the above vectorial equation which corresponds to the absolutely maximal component of (or ). The increment is subjected to a normalization in order to avoid running out of the range of the parametric space and to prevent a diverging oscillation of the position of point on poorly parameterized curves. The approximation of point is then improved by incrementing its parameter by normalized . The whole process is repeated until the desired accuracy in the approximation of point is achieved. Note that only two iterations are typically required for the projection on a linear well parameterized curve. The complete algorithm of the projection is summarized in Table 3.3.

Since the curve nodes are stored using both the parametric and real space representations, the possible replacement of and in Eq. (3.19) by and (if the -th iteration of the position of node is already available) is generally not necessary. This will optionally allow to preserve the potential symmetry of a mesh, although at a slightly higher computational cost.

*Daniel Rypl
2005-12-07*