9.5.1 Derivation of Preconditioned Equations 预条件方程的推导[cfd-9-5-1]

我们以一维欧拉方程为例来演示预条件。它们可以写成微分形式en

We demonstrate preconditioning with the aid of 1-D Euler equations. They can be written in differential form as

\[\frac{\partial\vec{W}}{\partial t} + \frac{\partial\vec{F}_c}{\partial x} = 0\,, \tag{9.41}\]

其中\(\vec{W} = [\rho,\ \rho u,\ \rho E]^T\)为守恒变量向量,\(\vec{F}_c\)表示对流通量。为了考察预条件对谱半径(对时间步长的计算很重要)以及对流通量雅可比矩阵(对上风耗散很重要)的影响,把欧拉方程(9.41)改写为准线性形式en

where \(\vec{W} = [\rho,\ \rho u,\ \rho E]^T\) is the vector of conservative variables and \(\vec{F}_c\) denotes the convective fluxes. In order to see the effect of preconditioning on the spectral radii (important for the computation of the time step) and on the convective flux Jacobian (important for upwind dissipation), the Euler equations (9.41) are rewritten in the quasilinear form

\[\frac{\partial\vec{W}}{\partial t} + \bar{A}_c\frac{\partial\vec{W}}{\partial x} = 0 \tag{9.42}\]

其中\(\bar{A}_c = \partial\vec{F}_c/\partial\vec{W}\)为对流通量雅可比矩阵(参见附录A.2)。en

with \(\bar{A}_c = \partial\vec{F}_c/\partial\vec{W}\) being the convective flux Jacobian (cf. Appendix A.2).

低马赫数预条件背后的想法是变换控制方程(9.41),使新方程在低马赫数(即低于\(M \approx 0.2\))下具有更有利的性质。首先,我们希望均衡对流特征值,以约束条件数(见式(9.40)),从而消除\(M \rightarrow 0\)时的刚性。其次,我们希望改变数值耗散的缩放方式,以提高精度。最后,我们希望像压力基格式中那样把压力和速度耦合起来。这一变换用另一组流动变量取代守恒变量\(\vec{W}\)。可以有多种选择[90],但最常用的是压力、速度分量和温度。把式(9.42)中的准线性形式变换到新变量\(\vec{W}_p\),我们得到en

The idea behind low Mach-number preconditioning is to transform the governing equations (9.41) such that the new equations have more favourable properties at low Mach numbers (i.e. below \(M \approx 0.2\)). First of all, we want to equalise the convective eigenvalues in order to bound the condition number (see Eq. (9.40)) and thus to remove the stiffness at \(M \rightarrow 0\). We further want to change the scaling of the numerical dissipation in order to improve the accuracy. Finally, we want to couple the pressure and the velocity as it is done in the pressure-based schemes. The transformation replaces the conservative variables \(\vec{W}\) by a different set of flow variables. Various choices are possible [90], but the most often used are the pressure, the velocity components and the temperature. Transforming the quasilinear form in Eq. (9.42) into the new variables \(\vec{W}_p\), we obtain

\[\bar{P}\frac{\partial\vec{W}_p}{\partial t} + \bar{A}_c\bar{P}\frac{\partial\vec{W}_p}{\partial x} = 0\,. \tag{9.43}\]

在上面的式(9.43)中,\(\bar{P} = \partial\vec{W}/\partial\vec{W}_p\)表示从新变量\(\vec{W}_p\)到守恒变量\(\vec{W}\)的变换矩阵。引入新的通量雅可比矩阵en

In the above Eq. (9.43), \(\bar{P} = \partial\vec{W}/\partial\vec{W}_p\) represents the transformation matrix from the new variables \(\vec{W}_p\) into the conservative variables \(\vec{W}\). Introducing a new flux Jacobian

\[\bar{A}_{c,p} = \bar{A}_c\bar{P} = \frac{\partial\vec{F}_c}{\partial\vec{W}_p}\,, \tag{9.44}\]

我们可以把式(9.43)写成en

we can write Eq. (9.43) as

\[\bar{P}\frac{\partial\vec{W}_p}{\partial t} + \bar{A}_{c,p}\frac{\partial\vec{W}_p}{\partial x} = 0\,. \tag{9.45}\]

如果现在把时间导数前面的\(\bar{P}\)替换为适当的预条件矩阵\(\bar{\Gamma}\)(稍后具体给出),预条件后的式(9.45)成为en

If we now replace \(\bar{P}\) in front of the time derivative by a suitable preconditioning matrix \(\bar{\Gamma}\) (to be specified later), the preconditioned Eq. (9.45) reads

\[\bar{\Gamma}\frac{\partial\vec{W}_p}{\partial t} + \bar{A}_{c,p}\frac{\partial\vec{W}_p}{\partial x} = 0\,, \tag{9.46}\]

或等价地en

or equivalently

\[\frac{\partial\vec{W}_p}{\partial t} + \bar{\Gamma}^{-1}\bar{A}_{c,p}\frac{\partial\vec{W}_p}{\partial x} = 0\,. \tag{9.47}\]

现在可以用任何标准的空间和时间离散格式在新变量\(\vec{W}_p\)下求解式(9.47)。另一种可能的做法是把预条件方程(9.47)变换回到守恒变量\(\vec{W}\)。我们有en

It is now possible to solve Eq. (9.47) in the new variables \(\vec{W}_p\) using any standard spatial and temporal discretisation scheme. Another possibility is to transform the preconditioned equations (9.47) back into the conservative variables \(\vec{W}\). We have

\[\bar{P}^{-1}\frac{\partial\vec{W}}{\partial t} + \bar{\Gamma}^{-1}\bar{A}_{c,p}\bar{P}^{-1}\frac{\partial\vec{W}}{\partial x} = 0\,, \tag{9.48}\]

其中\(\bar{P}^{-1} = \partial\vec{W}_p/\partial\vec{W}\)是从守恒变量出发的变换矩阵。为方便起见,可以把式(9.48)写成en

where \(\bar{P}^{-1} = \partial\vec{W}_p/\partial\vec{W}\) is the transformation matrix from the conservative variables. Equation (9.48) can be for convenience written as

\[\frac{\partial\vec{W}}{\partial t} + \bar{P}\bar{\Gamma}^{-1}\bar{A}_{c,p}\bar{P}^{-1}\frac{\partial\vec{W}}{\partial x} = 0\,, \tag{9.49}\]

或者en

or

\[\frac{\partial\vec{W}}{\partial t} + \bar{P}\bar{\Gamma}^{-1}\bar{A}_c\frac{\partial\vec{W}}{\partial x} = 0\,. \tag{9.50}\]

式(9.49)和(9.50)中的项\(\bar{P}\bar{\Gamma}^{-1}\)称为守恒变量预条件矩阵(conservative variable preconditioning matrix)。en

The term \(\bar{P}\bar{\Gamma}^{-1}\) in Eq. (9.49) and (9.50) is called the conservative variable preconditioning matrix.

现在可以看到,守恒变量下的预条件方程(9.49)、(9.50)具有如下特点:

  • 空间导数都乘以\(\bar{P}\bar{\Gamma}^{-1}\)。
  • 非定常方程与式(9.42)的原始形式不同,因此解不再具有时间精度。
  • 定常解(即\(\partial\vec{W}/\partial t = 0\))保持不变。
  • 预条件系统的特征值和特征向量对应于矩阵\(\bar{P}\bar{\Gamma}^{-1}\bar{A}_c = \bar{P}\bar{\Gamma}^{-1}\bar{A}_{c,p}\bar{P}^{-1}\)的特征值和特征向量,因而与式(9.41)中原系统的不同。
en

We can see now that the preconditioned equations in the conservative variables (9.49), (9.50) have the following features:

  • Spatial derivatives are multiplied by \(\bar{P}\bar{\Gamma}^{-1}\).
  • Unsteady equations are different from the original form in Eq. (9.42) and hence the solution is no longer time accurate.
  • Stationary solution (i.e. \(\partial\vec{W}/\partial t = 0\)) remains unchanged.
  • Eigenvalues and eigenvectors of the preconditioned system correspond to those of the matrix \(\bar{P}\bar{\Gamma}^{-1}\bar{A}_c = \bar{P}\bar{\Gamma}^{-1}\bar{A}_{c,p}\bar{P}^{-1}\) and hence are different from those of the original system in Eq. (9.41).

现在的主要任务是找到一组合适的变量\(\vec{W}_p\)和矩阵\(\bar{\Gamma}\),使预条件系统(9.50)的对流特征值尽可能接近地被均衡。但同样重要的是,这些矩阵在\(M \rightarrow 0\)时必须仍有定义。此外,最好预条件系统在较高马赫数下能退化为原系统。en

The main task is now to find a suitable set of variables \(\vec{W}_p\) and the matrix \(\bar{\Gamma}\) such that the convective eigenvalues of the preconditioned system (9.50) are equalised as close as possible. But it is also important that the matrices remain defined for \(M \rightarrow 0\). Furthermore, it is desirable that the preconditioned system converts into the original system for higher Mach numbers.

在9.5.3小节给出变换矩阵和预条件矩阵之前,我们先讨论低马赫数预条件在流场解算器中的实现。en

Before we present the transformation and preconditioning matrices in Subsection 9.5.3, we shall discuss the implementation of the low Mach number preconditioning in a flow solver.