## 2 Explicit Element Geometric Transformation
### Basic Geometric Transformation  
The element geometric transformation for smoothing triangular and quadrilateral meshes has been introduced by [PERSON] et al. in Reference (2018). It is based on transforming elements by a specially designed two-step stretching and shrinking operation (SSO). The transformation, if applied iteratively to a triangular or quadrilateral element, will improve its regularity and quality. The purpose of stretching operation is to regularize the element, while the shrinking operation is performed to preserve the element size. The stretching operation proposed by [PERSON] et al. (2018) is shown in Figure 1 for a triangular and a quadrilateral element. The element geometric transformation operation proposed by [PERSON] et al. [30] is mainly used for mesh smoothing, and the regularizing effect for arbitrary triangular and quadrilateral elements remains to be proved in their paper. In this subsection, the element geometric transformation operation will be generalized for polygonal elements with an arbitrary number of nodes, which may even be inverted. For a given polygonal element with counterclockwise oriented nodes \(p_{k}\in R^{2}\), \(k\in\{0,1,...,n-1\}\), the stretching operation was chosen as a natural extension of that for triangular and quadrilateral elements in Reference [30], that is, just moving node \(p_{k}\) along the outward directed normal of the edge \(p_{(k+1)\text{mod}n}P(k_{(k+n-1)\text{mod}n}\). However, numerical tests show that such a stretching operation derived from triangular and quadrilateral elements is not applicable to polygonal elements with more than five nodes. This is illustrated in Figure 2 for an inverted hexagonal element, which is still inverted after applying the transformation in Reference [30] for one hundred times. Inverted elements usually cannot satisfy actual computational requirements, so the simple stretching operation mentioned above needs to be modified and redefined in order to regularize inverted polygonal elements. In the simple stretching operation, new position of the node \(p_{k}\) depends only on its two adjacent nodes \(p_{(k+1)\text{mod}n}\) and \(p_{(k+n-1)\text{mod}n}\), so the simple stretching operation is a kind of local transformation. The modified stretching operation is conducted by moving node \(p_{k}\) along the direction obtained by combining the outward directed normal of edges \(p_{(k+r)\text{mod}n}p_{(k+n-r)\text{mod}n}\), \(r\in\{1,2,...,ceil(\frac{n-1}{4.0})\}\), where the function \(ceil(x)\) returns the smallest integer no less than \(x\). The outward directed normal denoted by \(n_{kr}\) of the edge \(p_{(k+r)\text{mod}n}p_{(k+n-r)\text{mod}n}\) is calculated in the form of components by the formula:  
\[\left\{ \begin{array}{l}n_{kr}[0]=p_{(k+r)\text{mod}n}[1]-p_{(k+n-r)\text{mod }n}[1]\\ n_{kr}[1]=p_{(k+n-r)\text{mod}n}[0]-p_{(k+r)\text{mod}n}[0]\end{array} \right.. \tag{1}\]  
Figure 1: (**a**) The stretching operation of triangular elements in Reference [30]. (**b**) The stretching operation of quadrilateral elements in Reference [30]. Figure 2: (**a**) Initial inverted hexagonal element. (**b**) Hexagonal element after applying the transformation in Reference [30] for one hundred times. It is obvious that the vector \(n_{kr}\) is not a unit vector, and its magnitude is the length of the edge \(p_{(k+r)\text{mod}n}p_{(k+n-r)\text{mod}n}\). Then the nodes \(p_{k}^{\prime}\) of transformed element can be obtained by moving the node \(p_{k}\) along the direction defined as:  
\[n_{k}=\sum_{r=1}^{ceil(\frac{n-1}{4})}n_{kr}. \tag{2}\]  
It can be seen that the position of each node in the modified stretching operation is determined by at least half of the other nodes in the element, which guarantees that the global effect of the modified stretching operation.