This section is devoted to designing our SVV-stabilized triangular spectral element method for the Navier-Stokes equations. Hereafter we use boldface letters to denote vectors, vector functions, or vector spaces. Let *Ω* be an open, connected and bounded domain in \(\mathbb {R}^{2}\) with boundary *∂**Ω* assumed to be Lipschitz continuous. We use *L*^{2}(*Ω*) to denote the space of square integrable functions in *Ω*. The inner product of *L*^{2}(*Ω*) is denoted by \((u,v)_{\Omega }:=\int _ \Omega uv d\Omega \). Let *H*^{1}(*Ω*)={*v*∈*L*^{2}(*Ω*),*∂*_{x}*v*∈*L*^{2}(*Ω*),*∂*_{y}*v*∈*L*^{2}(*Ω*)}. The norm and semi-norm of *H*^{1}(*Ω*) are denoted by ∥*u*∥_{1,Ω} and |*u*|_{1,Ω} respectively. Let \(H_{0}^{1}(\Omega)\) be the space of all functions in *H*^{1}(*Ω*) having vanishing trace on *∂**Ω*. Let us denote the velocity vector by *u*, the ratio between the pressure and the (constant) density by *p*, and let *f* be a forcing known term. The Navier-Stokes equation reads:

$$\begin{array}{@{}rcl@{}} \left\{\begin{array}{rll} D_{t} \boldsymbol{u} - \nu \Delta \boldsymbol{u} + \nabla p =& \boldsymbol{f},& \text{in} ~\Omega, \\ \nabla\cdot \boldsymbol{u} =& 0, & \text{in} ~\Omega, \end{array} \right. \end{array} $$

(1)

subject to appropriate initial and boundary conditions. In the above equations, *D*_{t}*u* denotes the material (Lagrangian) derivative of *u* with respect to time *t*, which can be expressed by *∂*_{t}*u*+*u*·∇*u*. *ν* is the dimensionless viscosity (the inverse of the Reynolds number).

### 2.1 Triangular spectral method

To clearly explain the idea, we start with a description of the spectral method in a single triangular domain △:

$$\begin{array}{@{}rcl@{}} \triangle=\left\{ (x,y):~0< x,y<1,\ 0< x+y<1 \right\}. \end{array} $$

The weak formulation of the Navier-Stokes Eq. 1 in the triangular domain △ reads: find \((\boldsymbol {u},p) \in H^{1}_{0}(\triangle)^{2} \times L_{0}^{2}(\triangle)\), such that

$$\begin{array}{@{}rcl@{}} \left\{\begin{array}{rll} (D_{t} \boldsymbol{u},\boldsymbol{v})+ \nu (\nabla \boldsymbol{u}, \nabla \boldsymbol{v}) - (p, \nabla\cdot \boldsymbol{v}) =& (\boldsymbol{f}, \boldsymbol{v}),\ \ &\forall \boldsymbol{v}\in H^{1}_{0}(\triangle)^{2},\\ (q, \nabla\cdot \boldsymbol{u}) =& 0,\ \ & \forall q\in L_{0}^{2}(\triangle). \end{array} \right. \end{array} $$

(2)

In order to well define the triangular spectral element approximation in space to the above weak problem, we will need some notations. The one-to-one transformation between △ and the square \(\boldsymbol {\square }:=(-1,1)^{2}\) is given by the Duffy mapping *x*=*F*(*ξ*):

$$\begin{array}{@{}rcl@{}} x=\frac{1}{4}(1+\xi)(1-\eta),\ y=\frac{1+\eta}{2},\ \forall (\xi,\eta) \in \boldsymbol{\square}, \end{array} $$

(3)

with its inverse *ξ*=*F*^{−1}(*x*) from △ to \(\boldsymbol {\square }\) by

$$\begin{array}{@{}rcl@{}} \xi=\frac{2x}{1-y}-1,\ \eta=2y-1, \ \forall (x,y)\in \triangle. \end{array} $$

(4)

(*ξ*,*η*) is often referred to as *collapsed coordinate system* or the Duffy coordinates. It is an easy matter to compute the Jacobian determinant, denoted by *J*, of the mapping *F*:

$$\begin{array}{@{}rcl@{}} J(\xi, \eta) = {1-\eta\over 8}. \end{array} $$

(5)

We associate a function *u* in △ with a function \(\widetilde {u}\) in \(\boldsymbol {\square }\) through

$$\begin{array}{@{}rcl@{}} \widetilde{u}(\xi,\eta)=u(x,y),~ x=\frac{1}{4}(1+\xi)(1-\eta), y=\frac{1+\eta}{2}, ~\forall (\xi,\eta) \in \boldsymbol{\square}. \end{array} $$

(6)

The following formulas for the gradient operators will be useful:

$$\begin{array}{@{}rcl@{}} \nabla_{\boldsymbol{x}} u = (\partial_{x} u,~\partial_{y} u)^{T}=\left(\frac{4}{1-\eta}\partial_{\xi} \widetilde{u},~~ \frac{2(1+\xi)}{1-\eta}\partial_{\xi} \widetilde{u}+2\partial_{\eta} \widetilde{u} \right)^{T}. \end{array} $$

$$\begin{array}{@{}rcl@{}} \nabla_{\boldsymbol{\xi}} \widetilde{u} = (\partial_{\xi} \widetilde{u},~\partial_{\eta} \widetilde{u})^{T}= \left(\frac{1-y}{2}\partial_{x} u, ~~\frac{x}{2(1-y)}\partial_{x}u +\frac{1}{2}\partial_{y} u\right)^{T}. \end{array} $$

The approximation space to be used consists of the rational functions generated by polynomials in the reference square through the Duffy transform. Define the rational function \(\mathcal {R}(x,y)\) in △:

$$\begin{array}{@{}rcl@{}} \mathcal {R}_{mn}(x,y)=\tilde{\mathcal {R}}_{mn}\left(\frac{2x}{1-y}-1,2y-1\right), ~\forall (x,y)\in \triangle, \end{array} $$

where \(\tilde {\mathcal {R}}_{mn}(\xi,\eta)\) be the polynomial in \(\boldsymbol {\square }\) defined by:

$$\begin{array}{@{}rcl@{}} \tilde{\mathcal {R}}_{mn}(\xi,\eta)=J_{m}^{0,0}(\xi)J_{n}^{1,0}(\eta), \ \forall (\xi,\eta)\in \boldsymbol{\square} \end{array} $$

(7)

with \(J_{k}^{\alpha,\beta }(\zeta), \zeta \in \Lambda \) being the Jacobi polynomial of degree *k*. Define the approximation spaces and their transformations as follows:

$$\begin{array}{@{}rcl@{}} \begin{array}{l} \mathbb{Q}_{N}(\triangle)= span\left\{\mathcal {R}_{mn}(x,y),~0\leq m,n \leq N,(x,y)\in \triangle\right\},\\ \mathbb{\widetilde{Q}}_{N}(\boldsymbol{\square})= span\{\mathcal {\widetilde{R}}_{mn}(\xi,\eta),~0\leq m,n \leq N,(\xi,\eta)\in \boldsymbol{\square}\},\\ \mathbb{Q}^{0}_{N}(\triangle)=\left\{v\in \mathbb{Q}_{N}(\triangle), v|_{\partial\triangle}=0\right\},\\ \mathbb{\widetilde{Q}}^{0}_{N}(\boldsymbol{\square})=\left\{v\in \mathbb{\widetilde{Q}}_{N}(\boldsymbol{\square}), v|_{\partial\boldsymbol{\square}}=0\right\}. \end{array} \end{array} $$

(8)

Let *ξ*_{p},*p*=0,1,⋯,*N*, be the Legendre-Gauss-Lobatto points associated to *L*_{N}, i.e., zeros of (1−*z*^{2})*L**N*′(*z*); *ω*_{p},*p*=0,1,⋯,*N*, be the corresponding weights. We then define the discrete inner product (·,·)_{N} on △:

$$\begin{array}{@{}rcl@{}} (\phi, \psi)_{N}:= \left(J\tilde\phi, \tilde\psi\right)_{N, \boldsymbol{\square}} := \sum_{p,q=0}^{N} \widetilde{\phi}(\xi_{p},\xi_{q})\widetilde{\psi}(\xi_{p},\xi_{q})J(\xi_{p},\xi_{q}) \omega_{p}\omega_{q}, ~\forall \phi,\psi \in C(\triangle), \end{array} $$

(9)

where *J* is defined in (5). Let *X*_{N} and *M*_{N} be the approximation spaces:

$$\begin{array}{@{}rcl@{}} \boldsymbol{X}_{N}=X_{N}^{2}, \ \ X_{N} = H^{1}_{0}(\triangle) \cap \mathbb{Q}_{N}(\triangle),\ \ M_{N}= L_{0}^{2}(\triangle) \cap \mathbb{Q}_{N-2}(\triangle). \end{array} $$

(10)

We now consider the rational spectral approximation to (2): Find *u*_{N}∈*X*_{N} and *p*_{N}∈*M*_{N}, such that

$$\begin{array}{@{}rcl@{}} \left\{ \begin{array}{rll} (D_{t} \boldsymbol{u}_{N},v_{N})_{N}+ \nu (\nabla \boldsymbol{u}_{N},\nabla \boldsymbol{v}_{N})_{N} - (p_{N}, \nabla\cdot \boldsymbol{v}_{N})_{N} =& (\boldsymbol{f}, \boldsymbol{v}_{N})_{N},& \forall \boldsymbol{v}_{N}\in \boldsymbol{X}_{N},\\ (q_{N}, \nabla\cdot \boldsymbol{u}_{N})_{N} =& 0,\ \ & \forall q_{N}\in M_{N}. \end{array} \right. \end{array} $$

(11)

It is notable that, similar to the standard spectral method for the Stokes problem, the pressure approximation space used in (11) is two degrees less than the velocity approximation space *X*_{N}. This is to satisfy the well-known discrete inf-sup condition, which is necessary to avoid spurious pressure modes.

### 2.2 SVV stabilization

Let *Λ*=(−1,1),*P*_{N}(*Λ*) is the space of polynomials of degree ≤*N*. We first define the spectral vanishing operator in *P*_{N}(*Λ*), denoted by \(\mathcal {S}\), using the Legendre basis by

$$\begin{array}{@{}rcl@{}} {\mathcal S} \phi := \sum_{n=0}^{N} \hat{S}_{n} \hat{\phi}_{n} L_{n}, \quad \forall \phi\in P_{N} (\Lambda), \quad \phi = \sum_{n=0}^{N} \hat{\phi}_{n} L_{n}, \end{array} $$

where *L*_{n} is the Legendre polynomial of degree *n*, \(\hat {S}_{n} = 0\) if *n*≤*m*_{N} and \(1 \geq \hat {S}_{n} \geq 0\) if *n*>*m*_{N}. Typical choices for \(m_{N}: O (\sqrt {N})\) [23], *m*_{N}=*N*/2 [26], or *N*−2 [32]. It is desirable to use a smooth variation for \(\hat {S}_{n}\) as:

$$\begin{array}{@{}rcl@{}} \hat{S}_{n} = \exp \left(- \left(\frac{N - n}{m_{N} - n}\right)^{2}\right),\, n > m_{N}. \end{array} $$

Then we define the SVV term \(-\epsilon _{N} \partial _{x} (\mathcal {S} (\partial _{x} u_{N}))\), which is written in weak form as follows:

$$\begin{array}{@{}rcl@{}} V_{N}(u_{N}, v_{N}) = \epsilon_{N} (\mathcal{S} (\partial_{x} u_{N}), \partial_{x} v_{N})_{L^{2}(\Lambda)}, \ \ \ \forall u_{N}, v_{N} \in P_{N} (\Lambda), \end{array} $$

where *ε*_{N}=*O*(1/*N*). Note that the SVV term may be made symmetric:

$$\begin{array}{@{}rcl@{}} V_{N}(u_{N}, v_{N}) = \epsilon_{N} \left(\mathcal{S}^{1/2} (\partial_{x} u_{N}), \mathcal{S}^{1/2} (\partial_{x} v_{N})\right)_{L^{2}(\Lambda)} \end{array} $$

with the following definition of \( \mathcal {S}^{1/2}\):

$$\begin{array}{@{}rcl@{}} \mathcal{S}^{1/2} \phi := \sum_{n=0}^{N} \sqrt{\hat{S}_{n}} \hat{\phi}_{n} L_{n}, \quad \forall \phi = \sum_{n=0}^{N} \hat{\phi}_{n} L_{n}. \end{array} $$

The SVV operator in the 2D reference domain \(\boldsymbol {\square }\) is defined in the following way. For \(\boldsymbol {u}_{N}, \boldsymbol {v}_{N} \in \mathbb {\widetilde {Q}}_{N}(\boldsymbol {\square })^{2}\), which is defined in (24), the SVV term reads

$$\begin{array}{@{}rcl@{}} V_{N}(\boldsymbol{u}_{N}, \boldsymbol{v}_{N}) = \epsilon_{N} \left(\mathcal{S}^{1/2} (\nabla \boldsymbol{u}_{N}), \mathcal{S}^{1/2} (\nabla \boldsymbol{v}_{N})\right)_{N,\boldsymbol{\square}}, \end{array} $$

where \(\mathcal {S}^{1/2}(\nabla \boldsymbol {u}_{N})\) is defined by

$$\begin{array}{@{}rcl@{}} \mathcal{S}^{1/2}{\nabla}{\boldsymbol{u}}_{N}= \left(\begin{array}{cc} \mathcal{S}^{1/2}_{\xi}(\partial_{\xi} {u}_{1,N}) & \mathcal{S}^{1/2}_{\xi} (\partial_{\xi} {u}_{2,N}) \\ \mathcal{S}^{1/2}_{\eta} (\partial_{\eta} {u}_{1,N}) & \mathcal{S}^{1/2}_{\eta}(\partial_{\eta} {u}_{2,N}) \end{array} \right) \end{array} $$

with

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} \mathcal{S}^{1/2}_{\xi} \phi (\xi,\eta) := \sum_{n=0}^{N} \sqrt{\widehat{S}_{n}}\widehat{\phi}_{n}(\eta)L_{n}(\xi), & \forall \phi: \phi (\xi,\eta)= \sum_{n=0}^{N}\widehat{\phi}_{n}(\eta)L_{n}(\xi); \\ \mathcal{S}^{1/2}_{\eta} \phi (\xi,\eta) := \sum_{n=0}^{N} \sqrt{\widehat{S}_{n}}\widehat{\phi}_{n}(\xi)L_{n}(\eta), & \forall \phi : \phi (\xi,\eta)= \sum_{n=0}^{N}\widehat{\phi}_{n}(\xi)L_{n}(\eta). \end{array} \end{array} $$

Now we turn to define the SVV operator in the triangular domain △. For \(\boldsymbol {u}_{N}, \boldsymbol {v}_{N} \in \mathbb {Q}_{N}(\triangle)^{2}\), we use the Duffy mapping (3) to associate the functions \(\widetilde {\boldsymbol {u}}_{N}\) and \(\widetilde {\boldsymbol {v}}_{N}\) through (6). Doing so allows to define the SVV operator by

$$\begin{array}{@{}rcl@{}} V_{N}(\boldsymbol{u}_{N},\boldsymbol{v}_{N})=\epsilon_{N} (J{G} \mathcal{S}^{1/2}{\nabla }\tilde{\boldsymbol{u}}_{N}, {G} \mathcal{S}^{1/2} {\nabla }\tilde{\boldsymbol{v}}_{N})_{N,\boldsymbol{\square}}, \end{array} $$

(12)

where *G* is the Jacobian of the mapping (4):

$$\begin{array}{@{}rcl@{}} {G}= \left(\begin{array}{cc} \frac{\partial \xi}{\partial x} & \frac{\partial \eta}{\partial x} \\ \frac{\partial \xi}{\partial y} & \frac{\partial \eta}{\partial y}\\ \end{array} \right) = \left(\begin{array}{cc} \frac{4}{1-\eta} & 0 \\ {2(1+\xi)\over 1-\eta} & 2 \\ \end{array} \right). \end{array} $$

We are now in a position to propose our SVV-stabilized TSM in single domain △ as follows: find *u*_{N}∈*X*_{N},*p*_{N}∈*M*_{N}, such that

$$\begin{array}{@{}rcl@{}} \left\{ \begin{array}{rll} (D_{t} \boldsymbol{u}_{N},\boldsymbol{v}_{N})_{N}+ \nu(\nabla \boldsymbol{u}_{N},\nabla \boldsymbol{v}_{N})_{N} \!- (p_{N}, \nabla\cdot \boldsymbol{v}_{N})_{N} +V_{N}(\boldsymbol{u}_{N},\boldsymbol{v}_{N}) =& (\boldsymbol{f}, \boldsymbol{v}_{N})_{N},& \forall \boldsymbol{v}_{N}\in \boldsymbol{X}_{N},\\ (q_{N}, \nabla\cdot \boldsymbol{u}_{N})_{N} =& 0,& \forall q_{N}\in M_{N},\\ \end{array} \right. \end{array} $$

where the stabilization term *V*_{N} is defined in (12). In practice, it is highly beneficial to have the original diffusion term and the stabilization term combined together. Thus we propose to introduce the term *T*_{N}(*u*_{N},*v*_{N}) to replace *ν*(∇*u*_{N},∇*v*_{N})_{N}+*V*_{N}(*u*_{N},*v*_{N}), which is defined by

$$\begin{array}{@{}rcl@{}} T_{N}(\boldsymbol{u}_{N},\boldsymbol{v}_{N})=\nu (J {G}\mathcal{T}^{1/2}{\nabla }\tilde{\boldsymbol{u}}_{N}, {G} \mathcal{T}^{1/2} {\nabla }\tilde{\boldsymbol{v}}_{N})_{N,\boldsymbol{\square}}, \end{array} $$

where

$$\begin{array}{@{}rcl@{}} \mathcal{T}^{1/2}{\nabla }\tilde{\boldsymbol{u}}_{N}= \left(\begin{array}{cc} \mathcal{T}^{1/2}_{\xi}(\partial_{\xi} \tilde{u}_{1,N}) & \mathcal{T}^{1/2}_{\xi}(\partial_{\xi} \tilde{u}_{2,N}) \\ \mathcal{T}^{1/2}_{\eta}(\partial_{\eta} \tilde{u}_{1,N}) & \mathcal{T}^{1/2}_{\eta}(\partial_{\eta} \tilde{u}_{2,N}) \end{array} \right) \end{array} $$

with

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} \mathcal{T}^{1/2}_{\xi} \phi (\xi,\eta) := \sum_{n=0}^{N} \sqrt{1+\frac{\epsilon_{N}}{\nu}\widehat{S}_{n}}\widehat{\phi}_{n}(\eta)L_{n}(\xi), & \forall \phi: \phi (\xi,\eta)=\sum_{n=0}^{N}\widehat{\phi}_{n}(\eta)L_{n}(\xi); \\ \mathcal{T}^{1/2}_{\eta} \phi (\xi,\eta) := \sum_{n=0}^{N} \sqrt{1+\frac{\epsilon_{N}}{\nu}\widehat{S}_{n}}\widehat{\phi}_{n}(\xi)L_{n}(\eta), & \forall \phi: \phi (\xi,\eta)=\sum_{n=0}^{N}\widehat{\phi}_{n}(\xi)L_{n}(\eta). \end{array} \end{array} $$

Finally, the SVV-stabilized TSM for the Navier-Stokes equations reads: find *u*_{N}∈*X*_{N},*p*_{N}∈*M*_{N}, such that

$$\begin{array}{@{}rcl@{}} \left\{ \begin{array}{rll} (D_{t} \boldsymbol{u}_{N},\boldsymbol{v}_{N})_{N}+T_{N}(\boldsymbol{u}_{N},\boldsymbol{v}_{N}) - (p_{N}, \nabla\cdot \boldsymbol{v}_{N})_{N} =& (\boldsymbol{f}, \boldsymbol{v}_{N})_{N}\ ,& \forall \boldsymbol{v}_{N}\in \boldsymbol{X}_{N},\\ (q_{N}, \nabla\cdot \boldsymbol{u}_{N})_{N} =& 0,\ \ & \forall q_{N}\in M_{N},\\ \end{array} \right. \end{array} $$

(13)

### 2.3 Implementation based on nodal basis

In this subsection, we give the details of the implementation of the SVV stabilization term *T*_{N}(·,·). The approach described here follows what is usually done when a nodal basis is chosen.

For notation convenience, we denote by *u*_{1}∈*X*_{N} and *v*_{1}∈*X*_{N} the first component of *u*_{N} and *v*_{N} respectively, respectively. The first component of *T*_{N}(*u*_{N},*v*_{N}), denoted by \(T_{N}^{1}\), can be written as

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} T_{N}^{1} &=& \nu \sum_{p,q=1}^{N}\left[G_{1} \mathcal{T}^{1/2}(\partial_{\xi} \tilde{u}_{1}) \mathcal{T}^{1/2}(\partial_{\xi} \tilde{v}_{1})+ G_{2} \mathcal{T}^{1/2}(\partial_{\eta} \tilde{u}_{1}) \mathcal{T}^{1/2}(\partial_{\eta} \tilde{v}_{1}) \right.\\ &&\left. + G_{3}(\mathcal{T}^{1/2}(\partial_{\xi} \tilde{u}_{1}) \mathcal{T}^{1/2}(\partial_{\eta} \tilde{v}_{1})+ \mathcal{T}^{1/2}(\partial_{\eta} \tilde{u}_{1}) \mathcal{T}^{1/2}(\partial_{\xi} \tilde{v}_{1})) \right](\xi_{pq})\frac{\omega_{pq}}{J(\xi_{pq})}, \end{array} \end{array} $$

where *ξ*_{pq}=(*ξ*_{p},*η*_{q}), *ω*_{pq}=*ω*_{p}*ω*_{q}. *G*_{1},*G*_{2}, and *G*_{3} are three geometric factors, defined as

$$\begin{array}{@{}rcl@{}} \begin{array}{rl} G_{1}:=& (\partial_{\eta} x)^{2}+(\partial_{\eta} y)^{2}= \frac{(1+\xi)^{2}+4}{16}, \\ G_{2}:=& (\partial_{\xi} x)^{2}+(\partial_{\xi} y)^{2}= \frac{(1-\eta)^{2}}{16}, \\ G_{3}:=& -(\partial_{\xi} x \partial_{\eta} y+\partial_{\xi} y \partial_{\eta} x) =\frac{(1+\xi)(1+\eta)}{16}. \end{array} \end{array} $$

Let *h*_{i},*i*=0,1,…,*N* be the Lagrangian polynomials associated to the Legendre-Gauss-Lobatto points {*ξ*_{p},*p*=0,1,…,*N*}. Then it can be checked that the function set

$$\begin{array}{@{}rcl@{}} \left\{h_{i}(\xi)h_{j}(\eta), 0\leq i \leq M,0\leq j \leq N-1; h_{N}(\eta)\right\} \end{array} $$

forms a basis of the \(\mathbb {\widetilde {Q}}_{N}(\boldsymbol {\square })\cap H^{1}(\boldsymbol {\square })\).

Expressing *u*_{1} on this basis, i.e., \(u_{1}=\sum _{i=0}^{M}\sum _{j=0}^{N-1}u_{ij}h_{i}(\xi)h_{j}(\eta)+u_{0N}h_{N}(\eta)\), and choosing the test function *v*_{1}∈*X*_{N} to be each of the above basis functions, we arrive at the matrix statement of \(T_{N}^{1}\), denoted still by \(T_{N}^{1}\):

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} T_{N}^{1}(m,n)&=& \nu \sum_{i=0}^{N}\frac{\rho_{in}}{|J(\xi_{in})|} G_{1,in}(D_{s})_{im} \left(\sum_{p=0}^{N}(D_{s})_{ip}u_{pn} \right) \\ && +\nu \sum_{j=0}^{N}\frac{\rho_{mj}}{|J(\xi_{mj})|} G_{2,mj}(D_{s})_{jn} \left(\sum_{q=0}^{N-1}(D_{s})_{jq}u_{mj}+(D_{s})_{jN}u_{0N} \right) \\ && +\nu \sum_{j=0}^{N-1}\frac{\rho_{mj}}{|J(\xi_{mj})|} G_{3,mj}(D_{s})_{jn} \left(\sum_{p=0}^{N}(D_{s})_{mp}u_{pj} \right) \\ && +\nu \sum_{i=0}^{N}\frac{\rho_{in}}{|J(\xi_{in})|} G_{3,in}(D_{s})_{im} \left(\sum_{q=0}^{N-1}(D_{s})_{nq}u_{iq}+(D_{s})_{nN}u_{0N} \right) \\ && \forall m=0,\ldots,N,n=0,\ldots,N-1. \end{array} \end{array} $$

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} T_{N}^{1}(0,N)&=& \nu \sum_{j=0}^{N}\left(\sum_{i=0}^{N}\frac{\rho_{ij}}{|J(\xi_{ij})|} G_{2,ij}(D_{s})_{jN} \left(\sum_{q=0}^{N-1}(D_{s})_{jq}u_{iq}+(D_{s})_{jN}u_{0N} \right) \right) \\ && + \nu \sum_{j=0}^{N-1}\left (\sum_{i=0}^{N}\frac{\rho_{ij}}{|J(\xi_{ij})|} G_{3,ij}(D_{s})_{jN} \left(\sum_{p=0}^{N}(D_{s})_{ip}u_{pj} \right) \right). \end{array} \end{array} $$

Here \(D_{s}=\mathcal {T}^{1/2}D\) with *D* being the Legendre differentiation matrix. The matrix form of the operator \(\mathcal {T}^{1/2}\) is defined by

$$ \begin{array}{l} \mathcal{T}^{1/2}:=M^{-1}\text{diag} \left(I+\frac{\epsilon_{N}}{\nu}\widehat{S}_{n}\right)^{1/2}M, \end{array} $$

(14)

where *M* is the passage matrix from physical space to Legendre spectral space.

### 2.4 SVV stabilization in TSEM

We now briefly describe how to set up SVV-stabilized TSEM with triangle and rectangle mixed partition. Let *Ω* be an open bounded polygonal domain, which is decomposed as:

$$\begin{array}{@{}rcl@{}} \overline{\Omega}=\bigcup_{k=1}^{K}\overline{\Omega}_{k},~\Omega_{i} \cap \Omega_{j}= \emptyset,~i\neq j.~ \Omega_{i} ~\text{is a triangular or quadrilateral element.} \end{array} $$

Let *F*_{k} denote the mapping from the reference domain \(\boldsymbol {\square }\) to *Ω*_{k}. In this case, the velocity and pressure approximation spaces are:

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} X_{N}=\left\{v_{N} \in H_{0}^{1}(\Omega): v_{N}|_{\Omega_{k}}\in X_{N}^{k},1\leq k \leq K\right\},\\ M_{N}=\left\{q_{N} \in L_{0}^{2}(\Omega): q_{N} |_{\Omega_{k}}\in M_{N}^{k},1\leq k \leq K\right\}, \end{array} \end{array} $$

(15)

where

$$\begin{array}{@{}rcl@{}} \begin{array}{lll} X_{N}^{k}=\left\{v_{N}=\tilde{v}_{N}\circ F_{k}^{-1}: \tilde{v}_{N} \in \mathbb{\widetilde{Q}}_{N}(\boldsymbol{\square})\right\}, \\ [3mm] M_{N}^{k}=\left\{q_{N}=\tilde{q}_{N}\circ F_{k}^{-1}:\tilde{q}_{N} \in \mathbb{\widetilde{Q}}_{N-2}(\boldsymbol{\square})\right\}. \end{array} \end{array} $$

The SVV-stabilized TSEM in this spectral element case can be written in the same way as (13), with the SVV term taking now the element-wise sum as

$$\begin{array}{@{}rcl@{}} T_{N}(\boldsymbol{u}_{N},\boldsymbol{v}_{N})=\sum_{k=1}^{K}T_{N}^{k}(\boldsymbol{u}_{N},\boldsymbol{v}_{N}), \end{array} $$

(16)

where

$$\begin{array}{@{}rcl@{}} T_{N}^{k}(\boldsymbol{u}_{N},\boldsymbol{v}_{N})=\nu \left(J^{k} {G}^{k}\mathcal{T}^{1/2}{\nabla }\tilde{\boldsymbol{u}}_{N}, {G}^{k} \mathcal{T}^{1/2} {\nabla }\tilde{\boldsymbol{v}}_{N}\right)_{N,\boldsymbol{\square}}, k=1,2,\ldots,K, \end{array} $$

with *G*^{k} being the Jacobian of the mapping \(F^{-1}_{k}\), and *J*^{k} the Jacobian determinant of the mapping *F*_{k}.