Skip to main content

Enhanced algorithms for solving the spectral discretization of the vorticity–velocity–pressure formulation of the Navier–Stokes problem


The objective of the article is to improve the algorithms for the resolution of the spectral discretization of the vorticity–velocity–pressure formulation of the Navier–Stokes problem in two and three domains. Two algorithms are proposed. The first one is based on the Uzawa method. In the second one we consider a modified global resolution. The two algorithms are implemented and their results are compared.

1 Introduction

The Navier–Stokes system models the flow of a fluid, for example, the movements of air in the atmosphere, ocean currents, the flow of water in a pipeline and many other fluid-flow phenomena. The change of one of the parameters associated with the Navier–Stokes equations (the domain, the boundary conditions, the data, the variational formulation, the approximation method, …) gives us a new research problem. In the reference article [1], the authors handle the Navier–Stokes equations with no standard boundary conditions on the velocity and the pressure in a convex domain.

In this work, Ω is assumed to be a bounded simply connected domain of \(\mathbb{R}^{d}\) (\(d=2, 3\)) and Ω is its continuous Lipschitz boundary. We focus on the following Navier–Stokes system:

$$\begin{aligned} \textstyle\begin{cases} -\nu\Delta{\boldsymbol{\varphi} }+({\boldsymbol{\varphi} } \cdot\nabla{\boldsymbol{\varphi} }) +\nabla P ={\mathbf{f}}&\text{in } \Omega,\\ \operatorname{div}{\boldsymbol{\varphi} }=0 &\text{in } \Omega,\\ {\boldsymbol{\varphi} }\cdot{\mathbf{n}}=0 &\text{on } \partial \Omega,\\ \eta(\textbf{curl }{\boldsymbol{\varphi} }) ={\mathbf{0}}& \text{on } \partial\Omega, \end{cases}\displaystyle \end{aligned}$$

where φ is the velocity, P the pressure, f is the density of forces, φ is the fluid viscosity and n is an outer unit vector normal to Ω.

System (1) can be written as (see [2, 3]):

$$\begin{aligned} \textstyle\begin{cases} \nu(\textbf{curl }\mu) +(\mu\times {\boldsymbol{\varphi} }) +\nabla p ={\mathbf{f}}&\text{in } \Omega,\\ \operatorname{div} {\boldsymbol{\varphi} }=0 &\text{in } \Omega,\\ \mu=\textbf{curl }{\boldsymbol{\varphi} }&\text{in } \Omega,\\ {\boldsymbol{\varphi} } \cdot {\mathbf{n}}=0 &\text{on } \partial \Omega,\\ \eta(\mu) ={\mathbf{0}}& \text{on } \partial\Omega. \end{cases}\displaystyle \end{aligned}$$


  • \(\mu=\textbf{curl }{\boldsymbol{\varphi} }\) is the vorticity verifying \({\boldsymbol{\varphi} }\cdot\nabla{\boldsymbol{\varphi} }=\mu\times {\boldsymbol{\varphi} }+\frac{1}{2}{\textbf{grad }}|{\boldsymbol{\varphi} }|^{2}\),

  • \(p=P+\frac{1}{2}|{\boldsymbol{\varphi} }|^{2}\) is the dynamic pressure,

  • η is an operator such that \(\eta(\textbf{curl }{\boldsymbol{\varphi} })\) is the normal (resp. the tangential) boundary component of curl φ when \(d=2\) (resp. \(d = 3\)).

The above problem has been solved in several previous works using finite-element discretization, see [26], while the extension to the discretization by the spectral method has been handled in [7, 8] for solving stationary and nonstationary Navier–Stokes equations. In a previous work [8], we studied (2) using the spectral discretization method. The resulting linear system has been solved using the GMRES iterative method (see [9]) since the matrix of the resulting linear system is not symmetric.

To improve the resolution of this problem, we propose in this work two new methods in order to reduce the number of iterations and execution time. The first method consists in applying the Uzawa algorithm (see [10, 11]) after reducing the unknowns of the system by eliminating the vorticity. The second method consists of modifying the iterative algorithm used to linearize the resolution of the Navier–Stokes problem in order to obtain a linear system with a symmetric positive-definite matrix. Then, the conjugate gradient method is used.

The paper is organized as follows:

• The continuous and discrete weak formulation are described in Sect. 2.

• Sect. 3 provides the details of the obtained linear system and its implementation using the two proposed algorithms.

• In Sect. 4, we present and compare the two algorithms for the resolution of the discrete problem based on some numerical tests.

2 Continuous and the discrete weak formulations

The weak formulation of problem (2) can be written as: find \((\mu,{\boldsymbol{\varphi} },p) \in H_{0}({\mathbf{curl}},\Omega) \times H_{0}({ \mathrm{div}},\Omega) \times L^{2}_{0}(\Omega)\) solution of

$$ \begin{gathered} a(\mu,{\boldsymbol{\varphi} };{ \mathbf{v}}) + T(\mu,{\boldsymbol {\varphi} };{ \mathbf{v}})+ b({\mathbf{v}},p) = \langle{\mathbf{f}},{\mathbf{v}} \rangle, \quad\forall{\mathbf{v}}\in H_{0}({\mathrm{div}},\Omega), \\ b({\boldsymbol{\varphi} },q) = 0, \quad \forall q \in L^{2}_{0}( \Omega), \\ c(\mu,{\boldsymbol{\varphi} };{\boldsymbol{\psi}}) = 0, \quad \forall { \boldsymbol{\psi}} \in H_{0}({ \mathbf{curl}},\Omega), \end{gathered} $$


  • \(H_{0}({\mathbf{curl}},\Omega) = \{{ {\boldsymbol{\varphi} }} \in H({\mathbf{curl}}, \Omega); \eta({\boldsymbol{\varphi}}) = {\mathbf{0}} \text{ on }\partial\Omega \}\)

    with \(H({\mathrm{div}},\Omega) = \{ {\boldsymbol{\varphi} }\in L^{2}(\Omega)^{d}; {\mathrm{div}} { {\boldsymbol{\varphi} }} \in L^{2}(\Omega) \}\),

  • \(H_{0}({\mathbf{curl}},\Omega) = \{{ {\boldsymbol{\varphi} }} \in H({\mathbf{curl}}, \Omega); \eta({\boldsymbol{\varphi}}) = {\mathbf{0}} \text{ on }\partial\Omega \}\)

    with \(H({\mathbf{curl}}, \Omega) = \{{ {\boldsymbol{\varphi} }} \in L^{2}( \Omega)^{\frac{d(d-1)}{2}}; {\mathbf{curl}} { {\boldsymbol{\varphi } }} \in L^{2}( \Omega)^{d} \}\),

  • \(L^{2}_{0}(\Omega)\) be the space of \(L^{2}(\Omega)\) functions with a null integral on Ω,

  • \(\langle\cdot,\cdot\rangle\) denotes the duality product between \(H_{0}({\mathrm{div}},\Omega)\) and its dual space,

  • \(a(\cdot,\cdot;\cdot)\), \(b(\cdot,\cdot)\) and \(c(\cdot,\cdot;\cdot)\) are bilinear forms defined by

    $$ \begin{aligned} & a(\mu,{\boldsymbol{\varphi} };{\mathbf{v}}) = \nu \int_{\Omega}({\mathbf{curl}} \mu) ({\mathbf{x}}) \cdot { \mathbf{v}}({ \mathbf{x}}) \,d{\mathbf{x}},\qquad b({\mathbf{v}},q) = - \int_{\Omega}({ \mathrm{div}} {\mathbf{v}}) ({\mathbf{x}})q({ \mathbf{x}}) \,d{\mathbf{x}} \\ & \text{and}\quad c(\mu,{\boldsymbol{\varphi} };{\boldsymbol{\psi}}) = \int_{\Omega }\mu({\mathbf{x}}) \cdot \psi({\mathbf{x}}) \,d{\mathbf{x}}- \int _{\Omega}{\boldsymbol{\varphi} }({\mathbf{x}}) \cdot ({ \mathbf {curl}} \psi) ({ \mathbf{x}}) \,d{\mathbf{x}}, \end{aligned} $$
  • T is a trilinear form defined as

    $$ T(\mu,{\boldsymbol{\varphi} };{\mathbf{v}}) = \int_{\Omega}(\mu \times{ \boldsymbol{\varphi} }) ({\mathbf{x}}) \cdot {\mathbf{v}}({\mathbf {x}}) \,d{\mathbf{x}}. $$

We note that \(b(.,.)\) verifies the inf-sup condition

$$ \sup_{{\mathbf{v}}\in H_{0}({\mathrm{div}},\Omega)} \frac {b({\mathbf{v}},q) }{ \Vert {\mathbf{v}} \Vert _{H({\mathrm{div}},\Omega)}} \ge\alpha \Vert q \Vert _{L^{2}(\Omega)}, \quad\forall q \in L^{2}_{0}( \Omega), $$

where \(\alpha> 0\) is a constant that depends on Ω (see [12] or ([10] Chap. I, Cor. 2.4)). We can easily show that problem (3) is well posed (see [13]).

Hereinafter, we suppose that the domain Ω is a square in dimension two and a cube in dimension three. Using the Nédélec’s finite-element spaces on cubic three-dimensional meshes (see [14, Sect. 2]), we construct our discrete spectral spaces as follows.

Let an integer \(N\ge2\); we consider \({\mathbb{X}}_{N}\) the discrete space of the velocity

$$ {\mathbb{X}}_{N} = H_{0}({\mathrm{div}},\Omega) \cap \textstyle\begin{cases} {\mathbb{P}}_{N,N-1}(\Omega) \times{\mathbb{P}}_{N-1,N}(\Omega) & \text{if $d = 2$,} \\ {\mathbb{P}}_{N,N-1,N-1}(\Omega) \times{\mathbb{P}}_{N-1,N,N-1}( \Omega) \times{\mathbb{P}}_{N-1,N-1,N}(\Omega) & \text{if $d = 3$,} \end{cases} $$

\({\mathbb{Y}}_{N}\) the discrete space of the vorticity

$$ {\mathbb{Y}}_{N} = \textstyle\begin{cases} H^{1}_{0}(\Omega) \cap{\mathbb{P}}_{N}(\Omega)&\text{if $d = 2$,} \\ H_{0}({\mathbf{curl}},\Omega) \cap ({\mathbb {P}}_{N-1,N,N}(\Omega) \times{\mathbb{P}}_{N,N-1,N}(\Omega) \times{\mathbb{P}}_{N,N,N-1}( \Omega) ) &\text{if $d = 3$} \end{cases} $$

and \({\mathbb{M}}_{N}\) the discrete space of the pressure

$$ {\mathbb{M}}_{N} = L^{2}_{0}(\Omega) \cap{ \mathbb{P}}_{N-1}(\Omega). $$

In the following, we use the Gauss–Lobatto quadrature formula to construct the discrete problem

$$ \int_{-1}^{1} {\boldsymbol{\varphi} }(x) \,dx = \sum_{j = 0}^{N} { \boldsymbol{\varphi} }( \xi_{j}) \rho_{j}, \quad\forall {\boldsymbol{\varphi} } \in{\mathbb{P}}_{2N-1}(-1,1), $$

where \(\xi_{j}\), \(0 \le j \le N\), are the roots of the polynomial \((1-x^{2})\chi_{N}^{\prime}\), \(\chi_{N}\) is the Legendre polynomial of degree N defined on \([-1,1]\), and \(\rho_{j}\), \(0 \le j \le N\), is the associated set of the positive weights.

The following inequality

$$ \Vert {\boldsymbol{\varphi} }_{N} \Vert _{L^{2}(-1,1)}^{2} \le\sum_{j = 0}^{N} {\boldsymbol{\varphi} }_{N}^{2}(\xi_{j}) \rho_{j} \le3 \Vert { \boldsymbol{\varphi} }_{N} \Vert _{L^{2}(-1,1)}^{2}, \quad\forall{ \boldsymbol{\varphi} }_{N} \in{\mathbb{P}}_{N}(-1,1) $$

enables us to show that the continuous and discrete norms are equivalent (see [15]).

The discrete scalar product is defined such that for the continuous functions φ and ψ on Ω̄, we have:

$$ (\varphi,\psi)_{N} = \textstyle\begin{cases} \sum_{i = 0}^{N} \sum_{l = 0}^{N} \varphi(\xi_{i}, \xi_{l})\psi(\xi_{i},\xi_{l}) \rho_{i}\rho_{l} &\text{if $d = 2$,} \\ \sum_{i = 0}^{N} \sum_{l = 0}^{N} \sum_{r = 0}^{N} \varphi(\xi_{i},\xi_{l},\xi_{r})\psi(\xi_{i},\xi_{l},\xi_{r}) \rho_{i}\rho_{l}\rho_{r} &\text{if $d = 3$.} \end{cases} $$

Then, using the Galerkin method and the numerical integration based on the Gauss–Lobatto quadrature formula (5), we deduce for a continuous data f on Ω̅ the following discrete variational formulation:

Find \((\mu_{N},{\boldsymbol{\varphi} }_{N},p_{N})\) in \({\mathbb{Y}_{N}}\times{\mathbb{X}}_{N} \times{\mathbb{M}}_{N}\) such that

$$ \begin{gathered} a_{N}( \mu_{N},{\boldsymbol{\varphi} }_{N}; {\mathbf {v}}_{N})+T_{N}(\mu_{N},{ \boldsymbol{ \varphi} }_{N}; {\mathbf{v}}_{N}) + b_{N}({ \mathbf {v}}_{N},p_{N}) = ( {\mathbf{f}},{ \mathbf{v}}_{N})_{N} , \quad\forall{\mathbf{v}}_{N} \in{\mathbb{X}}_{N}, \\ b_{N}({\boldsymbol{\varphi} }_{N},q_{N}) = 0, \quad \forall q_{N} \in{ \mathbb{M}}_{N}, \\ c_{N}(\mu_{N},{\boldsymbol{\varphi} }_{N}; \psi_{N}) = 0 \quad \forall \psi_{N} \in{ \mathbb{Y}}_{N}. \end{gathered} $$

The bilinear forms \(a_{N}(\cdot,\cdot;\cdot)\), \(b_{N}(\cdot,\cdot)\), and \(c_{N}(\cdot,\cdot;\cdot)\) are continuous and are formulated as follows:

$$ \begin{aligned} & a_{N}(\mu_{N},{\boldsymbol{ \varphi} }_{N}; {\mathbf{v}}_{N}) = \nu ({\mathbf{curl}} \mu_{N} ,{\mathbf{v}}_{N})_{N},\qquad b_{N}({ \boldsymbol{\varphi} }_{N},q_{N}) = - ({\mathrm{div}} {\boldsymbol {\varphi} }_{N}, q_{N})_{N} , \\ & c_{N}(\mu_{N},{\boldsymbol{\varphi} }_{N}; \psi_{N} ) = (\mu_{N}, \psi_{N})_{N} - ({\boldsymbol{\varphi} }_{N}, {\mathbf{curl}} \psi _{N})_{N}. \end{aligned} $$

However, the discrete trilinear form \(T_{N}(\cdot,\cdot;\cdot)\) is defined as:

$$ T_{N}(\mu_{N},{\boldsymbol{\varphi} }_{N}; { \mathbf{v}}_{N})=(\mu_{N} \times{\boldsymbol{\varphi} }_{N},{\mathbf{v}}_{N})_{N}. $$

Using Brouwer’s fixed-point theorem ([10], Chap. IV, Cor. 1.1), problem (6) has a unique solution, since the discrete bilinear form \(b_{N}(\cdot,\cdot)\) coincides with the continuous one on \({\mathbb{X}}_{N} \times{\mathbb{M}}_{N}\) due to the exactness of the quadrature formula and verifies the inf-sup condition (see [8], Lem. 3.9)

$$ \sup_{{\mathbf{v}}_{N} \in{\mathbb{X}}_{N}} \frac{b_{N}({\mathbf {v}}_{N}, p_{N}) }{ \Vert {\mathbf{v}}_{N} \Vert _{H({\mathrm{div}},\Omega)}} \ge \alpha \Vert p_{N} \Vert _{L^{2}(\Omega)}, \quad\forall p_{N} \in{\mathbb{M}}_{N}. $$

In the case of \(d=2\) the error estimate between the continuous and discrete problems is given by (see [7] for the proof)

$$ \begin{aligned}[b] & \Vert \mu-\mu_{N} \Vert _{H({\mathbf{curl}},\Omega)} + \Vert {\boldsymbol{\varphi} }-{\boldsymbol{\varphi} }_{N} \Vert _{H({\mathrm{div}}, \Omega)} + \bigl\vert \operatorname{Log}(N) \bigr\vert ^{- \frac{{1}}{{2}}} \Vert p-p_{N} \Vert _{L^{2}( \Omega)} \\ &\quad \le c \bigl(N^{-s} \bigl( \Vert \mu \Vert _{H^{s+1}(\Omega)} + \Vert {\boldsymbol{\varphi} } \Vert _{H^{s}(\Omega)^{2}} + \Vert p \Vert _{H^{s}( \Omega)} \bigr) + N^{-\tau} \Vert { \mathbf{f}} \Vert _{H^{\tau }(\Omega)^{2}} \bigr). \end{aligned} $$

where c is a positive constant independent of N, \((\mu_{N},{\boldsymbol{\varphi} }_{N},p_{N})\) in \({\mathbb{Y}_{N}}\times{\mathbb{X}}_{N} \times{\mathbb{M}}_{N}\) and \((\mu,{\boldsymbol{\varphi} },p) \in H^{s+1}(\Omega)\times{H^{s}}( \Omega)^{2}\times H^{s}(\Omega)\), \(s>1\).

In the case \(d=3\), the error estimate is difficult to prove and remains an open problem.

3 Numerical algorithms

We present in this section two numerical algorithms to improve the numerical resolution of discrete problem (6). In the following we consider \(\Omega=]-1, 1[^{2}\).

3.1 The iterative algorithm

To linearize the Navier–Stokes problem, we consider the following iterative algorithm.

  • Step 1: Solve the following linear Stokes problem:

    Find \((\mu^{0}_{N},{\boldsymbol{\varphi} }^{0}_{N}; p^{0}_{N})\) in \({\mathbb{Y}_{N}}\times{\mathbb{X}}_{N} \times{\mathbb{M}}_{N}\) such that,

    $$ \begin{aligned} &\forall{\mathbf{v}}_{N} \in{\mathbb{X}}_{N}, \quad a_{N}\bigl( \mu^{0}_{N},{\boldsymbol{\varphi} }^{0}_{N}; {\mathbf{v}}_{N}\bigr) + b_{N}\bigl({ \mathbf{v}}_{N},p^{0}_{N}\bigr) = ({ \mathbf{f}},{\mathbf{v}}_{N})_{N} , \\ &\forall q_{N} \in{\mathbb{M}}_{N}, \quad b_{N}\bigl({\boldsymbol{\varphi } }^{0}_{N},q_{N} \bigr) = 0, \\ &\forall\psi_{N} \in{\mathbb{Y}}_{N}, \quad c_{N}\bigl(\mu^{0}_{N},{ \boldsymbol{ \varphi} }^{0}_{N};\psi_{N}\bigr) = 0. \end{aligned} $$
  • Step 2: Solve the following problem, by assuming that the \({i-1}\) iterative solution \((\mu^{i-1}_{N},{\boldsymbol{\varphi} }^{i-1}_{N}; p^{i-1}_{N})\) is known.

    Find \((\mu^{i}_{N},{\boldsymbol{\varphi} }^{i}_{N}; p^{i}_{N})\) in \({\mathbb{Y}_{N}}\times{\mathbb{X}}_{N} \times{\mathbb{M}}_{N}\) such that,

    $$ \begin{gathered} a_{N}\bigl( \mu^{i}_{N},{\boldsymbol{\varphi} }^{i}_{N};{ \mathbf {w}}_{N}\bigr) + T_{N}\bigl( \mu^{i-1}_{N}, {\boldsymbol{\varphi} }^{i}_{N}; {\mathbf{w}}_{N} \bigr) + T_{N}\bigl( \mu^{i-1}_{N},{ \boldsymbol{\varphi} }_{N}^{i};{\mathbf{w}}_{N} \bigr) \\ \qquad {}+ b_{N}\bigl({\mathbf{w}}_{N},p^{i}_{N} \bigr) = ({\mathbf{f}}_{N},{\mathbf {w}}_{N})_{N} + T_{N}\bigl(\mu^{i-1}_{N},{\boldsymbol{ \varphi} }^{i-1}_{N};{\mathbf {w}}_{N}\bigr) , \quad \forall{\mathbf{w}}_{N} \in{\mathbb{X}}_{N}, \\ b_{N}\bigl({\boldsymbol{\varphi} }^{i}_{N},q_{N} \bigr) = 0, \quad \forall q_{N} \in{ \mathbb{M}}_{N}, \\ c_{N}\bigl(\mu^{i}_{N},{\boldsymbol{ \varphi} }^{i}_{N}; \boldsymbol{\vartheta}_{N} \bigr) = 0 \quad \forall\boldsymbol{\vartheta}_{N} \in{ \mathbb{Y}}_{N}. \end{gathered} $$

We stop the iterations when the following inequality is satisfied

$$ \bigl( \bigl\Vert \mu^{i}_{N} - \mu^{i-1}_{N} \bigr\Vert _{H({{\mathbf{curl}}}, \Omega)}^{2} + \bigl\Vert {\boldsymbol{ \varphi} }^{i}_{N} - {\boldsymbol{\varphi} }^{i-1}_{N} \bigr\Vert _{H(\operatorname {div},\Omega)}^{2} \bigr)^{\frac{1}{2}}\leq \epsilon, $$

where ϵ a positive small real number.

3.2 The linear matrix system

Consider the Lagrange polynomials of degree ≤1, \(\kappa_{j}\in\mathbb{P}_{N}([-1,1])\), such that for, \(0\leq j,k\leq N\), \(\kappa_{j}(\xi_{k})=\delta_{jk}\) (the Kronecker symbol).

Since the discrete velocity function does not have the same degree in the different directions, we consider \(j^{\sharp}\in{0,\ldots,N}\) the fixed integer and we define the following polynomial of degree \(N-1\)

$$ \kappa_{j}^{\sharp}(x) = \kappa_{j}(x) \frac{\xi_{j}-\xi _{j^{\sharp}} }{x - \xi_{j^{\sharp}} }, \quad j \in J^{\sharp}, $$

where \(J^{\sharp}\) is the set \(\{0,\ldots,N\} \setminus\{j^{\sharp}\}\). Then, we write the unknowns \((\mu^{i}_{N},{\boldsymbol{\varphi} }^{i}_{N}; p^{i}_{N})\) in two dimensions as:

$$\begin{aligned}& \mu^{i}_{N}(x,y) = \sum _{j = 1}^{N-1} \sum_{k = 1}^{N-1} \mu^{i}_{jk} \kappa_{j}(x) \kappa_{k}(y), \\& {\boldsymbol{\varphi} }^{i}_{Nx}(x,y) = \sum_{j = 1}^{N-1} \sum _{k \in I^{\sharp}} {\boldsymbol{\varphi} }^{ix}_{jk} \kappa _{j}(x)\kappa_{k}^{\sharp}(y), \quad{ \boldsymbol{\varphi} }^{i}_{Ny}(x,y) = \sum _{j \in J^{\sharp}} \sum_{k = 1}^{N-1} {\boldsymbol{\varphi} }^{iy}_{jk} \kappa_{j}^{\sharp}(x) \kappa_{k}(y), \\& {\check{p}^{i}}_{N}(x,y) = \sum _{j\in J^{\sharp}, k\in J^{\sharp }, (j,k) \neq(0,0) } p^{i}_{jk} \kappa_{j}^{\sharp}(x)\kappa_{k}^{\sharp}(y). \end{aligned}$$

We consider the real pressure

$$ p^{i}_{N}(x,y) =\check{p}^{i}_{N}(x,y) - \frac{1}{4} \bigl( \check{p}^{i}_{N}, 1 \bigr)_{N}, $$

since the pseudopressure is not in \(L^{2}_{0}(\Omega)\).

We denote by \((\mu^{i}_{N},{\boldsymbol{\varphi} }^{i}_{N}; p^{i}_{N})\) the components of the solution \((W,U,P)\) on grid (\(\xi_{j},\xi_{k}\)) \(0\leq j,k\leq N\). Problem (10) can be written as the following linear system:

$$ \textstyle\begin{cases} M W - A^{T} U=0,\\ A W + (D U + D U)- B^{T} P=F+ N,\\ B U=0, \end{cases} $$


  • \(A^{T}\) and \(B^{T}\) are, respectively, the transposed matrix of A and B.

  • The matrix A is defined as:

    $$ A=\nu \begin{pmatrix} A_{1} & 0 \\ 0 & A_{2} \end{pmatrix} . $$

    Since \({\mathbf{curl}} (\mu^{i}_{N})=(\partial_{y}\mu^{i}_{N}, -\partial_{x} \mu^{i}_{N})\), the coefficient of the matrices \(A_{1}\) and \(A_{2}\) correspond, respectively, to the terms \((\partial_{y}\mu^{i}_{N},{\boldsymbol{\varphi} }^{i}_{Nx})_{N}\) and \((\partial_{x}\mu^{i}_{N},{\boldsymbol{\varphi} }^{i}_{Ny})_{N}\). In two dimensions, the matrices \(A_{1}\) and \(A_{2}\) are square, their dimension is \((N-1)^{2}\).

  • The matrix \(B=[B_{1}, B_{2} ]\) where \(B_{1}\) and \(B_{2}\) are two matrices, the coefficients of which are deduced, respectively, from the terms \((\partial_{x} {\boldsymbol{\varphi} }^{i}_{Nx}, p_{N})_{N}\) and \((\partial_{y} {\boldsymbol{\varphi} }^{i}_{Ny}, p_{N})_{N}\). We note that the matrices \(B_{1}\) and \(B_{2}\) are not square, their dimension is \(N^{2}-1\) lines and \(2 N(N-1)\) columns.

  • M is a diagonal matrix, the coefficients of which are found from the values of \((\mu^{i}_{N},\mu^{i}_{N})_{N}\). Its dimension is \(N(N-1)^{2}\).

  • The matrices D and N are, respectively, written as \(D=(D_{1},D_{2})\) and \(N_{1}=(N_{1},N_{2})\) and are, respectively, calculated from the terms \(T_{N}(\mu^{i-1}_{N},{\boldsymbol{\varphi} }^{i}_{N};{\mathbf {v}}_{N})\) and \(T_{N}(\mu^{i-1}_{N},{\boldsymbol{\varphi} }^{i-1}_{N};{\mathbf{v}}_{N})\).

3.3 Algorithm 1

To solve the linear system (11), we propose to remove the vorticity from the first equation and replace it in the second one.

This modification permits us to use the Uzawa algorithm (see [10, 11]) with only the velocity and the pressure as unknowns.

$$ \textstyle\begin{cases} W = (M^{-1} A^{T}) U, \\ (A M^{-1} A^{T} +2D) U - B^{T} P=F + N, \\ B U=0. \end{cases} $$

Let \({\tilde{A}}= A M^{-1} A^{T} +2D\). The second and third equations of (12) can be decoupled as

$$ U=\tilde{A}^{-1} \bigl((F+N)- B^{T} P \bigr), $$


$$ \bigl( B \tilde{A}^{-1} B^{T} \bigr)P= \tilde{A}^{-1} (F+N). $$

Since \(B \tilde{A}^{-1} \ B^{T}\) is symmetric and positive defined, we use the conjugate gradient method to solve system (14) at each iteration. Then, we deduce the velocity U and vorticity W, respectively, from (13) and the first equation of (12).

The Uzawa algorithm used is written as:

Uzawa algorithm

• Let \(P_{0}={\mathbf{0}}\).

• Initialization step:

$$\begin{aligned}& {U}_{0}=\tilde{A}^{-1} \bigl({(F+N)}-{B}^{T} P_{0} \bigr) \\& W_{0}= \bigl(M^{-1}A^{T}\bigr)\ U_{0}. \end{aligned}$$

• Iterations: \(n\geq0\)

From \(U_{n}\) and \(P_{n}\):

$$ \begin{gathered} G_{n}= - B U_{n}, \\ V_{n} =\tilde{A}^{-1} B^{T} G_{n}, \\ \rho_{n} =\frac{ \Vert G_{n} \Vert ^{2} }{( B^{T} G_{n}, V_{n})}, \\ P_{n+1} =P_{n}-\rho_{n} G_{n}, \\ U_{n+1} = U_{n}+\rho_{n} V_{n}, \\ W_{n+1} =M^{-1}A^{T}\ U_{n+1}. \end{gathered} $$

3.4 Algorithm 2

We propose a second algorithm to solve problem (11). We begin first by inverting the matrix G given by

$$ G= \begin{pmatrix} M &-A^{T} &0 \\ -A &2D &B^{T} \\ 0 &B &0 \end{pmatrix}. $$

and then find U, W and P.

Since G is symmetric and positive defined, we use the preconditioned gradient conjugate method.

4 Numerical results

4.1 Comparision of two algorithms

We consider the Bercovier–Engelman continuous solution of problem (2) (see [16]) given by

$$ \begin{gathered} \mu(x,y)=6 \bigl( \bigl(1-x^{2}\bigr) \bigl(1-4x^{2}\bigr) \bigl(1-y^{2}\bigr)^{3} + \bigl(1-y^{2}\bigr) \bigl(1-4y^{2}\bigr) \bigl(1-x^{2}\bigr)^{3} \bigr), \\ {\boldsymbol{\varphi} }_{x}(x,y)= -6\bigl(1-y^{2} \bigr)^{2}y\bigl(1-x^{2}\bigr)^{3}, \\ {\boldsymbol{\varphi} }_{y}(x,y)= 6\bigl(1-x^{2} \bigr)^{2}x\bigl(1-y^{2}\bigr)^{3}, \\ p(x,y)= xy. \end{gathered} $$

The aim of this first numerical test is to study the accuracy of the two methods. We consider the viscosity \(\nu=5.10^{-2}\) and the tolerance \(\epsilon=10^{-10}\).

In Fig. 1 we present a comparison of the convergence order of the two presented algorithms based on the error curves on the solution \((\mu,{\boldsymbol{\varphi} },p)\) when N varies between 5 and 20. Figure 1(a) and (b) correspond, respectively, to the resolution using Algorithms 1 and 2. This shows clearly that the obtained error is better when using Algorithm 2.

Figure 1
figure 1

Convergence for the solution defined in (15)

\(\kappa(\tilde{A})\) and \(\kappa(G)\) are, respectively, the condition number of the matrix à and that of the matrix G.

Tables 1 and 2 show the number of convergence iterations and the corresponding average error for the unknowns (vorticity, velocity and pressure). While comparing the two results, it is clear once again that the second method has a better accuracy and converges within a few iterations.

Table 1 Iterations and errors for Algorithm 1
Table 2 Iterations and errors for Algorithm 2

We conclude that:

  • Although Algorithm 1 based on the Uzawa method it is easier to implement and requires much less memory space, it converges after a large number of iterations, which is due to the fact that the conditioning \(\kappa(\tilde{A})\) of the matrix A is high if we compare it with the conditioning \(\kappa(G)\) of the matrix G, see Table 3 (hundreds of iterations for an error of 10−5 order, see Fig. 1 and Table 1).

    Table 3 The condition number for the matrices of the two algorithms
  • The convergence order of Algorithm 2 is much better than the order produced by Algorithm 1 (22 iterations for a relative error approximatively equal to 10−25, see Fig. 1 and Table 2).

4.2 Solution using Algorithm 2

Consider the numerical resolution of the problem (6) with \({\mathbf{f}}= (0, x^{2}y)\) using Algorithm 2.

Figure 2 shows, from top to bottom and left to right, the obtained values of the vorticity \(\mu_{N}\), the two components of the velocity \(({\boldsymbol{\varphi} }_{Nx}, {\boldsymbol{\varphi} }_{Ny})\) and the pressure \(p_{N}\), for \(N = 30\).

Figure 2
figure 2

The discrete solution \((\mu_{N}, {\boldsymbol{\varphi} }_{Nx}, {\boldsymbol{\varphi} }_{Ny},p_{N})\)

In Fig. 3 we present the vector field of the velocity corresponding to the data \({\mathbf{f}}= (0, 0)\), and a boundary condition g given by (see [8]),

$$ g(-1,y) = - \bigl(1-y^{2}\bigr),\qquad g(1,y) = \bigl(1-y^{2}\bigr),\qquad g(x,\pm1) = 0, $$

where \(N = 40\). We note that the vorticity \(\mu_{N}\) and pressure \(p_{N}\) are null, since we handle a Poiseuille linear flow.

Figure 3
figure 3

The vector field of the velocity for \({\mathbf{f}}= (0, 0)\) and g defined in (16)

5 Conclusion and future work

In this work, we show the efficiency of the global resolution compared to the Uzawa algorithm adapted to the resolution of the discrete problem issued from the spectral discretization of the vorticity, velocity and pressure formulation of the Navier–Stokes problem. We achieved a good convergence with the global resolution through the transformation of the matrix to a symmetric and positive defined one. As future work, we are looking at applying the global method to the discretization by the spectral element methods for handling more complex domains.

Availability of data and materials

Not Applicable.


  1. Bègue, C., Conca, C., Murat, F., Pironneau, O.: Les équations de Stokes et de Navier–Stokes avec des conditions aux limites sur la pression. In: Brezis, H., Lions, J.-L. (eds.) Nonlinear Partial Differential Equations and Their Applications. Collège de France Seminar, vol. IX, pp. 179–264. Longman, Harlow (1988)

    MATH  Google Scholar 

  2. Dubois, F.: Vorticity–velocity–pressure formulation for the Stokes problem. Math. Methods Appl. Sci. 25, 1091–1119 (2002)

    Article  MathSciNet  Google Scholar 

  3. Salmon, S.: Développement numérique de la formulation tourbillon–vitesse–pression pour le problème de stokes. PhD thesis, Université Pierre et Marie Curie, Paris, France (1999)

  4. Amara, M., Capatina-Papaghiuc, D., Chacon-Vera, E., Trujillo, D.: Vorticity–velocity–pressure formulation for Navier–Stokes equations. Comput. Vis. Sci. 6, 47–52 (2004)

    Article  MathSciNet  Google Scholar 

  5. Dubois, F., Salaün, M., Salmon, S.: Vorticity–velocity–pressure and stream function-vorticity formulations for the Stokes problem. J. Math. Pures Appl. 82, 1395–1451 (2003)

    Article  MathSciNet  Google Scholar 

  6. Amara, M.D., Chacon-Vera, E., Trujillo, D.: Stabilized finite element method for the Navier–Stokes equations, with non standard boundary conditions. J. Sci. Comput. 18, 4–9 (2005)

    Google Scholar 

  7. Azaïez, M., Bernardi, C., Chorfi, N.: Spectral discretization of the vorticity, velocity and pressure formulation of the Navier Stokes equations. Numer. Math. 104, 1–26 (2006)

    Article  MathSciNet  Google Scholar 

  8. Bernardi, C., Chorfi, N.: Spectral discretization of the vorticity, velocity and pressure formulation of the Stokes problem. SIAM J. Numer. Anal. 44, 826–850 (2006)

    Article  MathSciNet  Google Scholar 

  9. Walker, H.F.: Implementation of the gmres method using householder transformation. SIAM J. Sci. Stat. Comput. 9, 152–163 (1988)

    Article  MathSciNet  Google Scholar 

  10. Girault, V., Raviart, P.-A.: Finite Element Methods for Navier Stokes Equations, Theory and Algorithms. Springer, Berlin (1986)

    Book  Google Scholar 

  11. Temam, R.: Navier Stokes Equations. Theory and Numerical Analysis. Studies in Mathematics and Its Applications, vol. 2. North-Holland, Amsterdam (1977)

    MATH  Google Scholar 

  12. Bernardi, C., Hecht, F., Verfurth, R.: Finite element discretization of the three-dimensional Navier-Stokes equations with mixed boundary conditions. Math. Model. Numer. Anal. 3, 1185–1201 (2009)

    Article  MathSciNet  Google Scholar 

  13. Amrouche, C., Bernardi, C., Dauge, M., Girault, V.: Vector potentials in three-dimensional nonsmooth domains. Math. Methods Appl. Sci. 21, 823–864 (1998)

    Article  MathSciNet  Google Scholar 

  14. Nédélec, J.-C.: Mixed finite elements in \(\mathbb{R}^{3}\). Numer. Math. 35, 315–341 (1980)

    Article  MathSciNet  Google Scholar 

  15. Bernardi, C., Maday, Y.: Spectral Method. In: Ciarlet, P.G., Lions, J.-L. (eds.) Handbook of Numerical Analysis. North-Holland, Amsterdam (1997)

    Google Scholar 

  16. Bercovier, M., Engelman, M.: A finite element for the numerical solution of viscous incompressible flows. J. Comput. Phys. 30, 181–201 (1979)

    Article  MathSciNet  Google Scholar 

Download references


The authors would like to extend their sincere appreciation to the Deanship of Scientific Research at King Saud University for funding this Research group No (RG-1440-061).


Not applicable.

Author information

Authors and Affiliations



The authors declare that the study was realized in collaboration with equal responsibility. All authors read and approved the final manuscript.

Corresponding author

Correspondence to Henda Ouertani.

Ethics declarations

Competing interests

The authors declare that they have no competing interests.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Abdelwahed, M., Chorfi, N. & Ouertani, H. Enhanced algorithms for solving the spectral discretization of the vorticity–velocity–pressure formulation of the Navier–Stokes problem. Bound Value Probl 2021, 99 (2021).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: