Keywords

1 Introduction

It is well known that numerical formulations based on conservation variables for solving the compressible Euler equations are not suitable when the flow is in the incompressible limit, that is, when density variations are negligible [4, 7]. This difficulty is caused by the very different magnitude of the wave speeds present in the system. Obviously, this problem can be overcome by writing the incompressible form of the governing equations. However, in some situation it is important to work with compressible flow solver since the numerical simulations should ideally cover a wider range of flow regime, for example, in wind turbine applications.

One way to overcome the difficulties of the numerical methods for flow at low Mach numbers is to use local preconditioning techniques, whose goal is the uniformization of the characteristic propagation speeds of the system [3, 5, 7]. Local preconditioning or preconditioning mass matrix scheme consists of premultiplying the time derivatives by a properly preconditioned matrix, modifying the time-marching behavior of the equations without altering the steady state solutions [3, 7].

Besides the reduction of the stiffness of the system of equations, local preconditioning also improves accuracy at low speed and the convergence of the numerical formulation. However, the major drawback of these methodologies is their reduced capacity to perform robust computations in stagnation point regions difficulting their use in an industrial context [3]. To overcome these robustness issues, Colin et al. [3] have studied, in the context of finite volume method, a robust low speed preconditioning formulation for viscous flows, called WSCM (Weiss-Smith/Choi-Merkle) preconditioner. This preconditioner is based on the Weiss-Smith (WS) [9] and on the CM [2, 4] preconditioners. The change of a parameter in the WSCM method allows to recover the methods WS and CM.

Bento et al. [1] proposed a nonlinear multiscale finite element method, called NMV (Nonlinear Multiscale Viscosity) method, for solving compressible flows. The method presents good results for flows in transonic and supersonic regimes, but suffers severe deficiencies when the flow is in the incompressible limit, since it is based on conservation variables.

In this work we combine the NMV method with the Weiss-Smith/Choi-Merkle (WSCM) local preconditioner, presented in [3], for solving compressible flows at low Mach numbers. The numerical experiments show that this numerical methodology yields good results.

The remainder of this work is organized as follows. In Sect. 2 we present the governing equations, whereas in Sect. 3 we describe the variational multiscale formulation. The local preconditioner WSCM is briefly addressed in Sect. 4 and the numerical experiments are presented in Sect. 5. Finally, the conclusions are presented in Sect. 6.

2 Governing Equations

We consider the two-dimensional compressible Euler equations for an ideal gas write in conservative variables without source terms as,

$$\begin{aligned} \frac{\partial \mathbf {U}}{\partial t} + \nabla \cdot \mathbf {F}(\mathbf {U}) = \mathbf {0}, \ \ \text {in} \ \ \varOmega \times (0, T_f], \end{aligned}$$
(1)

where \(T_f\) is a positive real number, representing the final time and \(\varOmega \) is a domain in \(\mathbb {R}^2\), with boundary \(\varGamma \), \(\mathbf {U} \in \mathbb {R}^4\) is the vector of conservative variables, and \(\mathbf {F}(\mathbf {U}) \in \mathbb {R}^{4\times 2}\), is the Euler flux vector. Here,

$$\begin{aligned} \mathbf {U} = \left[ \begin{array}{c} U_1 \\ U_2 \\ U_3 \\ U_4\end{array}\right] = \rho \left[ \begin{array}{c} 1 \\ u \\ v \\ E \end{array}\right] , \end{aligned}$$
(2)

where \(\rho \) is the fluid density, \(\mathbf {u}=[u~~v]^T\) is the velocity vector, \(\rho E\) is the total energy, E is the total specific energy. Other important physical variables are the pressure p and the Mach number \(M=\frac{\Vert \mathbf {u}\Vert }{c}\), where \(c=\sqrt{\gamma \frac{p}{\rho }}\) is the speed of sound, with \(\gamma =\frac{c_p}{c_v}\) (\(\gamma >1\)) being the ratio of specific heats, \(c_p\) and \(c_v\) are the coefficients of specific heat at constant pressure and volume, respectively, and \(\Vert \cdot \Vert \) is the Euclidean norm. The system (1) is closed by the equation of state

$$\begin{aligned} p = (\gamma - 1)\left( \rho E - \frac{\rho }{2}\Vert \mathbf {u}\Vert ^2\right) . \end{aligned}$$
(3)

Alternatively, Eq. (1) can be rewritten as in the quasi-linear form:

$$\begin{aligned} \frac{\partial \mathbf {U}}{\partial t} + \mathbf {A_x}\frac{\partial \mathbf {U}}{\partial x} + \mathbf {A_y}\frac{\partial \mathbf {U}}{\partial y} = \mathbf {0}, \ \ \text {in} \ \ \varOmega \times (0, T_f], \end{aligned}$$
(4)

where \(\mathbf {A}_{x} = \frac{\partial \mathbf {F}_{x}}{\partial \mathbf {U}}\) and \(\mathbf {A}_{y} = \frac{\partial \mathbf {F}_{y}}{\partial \mathbf {U}}\) are the Jacobian matrices. Associated with Eq. (4) we have a proper set of boundary and initial conditions to complete the mathematical model,

$$\begin{aligned} \mathbf {B}\mathbf {U}= & {} \mathbf {Z}, \quad \text { on } \varGamma \times (0,T_f], \end{aligned}$$
(5)
$$\begin{aligned} \mathbf {U}(\mathbf {x},t)= & {} \mathbf {U}_0, \end{aligned}$$
(6)

where \(\mathbf {B}\) denotes a general boundary operator, and \(\mathbf {Z}\) and \(\mathbf {U}_0\) are given functions.

3 The Variational Multiscale Formulation

To define the multiscale finite element method for Euler equations, we consider a triangular partition \(\mathcal {T}_h\) of the domain \(\varOmega \) into \(n_{el}\) elements, where \( \varOmega = \bigcup _{e=1}^{n_{el}} \varOmega _e \quad \text {with} \quad \varOmega _i \cap \varOmega _j = \emptyset , \quad \text {for} \quad i,j = 1, 2, \dots , n_{el} \quad \text {and} \quad i \ne j.\) The function space \(\mathcal {V}_{Zhb}\) is defined as the direct sum,

$$\begin{aligned} \mathcal {V}_{Zhb} = \mathcal {V}_{Zh} \oplus \mathcal {V}_b, \end{aligned}$$
(7)

where the subspaces \({\mathcal {V}}_{Zh}\) and \({\mathcal {V}}_{b}\) are given by

$$\begin{aligned} {\mathcal {V}}_{Zh}= & {} \{ \mathbf {U}_{h} \in [{H}^1(\varOmega )]^{4}; \quad \mathbf {U}_{h} |_{\varOmega _{e}} \in [\mathbb {P}_1(\varOmega _{e})]^{4}, \mathbf {B} \mathbf {U}_{h} = \mathbf {Z} \ \ \text {on} \ \ \varGamma _D \},\end{aligned}$$
(8)
$$\begin{aligned} {\mathcal {V}}_{b}= & {} \{\mathbf {U}_{b} \in [H_0^1(\varOmega )]^{4}; \quad \mathbf {U}_{b}|_{\varOmega _e} \in [span(\psi _b)]^{4}, \quad \forall ~ \varOmega _e \in \mathcal {T}_h \}, \end{aligned}$$
(9)

with \(\mathbb {P}_1(\varOmega _e)\) representing the set of first order polynomials in \(\varOmega _e\), \(H^1(\varOmega )\) denotes the Sobolev space of square-integrable functions whose first derivatives are also square-integrable, \(H_0^1(\varOmega )\) is a space of function in \(H^1(\varOmega )\) that vanish at the boundary of \(\varOmega \), and \(\psi _b\) is a bubble function. The space \(\mathcal {V}_{Zh}\) represents the resolved (coarse) scale space whereas \(\mathcal {V}_b\) stands for the subgrid (fine) scale space.

The Nonlinear Multiscale Viscosity (NMV) method, presented in [1], adds a nonlinear artificial viscosity operator to the Galerkin formulation, acting isotropically in all scales of the discretization. The amount of artificial viscosity is given according to the YZ\(\beta \) shock-capturing viscosity method [8]. The NMV method for the Euler equation consists of finding \( \mathbf {U}_{hb} = \mathbf {U}_h + \mathbf {U}_{b} \in \mathcal {V}_{Zhb}\) with \( \mathbf {U}_h \in \mathcal {V}_{Zh}\), \( \mathbf {U}_{b} \in \mathcal {V}_{b}\) such that

$$\begin{aligned} \int _{\varOmega } \mathbf {W}_{hb} \cdot \Big ( \frac{\partial \mathbf {U}_{hb}}{\partial t} + \mathbf {A}_x^h \frac{\partial \mathbf {U}_{hb}}{\partial x} + \mathbf {A}_y^h \frac{\partial \mathbf {U}_{hb}}{\partial y} \Big ) d\varOmega+ & {} \nonumber \\ \sum _{e = 1}^{n_{el}} \int _{\varOmega _e} \delta _h(\mathbf {U}_h) \Big ( \frac{\partial \mathbf {W}_{hb}}{\partial x} \cdot \frac{\partial \mathbf {U}_{hb}}{\partial x} + \frac{\partial \mathbf {W}_{hb}}{\partial y} \cdot \frac{\partial \mathbf {U}_{hb}}{\partial y} \Big ) d\varOmega= & {} \mathbf {0}, \forall ~ \mathbf {W}_{hb} \in \mathcal {V}_{0hb}, \end{aligned}$$
(10)

where \(\mathbf {W}_{hb} = \mathbf {W}_h + \mathbf {W}_{b} \in \mathcal {V}_{0hb}\) with \( \mathbf {W}_h\in \mathcal {V}_{0h}\), \( \mathbf {W}_{b} \in \mathcal {V}_{b}\) and the amount of artificial viscosity, \(\delta _h(\mathbf {U}_h)\), is calculated on the element-level by using the YZ\(\beta \) shock-capturing viscosity parameter [8],

$$\begin{aligned} \delta _h(\mathbf {U}_h) = \Vert \mathbf {Y}^{-1}R(\mathbf {U}_h) \Vert \left( \sum _{i=1}^{2}\left| \left| \mathbf {Y}^{-1}\frac{\partial \mathbf {U}_h}{\partial x_i} \right| \right| ^2 \right) ^{\frac{\beta }{2}-1}\Vert \mathbf {Y}^{-1}\mathbf {U}_h\Vert ^{1-\beta }h^{\beta }, \end{aligned}$$
(11)

where

$$\begin{aligned} R(\mathbf {U}_h) = \frac{\partial \mathbf {U}_h}{\partial t} + \mathbf {A}_x^h \frac{\partial \mathbf {U}_h}{\partial x} + \mathbf {A}_y^h \frac{\partial \mathbf {U}_h}{\partial y} \end{aligned}$$
(12)

is the residue of the problem on \(\varOmega _e\), \( \mathbf {Y} \) is a diagonal matrix constructed from the reference values of the components of \( \mathbf {U} \), h is the local length scale defined as follow \(h = \left( \sum _{a=1}^3|\mathbf {j}\cdot \nabla N_a|\right) ^{-1}\), \( \mathbf {j} \) is a unit vector defined as \(\mathbf {j}=\nabla \rho /\Vert \nabla \rho \Vert \) and \(N_a\) is the interpolation function associated with node a. The local length h is defined automatically taking into account the directions of high gradients and spatial discretization domain.

The numerical solution is defined considering iterative procedures for space and time. Given \(\mathbf {U}_{hb}^{i}\) at iteration i, the nonlinear iterative procedure finds \(\mathbf {U}_{hb}^{i+1}\) satisfying the formulation (10), where YZ\(\beta \) shock-capturing viscosity parameter is function of the iteration i (\(\delta _h(\mathbf {U}_h^{i})\)). The numerical solution is advanced in time by the predictor-corrector algorithm given in [6] and adapted for the multiscale framework in [1] for the Euler equations.

4 Local Preconditioner for the Euler Equations

Local preconditioning or preconditioning mass matrix scheme consists of premultiplying the time derivatives by a properly matrix in order to uniform the eigenvalues, smoothing the discrepancy of the different time scales. It is applied to the set of continuous equations before any discretization is done. Denoting by \(\mathbf {P}\) the (nonsingular) preconditioning matrix, then the system of Eq. (4) after the preconditioning process reads

$$\begin{aligned} \mathbf {P}^{-1}\frac{\partial \mathbf {U}}{\partial t} + \mathbf {A_x}\frac{\partial \mathbf {U}}{\partial x} + \mathbf {A_y}\frac{\partial \mathbf {U}}{\partial y} = \mathbf {0} \end{aligned}$$

or

$$\begin{aligned} \frac{\partial \mathbf {U}}{\partial t} + \mathbf {P}\mathbf {A_x}\frac{\partial \mathbf {U}}{\partial x} + \mathbf {P} \mathbf {A_y}\frac{\partial \mathbf {U}}{\partial y} = \mathbf {0}, \ \ \text {in} \ \ \varOmega \times (0, t_f]. \end{aligned}$$
(13)

The solutions of problems (4) and (13) evolve in time differently, but converge in time to the same steady-state solution, since the time derivatives go to zero.

In this work we study a combination of the Weiss-Smith (WS) [9] and Choi-Merkle (CM) [2, 4] local preconditioners, presented in [3] with the name WSCM method. An explicit expression for the WSCM preconditioner in conservative variables [3] is

$$\begin{aligned} \mathbf {P} = \mathbf {I} + \alpha \begin{bmatrix} \theta&-u&-v&1 \\ u \theta&-uu&-u v&u \\ v \theta&-u v&-v v&v \\ H \theta&-u H&-v H&H \end{bmatrix}, \end{aligned}$$
(14)

where

$$\begin{aligned} \alpha = \frac{\gamma - 1}{c^2}\Big [ (1 - \delta )\epsilon - 1 \Big ], \qquad \theta = \frac{1}{2}\Vert \varvec{u}\Vert ^2 + \delta \frac{\epsilon c^2}{(\gamma - 1)[ (1 - \delta )\epsilon - 1 ]} \end{aligned}$$
(15)

and H is the total enthalpy. For Euler equations, the preconditioning parameter \(\epsilon \) is given by

$$\begin{aligned} \epsilon = \min \Big \{ 1,\max \Big \{ M_{lim}^2, M^2, \sigma _{pgr} \frac{|\varDelta p|}{\rho c^2}\Big \} \Big \}, \end{aligned}$$

where \( M^2_{lim} = 10^{-5}\), \(\sigma _{pgr} = 2\). We define the maximum pressure variation (\(\varDelta p\)) on the triangle as

$$\begin{aligned} |\varDelta p| = \max \{|p_1-p_2|,|p_1-p_3|,|p_2-p_3|\}, \end{aligned}$$
(16)

where \(p_i\) is the pressure on the node \(i=1,2,3\). The value of the parameter \(\delta \in [0, 1]\) can define different preconditioners:

$$\begin{aligned} \delta = 0\rightarrow & {} \text {Weiss-Smith (WS) preconditioner}; \\ \delta = 1\rightarrow & {} \text {Choi-Merkle (CM) preconditioner}; \\ \delta \in (0, 1)\rightarrow & {} \text {Weiss-Smith/Choi-Merkle (WSCM) preconditioner}. \end{aligned}$$

5 Numerical Experiments

The flow over an airfoil is an attractive problem to analyze the numerical instability arising from low Mach number values, that occurs in several flow regimes modeled by Euler equations. This section shows the results of a flow passing through a NACA 0012 airfoil at an angle of attack of \(0^\circ \) and varying the inflow Mach number, M = 0.001, 0.01, 0.1, and 0.3.

The experiment was executed taking into account an unstructured triangular mesh of 5,606 elements and 2,886 nodes, in the computational domain given by a circle centered at the (0, 0) with radius 15, as shown in Fig. 1. Aiming to avoid numerical instabilities of reflecting waves, we consider a prudent distance from the airfoil to the inflow and outflow boundaries [5]. The inflow data is set up by

$$\begin{aligned} {\textit{inflow}} \;\; {\left\{ \begin{array}{ll} \rho &{}= \; 1.0; \\ u &{}= \;1.0; \\ v &{}= \;0.0; \\ \mathsf {T} &{}= \;1.0, \end{array}\right. } \end{aligned}$$
(17)

where \(\mathsf {T}\) is the temperature.

Fig. 1.
figure 1

Unstructured triangular mesh of 5,606 elements and 2,886 nodes.

The numerical solution is advanced in time by the predictor-corrector algorithm adapted for the multiscale framework in [1] for the Euler equations. A restarted version of the GMRES solver is used to find the solution of the linearized system in each nonlinear and time iterations. We set 30 vectors to Krylov subspace base and \(10^{-5}\) to solver tolerance. The time-step size is \(10^{-3}\) and the simulation runs until \(t_f=20.0\) (20,000 steps), and 3 fixed nonlinear iterations. In this example, we evaluate the (density-based) NMV method [1] combined with the WSCM (Weiss-Smith/Choi-Merkle) local preconditioner for solving this benchmark problem. We vary the parameter \(\delta \in \{0, 0.5, 1\}\) in order to recover the methods WS and CM. In the experiments we call NMV(WS), NMV(CM), and NMV(WSCM), for \(\delta = 0\), \(\delta = 1\) and \(\delta = 0.5\), respectively, and by NMV(NP) the non-preconditioned case. The tests are carried out with the intention of analyzing accuracy issues, specially in the incompressibility limit. Since the flow at low speed presents an incompressible behavior, i.e., the density variation is almost negligible, we use the pressure contour to analyze this experiment.

Fig. 2.
figure 2figure 2

NACA 0012: Pressure contours for \(M=0.001\) at the inflow. In this experiment are plotted the contour of \(p - p_{\text {ref}}\) with \(p_{\text {ref}} = 714,279\), because the variation of pressure is very small.

Fig. 3.
figure 3figure 3

NACA 0012: Pressure contours for \(M=0.01\) at the inflow.

Fig. 4.
figure 4figure 4

NACA 0012: Pressure contours for \(M=0.1\) at the inflow.

Fig. 5.
figure 5figure 5

NACA 0012: Pressure contours for \(M=0.3\) at the inflow.

Figures 2, 3, 4, and 5 show the pressure contours for inflow Mach numbers, \(M=0.001\), 0.01, 0.1, and 0.3, respectively. As expected, the numerical solutions without local preconditioning, when the low Mach number approaches to zero, are completely oscillatory, as shown in Fig. 2(a) for \(M = 0.001\), and Fig. 3(a) for \(M = 0.01\).

On the other hand, the preconditioned formulation presents better results for this problem, as shown in Fig. 2(b)–(d), 3(b)–(d), 4(b)–(d), and 5(b)–(d). The three local preconditioners evaluated present good results for all inflow low Mach numbers simulated, but the WSCM preconditioner presented a slightly better solution in the transition regime, i.e., when \(M=0.3\), as we can see in Fig. 5(b)–(d).

6 Conclusions

We applied the NMV method coupled with the Weiss-Smith (WS), Choi-Merkle (CM), and Weiss-Smith/Choi-Merkle (WSCM) local preconditioners for solving the NACA 0012 airfoil problem at low Mach numbers. We simulated the flow over the NACA 0012 airfoil under the following regimes of inflow Mach numbers: 0.001; 0.01; 0.1; 0.3. The solutions obtained with the NMV without local preconditioning are completely oscillatory in the low Mach number limit (e.g. for \(M=0.001, 0.01\)), since methods based on density variables fail in this case. On the other hand, our numerical methodology combined with local preconditioning exhibited promising results to this problem.

The study of other local preconditioning techniques and the extension of this methodology to compressible Navier-Stokes equations will be addressed in a further work.