chapter. Structured Finite Volume Schemes 第4章 结构网格有限体积格式[cfd-0005]

正如我们在第3章引言中已经提到的,求解欧拉方程与Navier-Stokes方程的绝大多数数值格式都采用线法(method of lines),即在空间与时间上分别进行离散。这样做的结果是,我们可以按待解问题的需要,对空间导数和时间导数采用不同精度的数值近似。因此,这一做法带来了很大的灵活性。出于这个原因,本书将采用线法。至于基于空间与时间耦合离散的数值方法——如Lax-Wendroff格式族(例如显式MacCormack预估-校正格式、隐式Lerat格式等)——的详细讨论,可参阅文献[1]等。en

As we already mentioned in the introduction to Chapter 3, the overwhelming number of numerical schemes for the solution of the Euler- and the Navier-Stokes equations employs the method of lines, i.e., a separate discretisation in space and in time. By consequence, it allows us to use numerical approximations of different accuracy for the spatial and temporal derivatives, as it may be required by the problem to be solved. Thus, we gain a lot of flexibility by this approach. For this reason, we shall follow the method of lines here. A detailed discussion of numerical methods based on coupled space and time discretisation, like the Lax-Wendroff family of schemes (e.g., explicit MacCormack predictor-corrector scheme, implicit Lerat's scheme, etc.), may be found, e.g., in Ref. [1].

一般的结构网格有限体积格式自然地建立在守恒定律的基础上,守恒定律由Navier-Stokes方程(2.19)或欧拉方程(2.45)表达。在预处理阶段,物理空间被划分成许多网格单元——二维为四边形,三维为六面体。网格生成须做到:

  • 计算域被网格完全覆盖;
  • 网格单元之间不留空隙;
  • 网格单元互不重叠。
en

A general, structured, finite volume scheme is naturally based on the conservation laws, which are expressed by the Navier-Stokes (2.19) or the Euler (2.45) equations. In a pre-processing step, the physical space is subdivided into a number of grid cells - quadrilaterals in 2D, hexahedra in 3D. The grid generation is done in such a way that:

  • the domain is completely covered by the grid,
  • there is no free space left between the grid cells,
  • the grid cells do not overlap each other.

由此得到的结构网格由网格点(即网格单元的角点)的坐标\(x, y, z\)以及计算空间中的索引(见图3.2)——我们记作\(i, j, k\)——唯一描述。在网格的基础上定义控制体,以便计算对流通量、黏性通量以及源项的积分。为简单起见,设某一控制体不随时间变化(否则请参阅附录A.5)。于是,守恒变量\(\vec{W}\)的时间导数可以写成en

The resulting structured grid is uniquely described by the coordinates \(x, y, z\) of the grid points (corners of the grid cells) and indices in the computational space (see Fig. 3.2), let us call them \(i, j, k\). Based on the grid, control volumes are defined in order to evaluate the integrals of the convective and viscous fluxes as well as of the source term. For simplicity, let us suppose that a particular control volume does not change in time (otherwise please refer to Appendix A.5). Then, the time derivative of the conservative variables \(\vec{W}\) can be cast in the form

\[\frac{\partial}{\partial t}\int_{\Omega}\vec{W}\,d\Omega = \Omega\,\frac{\partial\vec{W}}{\partial t}\,. \tag{1}\]

据此,方程(2.19)变为en

Herewith, Eq. (2.19) becomes

\[\frac{\partial\vec{W}}{\partial t} = -\frac{1}{\Omega}\left[\oint_{\partial\Omega}\left(\vec{F}_c - \vec{F}_v\right)dS - \int_{\Omega}\vec{Q}\,d\Omega\right]. \tag{4.1}\]

方程(4.1)右端的面积分,用穿过控制体各面的通量之和来近似。这一近似称为空间离散(spatial discretisation)。通常假定通量沿各个面为常数,并在面的中点处取值。源项一般假定在控制体内部为常数。然而,当源项占主导地位时,建议把\(\vec{Q}\)取为相邻控制体上数值的加权和(参见[2]及其所引文献)。如果我们考虑如图4.1b所示的控制体\(\Omega_{I,J,K}\),则由方程(4.1)可得en

The surface integral on the right-hand side of Equation (4.1) is approximated by a sum of the fluxes crossing the faces of the control volume. This approximation is called spatial discretisation. It is usually supposed that the flux is constant along the individual face and that it is evaluated at the midpoint of the face. The source term is generally assumed to be constant inside the control volume. However, in cases where the source term becomes dominant, it is advisable to evaluate \(\vec{Q}\) as the weighted sum of values from the neighbouring control volumes (see [2] and the references cited therein). If we consider a particular volume \(\Omega_{I,J,K}\), as displayed in Fig. 4.1b, we obtain from Eq. (4.1)

\[\frac{d\vec{W}_{I,J,K}}{dt} = -\frac{1}{\Omega_{I,J,K}}\left[\sum_{m=1}^{N_F}\left(\vec{F}_c - \vec{F}_v\right)_m\,\Delta S_m - \left(\vec{Q}\,\Omega\right)_{I,J,K}\right]. \tag{4.2}\]

在上式中,大写字母索引\((I, J, K)\)指计算空间中的控制体(参见3.1节)。后面将会看到,控制体不一定与网格重合。此外,\(N_F\)表示控制体的面数(二维为\(N_F = 4\),三维为\(N_F = 6\))。变量\(\Delta S_m\)代表第\(m\)面的面积。方程(4.2)右端方括号中的项一般也称为残差(residual),这里记作\(\vec{R}_{I,J,K}\)。因此,方程(4.2)可以简写为en

In the above expression, the indices in capital letters \((I, J, K)\) reference the control volume in the computational space (cf. Section 3.1). As we shall see later, the control volume does not necessarily coincide with the grid. Furthermore, \(N_F\) denotes the number of control volume faces (which is \(N_F = 4\) in 2D and \(N_F = 6\) in 3D). The variable \(\Delta S_m\) stands for the area of the face \(m\). The term in square brackets on the right-hand side of Eq. (4.2) is also generally termed the residual. It is denoted here by \(\vec{R}_{I,J,K}\). Hence, we can abbreviate Eq. (4.2) as

\[\frac{d\vec{W}_{I,J,K}}{dt} = -\frac{1}{\Omega_{I,J,K}}\,\vec{R}_{I,J,K}\,. \tag{4.3}\]

对所有控制体\(\Omega_{I,J,K}\)写下方程(4.3)这样的关系式,便得到一个一阶常微分方程组。这些方程在时间上是双曲型的。这意味着,我们必须从已知的初始解出发在时间上向前推进。我们还必须为黏性通量和无黏通量提供适当的边界条件,如第8章所述。en

When we write down the relationship in Equation (4.3) for all control volumes \(\Omega_{I,J,K}\), we obtain a system of ordinary differential equations of first order. The equations are hyperbolic in time. That means, we have to advance them in time by starting from a known initial solution. We have also to provide suitable boundary conditions for the viscous and the inviscid fluxes, as they are described in Chapter 8.

在数值求解离散化控制方程组(4.3)时,第一个问题是我们如何定义控制体,以及相对于计算网格把流动变量布置在何处。在结构网格有限体积格式的框架下,有三种基本策略可供选择:

  • 单元中心格式(cell-centred scheme)——控制体与网格单元完全相同,流动变量布置在各单元的形心处(图4.3)。
  • 采用重叠(overlapping)控制体的单元顶点格式(cell-vertex scheme)——流动量被赋给网格点(顶点、节点),控制体定义为共享该顶点的所有网格单元的并集(二维4个单元,三维8个单元——见图4.4)。这意味着与两个相邻网格点相对应的控制体彼此重叠。
  • 采用对偶(dual)控制体的单元顶点格式——流动变量同样存储在网格顶点上,但此时控制体由共享相应顶点的各单元的中点连接而成(图4.5)。这样,每个网格点都被其对应的、互不重叠的控制体所包围。
en

When solving the system of discretised governing equations (4.3) numerically, the first question is how do we define the control volumes and where do we locate the flow variables with respect to the computational grid. In the framework of structured finite volume schemes, three basic strategies are available:

  • Cell-centred scheme - control volumes are identical with the grid cells and the flow variables are associated with their centroids (Fig. 4.3).
  • Cell-vertex scheme with overlapping control volumes - flow quantities are assigned to the grid points (vertices, nodes) and the control volumes are defined as the union of all grid cells having the respective vertex in common (4 cells in 2D, 8 cells in 3D - see Fig. 4.4). This means that the control volumes associated with two neighbouring grid points overlap each other.
  • Cell-vertex scheme with dual control volumes - flow variables are again stored at the grid vertices, but the control volumes are now created by connecting the midpoints of the cells having the respective vertex in common (Fig. 4.5). In this way, the grid points are surrounded by their corresponding control volumes which do not overlap.

图4.1:结构网格中控制体(Ω)及各面单位法向量(n⃗_m):(a)二维;(b)三维

图4.1:结构网格中控制体(\(\Omega\))及各面单位法向量(\(\vec{n}_m\)):(a)二维;(b)三维。图例:情形(a)中,单位法向量\(\vec{n}_2\)与\(\vec{n}_4\)对应计算空间中的\(i\)坐标(方向),\(\vec{n}_1\)与\(\vec{n}_3\)对应\(j\)坐标;四边形控制体\(\Omega_{I,J}\)的顶点标记为1—4,左下角为物理坐标轴\(x\)、\(y\),右上角为计算坐标\(i\)、\(j\)。情形(b)中,单位法向量\(\vec{n}_1\)与\(\vec{n}_2\)对应\(i\)坐标,\(\vec{n}_5\)与\(\vec{n}_6\)对应\(j\)坐标,\(\vec{n}_3\)与\(\vec{n}_4\)对应\(k\)坐标;六面体控制体\(\Omega_{I,J,K}\)的顶点标记为1—8,左下角为物理坐标轴\(x\)、\(y\)、\(z\),右下角为计算坐标\(i\)、\(j\)、\(k\)。

这三种方法学都将在4.2节中概述,该节专门讨论离散格式的一般概念。这里应当指出,采用重叠控制体的单元顶点格式如今已很少使用;不过,为完整起见仍在此予以介绍。en

All three methodologies will be outlined in Section 4.2, which is devoted to general concepts of discretisation schemes. It should be mentioned at this point that the cell-vertex scheme with overlapping control volumes is only seldom used today. Nevertheless, it is included here for completeness.

需要注意的是,在我们的情形中,所有流动变量——即守恒变量\((\rho, \rho u, \rho v, \rho w\)与\(\rho E)\)以及因变量\((p, T, c\)等)——都布置在同一位置:或在单元中心,或在网格节点。这一做法称为同位网格(co-located grid)方案。与此相反,许多较老的基于压力的方法(参见3.1节)采用所谓的交错网格(staggered grid)方案,把压力和速度分量存储在不同位置,以抑制中心差分所引起的解的振荡。en

It is important to notice that in our case all flow variables, i.e., the conservative variables \((\rho, \rho u, \rho v, \rho w\) and \(\rho E)\) and the dependent variables \((p, T, c\), etc.), are associated with the same location - with the cell centre or with the grid node. This approach is known as the co-located grid scheme. By contrast, many older pressure-based methods (cf. Section 3.1) use the so-called staggered grid scheme, where the pressure and the velocity components are stored at different locations in order to suppress oscillations of the solution which arise from central differencing.

在对流通量的计算方面存在很大的选择余地。基本问题在于:我们必须知道控制体全部\(N_F\)个面上的通量值,但流动变量在这些面上并不能直接得到。这意味着,我们必须把通量或流动变量插值到控制体的面上。原则上,这可以通过以下两种途径之一来实现:

  • 像中心(central)离散格式那样,采用算术平均;
  • 像上风(upwind)离散格式那样,采用某种偏置插值,以照顾流动方程的特征(方向)。
en

A wide range of choices exists with respect to the evaluation of the convective fluxes. The basic problem is that we have to know their values at all \(N_F\) faces of a control volume, but the flow variables are not directly available there. This means, we have to interpolate either the fluxes or the flow variables to the faces of the control volumes. In principle, this can be done in one of two ways:

  • by arithmetic averaging like in central discretisation schemes;
  • by some biased interpolation like in upwind discretisation schemes, which take care of the characteristics of the flow equations.

除描述之外,我们还将在4.3节讨论最常用的对流通量离散格式的精度、适用范围和计算量等问题。en

Besides the description, we shall treat aspects such as accuracy, range of applicability and numerical effort of the most widely used discretisation schemes for the convective fluxes in Section 4.3.

在控制体某个面上计算黏性通量的一种常用方法学,基于流动量的算术平均。与流动变量不同,方程(2.15)和(2.24)中速度梯度与温度梯度的计算更为复杂。我们将在4.4节给出相应的做法。en

A commonly applied methodology for the evaluation of the viscous fluxes at a face of the control volume is based on arithmetic averaging of the flow quantities. In contrast to the flow variables, the calculation of the velocity and the temperature gradients in Equations (2.15) and (2.24) is more involved. We shall present appropriate procedures in Section 4.4.

4.1 Geometrical Quantities of a Control Volume 控制体的几何量[cfd-4-1]

在转向离散方法学之前,先考察控制体\(\Omega_{I,J,K}\)的几何量的计算是有益的——即它的体积、单位法向量\(\vec{n}_m\)(定义为指向外侧)以及第\(m\)面的面积\(\Delta S_m\)。法向量与面面积也合称为控制体的度量(metrics)。下面我们针对一般的四边形(二维)或六面体(三维)控制体,分别讨论二维与三维情形。en

Before we turn our attention to the discretisation methodologies, it is instructive to consider the calculation of geometrical quantities of the control volume \(\Omega_{I,J,K}\) - its volume, the unit normal vector \(\vec{n}_m\) (defined as outward facing) and the area \(\Delta S_m\) of a face \(m\). The normal vector and the face area are also denoted as the metrics of the control volume. In the following, we shall consider the 2-D and the 3-D case separately for a general quadrilateral or hexahedral control volume, respectively.

4.1.1 Two-Dimensional Case 二维情形[cfd-4-1-1]

一般地,我们把平面内的流动看作三维问题的一个特例,其中解关于某一坐标方向(例如\(z\)方向)对称。由于对称性,也为了使体积、压力等物理量具有正确的单位,我们把所有网格单元和控制体的深度设为常数\(b\)。于是,在二维中,控制体的体积等于其面积与深度\(b\)的乘积。四边形的面积可以用Gauss公式精确计算。因此,对于如图4.1a所示的控制体,经过一些代数运算可得en

In general, we consider flow in a plane as a special case of a 3-D problem, where the solution is symmetric with respect to one coordinate direction (e.g., to the \(z\)-direction). Because of the symmetry and in order to obtain correct physical units for volume, pressure, etc., we set the depth of all grid cells and control volumes equal to a constant value \(b\). The volume of a control volume results then in two dimensions from the product of its area with the depth \(b\). The area of a quadrilateral can be exactly calculated by the formula of Gauss. Hence, for a control volume like that displayed in Fig. 4.1a, we get after some algebra

\[\Omega_{I,J} = \frac{b}{2}\left[(x_1 - x_3)(y_2 - y_4) + (x_4 - x_2)(y_1 - y_3)\right]. \tag{4.4}\]

上式中,我们假定控制体位于\(x\)–\(y\)平面内,且\(z\)坐标是对称轴。由于深度\(b\)是任意的,为方便起见可取\(b = 1\)。在二维中,控制体的面由直线段构成,因此单位法向量沿面为常数。当我们按照方程(4.2)的近似对通量积分时,需要计算面的面积\(\Delta S\)与相应单位法向量\(\vec{n}\)的乘积——即面向量(face vector)\(\vec{S}\)en

In the above, we have assumed that the control volume is located in the \(x\)–\(y\)-plane and that the \(z\)-coordinate is the symmetry axis. Since the depth \(b\) is arbitrary, we may set \(b = 1\) for convenience. In two dimensions, the faces of a control volume are given by straight lines and therefore the unit normal vector is constant along them. When we integrate the fluxes according to the approximation of Eq. (4.2), we have to evaluate the product of the area of a face \(\Delta S\) and the corresponding unit normal vector \(\vec{n}\) - the face vector \(\vec{S}\)

\[\vec{S}_m = \begin{bmatrix} S_{x,m} \\ S_{y,m} \end{bmatrix} = \vec{n}_m\,\Delta S_m\,. \tag{4.5}\]

由于对称性,面向量(以及单位法向量)的\(z\)分量为零,因此从表达式中略去。图4.1a中控制体的面向量由以下关系式给出en

Because of the symmetry, the \(z\)-component of the face vectors (and of the unit normal vector) is zero. It is therefore dropped from the expressions. The face vectors of the control volume from Fig. 4.1a are given by the relations

\[\begin{aligned} \vec{S}_1 &= b\begin{bmatrix} y_2 - y_1 \\ x_1 - x_2 \end{bmatrix}, &\quad \vec{S}_2 &= b\begin{bmatrix} y_3 - y_2 \\ x_2 - x_3 \end{bmatrix}, \\ \vec{S}_3 &= b\begin{bmatrix} y_4 - y_3 \\ x_3 - x_4 \end{bmatrix}, &\quad \vec{S}_4 &= b\begin{bmatrix} y_1 - y_4 \\ x_4 - x_1 \end{bmatrix}. \end{aligned} \tag{4.6}\]

于是,第\(m\)面上的单位法向量由方程(4.5)得到en

The unit normal vector at face \(m\) is then obtained from Eq. (4.5) as

\[\vec{n}_m = \frac{\vec{S}_m}{\Delta S_m} \tag{4.7}\]

其中en

with

\[\Delta S_m = |\vec{S}_m| = \sqrt{S_{x,m}^2 + S_{y,m}^2}\,. \tag{5}\]

实际计算中,对每个控制体\(\Omega_{I,J}\)只计算并存储面向量\(\vec{S}_1\)与\(\vec{S}_4\)。面向量\(\vec{S}_2\)与\(\vec{S}_3\)则(经反号使其指向外侧)取自相应的相邻控制体,以节省内存并减少点操作次数。en

In practice, only the face vectors \(\vec{S}_1\) and \(\vec{S}_4\) are computed and stored for each control volume \(\Omega_{I,J}\). The face vectors \(\vec{S}_2\) as well as \(\vec{S}_3\) are taken (with reversed signs to become outward facing) from the appropriate neighbouring control volumes in order to save memory and to reduce the number of point operations.

4.1.2 Three-Dimensional Case 三维情形[cfd-4-1-2]

与前述二维情形不同,在三维中,面向量与体积的计算存在一些困难。主要原因在于:一般情形下,控制体一个面的四个顶点可能不共面。此时,法向量在面上不再为常数(图4.2)。en

As opposed to the previous 2-D case, the calculation of face vectors and volumes poses some problems in three dimensions. The main reason for this is that, in general, the four vertices of the face of a control volume may not lie in a plane. Then, the normal vector is no longer constant on the face (Fig. 4.2). In

图4.2:三维中控制体一个面上法向量变化的情形

图4.2:三维中控制体一个面上法向量变化的情形。图例:阴影四边形为控制体的一个面;由于其四个顶点不共面,面上的法向量(图中\(\vec{n}_1\)、\(\vec{n}_2\))随位置变化,不再是常向量。

为了克服这一困难,我们可以把控制体的全部六个面各自分解成两个或多个三角形,而体积本身则由四面体拼成。以适当方式进行这种细分,将得到一个在任意网格上至少一阶精度的离散格式[3]。当然,数值代价会显著增加,因为通量必须对每个部分三角形分别积分,点操作次数至少加倍。然而,文献[3]、[4]表明,对于相当光滑、控制体面接近平行四边形的网格,分解成三角形并不能明显提高解的精度。因此,在下面的讨论中,我们将对四边形面采用一种简化的处理方式,它基于平均法向量(averaged normal vector)。en

order to overcome this difficulty, we could decompose all six faces of the control volume into two or more triangles each. The volume itself could then be built of tetrahedra. Performing this subdivision in an appropriate manner would lead to a discretisation scheme which is at least first-order accurate on arbitrary grids [3]. Of course, the numerical effort would be increased substantially, because the fluxes would have to be integrated over each partial triangle separately. Hence, the number of point operations would be at least doubled. However, in [3], [4] it is shown that for reasonably smooth grids, where the control volume faces approach parallelograms, the decomposition into triangles does not noticeably improve the solution accuracy. Therefore, we shall employ a simplified treatment of the quadrilateral faces in the following considerations, which is based on an averaged normal vector.

六面体控制体(如图4.1b所示)的面向量\(\vec{S}\),用与二维中计算四边形面积相同的Gauss公式来计算最为方便。例如,对于面\(m = 1\)(图4.1b中的点1、5、8和4),先定义如下差分en

A face vector \(\vec{S}\) of an hexahedral control volume, like that rendered in Fig. 4.1b, is most conveniently computed using the same Gauss's formula as employed in 2D for the area of a quadrilateral. Thus, e.g., for the face \(m = 1\) (points 1, 5, 8 and 4 in Fig. 4.1b) we first define the differences

\[\begin{aligned} \Delta x_A &= x_8 - x_1, &\quad \Delta x_B &= x_5 - x_4, \\ \Delta y_A &= y_8 - y_1, &\quad \Delta y_B &= y_5 - y_4, \\ \Delta z_A &= z_8 - z_1, &\quad \Delta z_B &= z_5 - z_4. \end{aligned} \tag{4.8}\]

于是,面向量\(\vec{S}_1 = \vec{n}_1\Delta S_1\)由下式得出en

The face vector \(\vec{S}_1 = \vec{n}_1\Delta S_1\) results then from

\[\vec{S}_1 = \frac{1}{2}\begin{bmatrix} \Delta z_A\,\Delta y_B - \Delta y_A\,\Delta z_B \\ \Delta x_A\,\Delta z_B - \Delta z_A\,\Delta x_B \\ \Delta y_A\,\Delta x_B - \Delta x_A\,\Delta y_B \end{bmatrix}. \tag{4.9}\]

其余五个面向量按类似方式计算。同样非常方便的做法是,对每个控制体\(\Omega_{I,J,K}\)只存储六个面向量中的三个(例如\(\vec{S}_1\)、\(\vec{S}_3\)与\(\vec{S}_5\));其余面向量\(\vec{S}_2\)、\(\vec{S}_4\)与\(\vec{S}_6\)(经反号使其指向外侧)由相应的相邻控制体得到。方程(4.8)与(4.9)给出的是平均面向量。当面趋于平行四边形,即面的全部顶点位于同一平面内时,这一近似变为精确。单位法向量由方程(4.7)得到,其中en

The five remaining face vectors are calculated in a similar manner. It is again very convenient to store only three of the six the face vectors (e.g., \(\vec{S}_1\), \(\vec{S}_3\), and \(\vec{S}_5\)) for each control volume \(\Omega_{I,J,K}\). The remaining face vectors \(\vec{S}_2\), \(\vec{S}_4\) as well as \(\vec{S}_6\) are obtained (with reversed signs to become outward facing) from the appropriate neighbouring control volumes. The above expressions in Eq. (4.8) and (4.9) deliver an average face vector. The approximation becomes exact when the face approaches a parallelogram, i.e., when the vertices of the face lie all in one plane. The unit normal vector is obtained from Eq. (4.7) with

\[\Delta S_m = \sqrt{S_{x,m}^2 + S_{y,m}^2 + S_{z,m}^2}\,. \tag{4.10}\]

计算一般六面体的体积有各种精度不一的公式(参见例如[1])。其中一种在多种应用中表现非常好的方法基于散度定理[5]。该定理把某一向量量的散度的体积分与其面积分联系起来。关键想法是取控制体\(\Omega\)内某一点的空间位置——记作\(\vec{r} = [r_x, r_y, r_z]^T\)——作为该向量量。据此,散度定理写作en

Various, more or less accurate formulae are available for the calculation of the volume of a general hexahedron (see, e.g., [1]). One approach, which performed very well in various applications, is based on the divergence theorem [5]. This relates the volume integral of the divergence of some vector quantity to its surface integral. The key idea is to use the location in space of some point of the control volume \(\Omega\), let us call it \(\vec{r} = [r_x, r_y, r_z]^T\), as the vector quantity. Herewith, the divergence theorem reads

\[\int_{\Omega}\mathrm{div}(\vec{r})\,d\Omega = \oint_{\partial\Omega}\left(\vec{r}\cdot\vec{n}\right)dS\,. \tag{4.11}\]

方程(4.11)的左端很容易计算,它给出的正是我们所要求的\(\Omega\)的体积en

We can easily evaluate the left-hand side of Eq. (4.11) which gives us the volume of \(\Omega\) that we are looking for

\[\int_{\Omega}\mathrm{div}(\vec{r})\,d\Omega = \int_{\Omega}\left(\frac{\partial r_x}{\partial x} + \frac{\partial r_y}{\partial y} + \frac{\partial r_z}{\partial z}\right)d\Omega = 3\,\Omega\,. \tag{4.12}\]

如果现在假定单位法向量在控制体的所有面上均为常数,则方程(4.11)右端的面积分可以按如下方式求解en

If we assume now the unit normal vector is constant on all faces of the control volume, we can solve the surface integral on the right-hand side of Eq. (4.11) as follows

\[\oint_{\partial\Omega}\left(\vec{r}\cdot\vec{n}\right)dS \approx \sum_{m=1}^{m=6}\left(\vec{r}_{\mathrm{mid}}\cdot\vec{n}\right)_m\,\Delta S_m\,. \tag{4.13}\]

方程(4.13)中,\(\vec{r}_{\mathrm{mid},m}\)表示控制体第\(m\)面的中点。例如en

In Eq. (4.13), \(\vec{r}_{\mathrm{mid},m}\) denotes the midpoint of the control volume face \(m\). For example,

\[\vec{r}_{\mathrm{mid},1} = \frac{1}{4}\left(\vec{r}_1 + \vec{r}_5 + \vec{r}_8 + \vec{r}_4\right), \tag{7}\]

其中向量\(\vec{r}_1\)、\(\vec{r}_5\)、\(\vec{r}_8\)与\(\vec{r}_4\)对应图4.1b中面\(m = 1\)的顶点1、5、8和4。其余各面的中点也有类似关系。方程(4.13)中面\(m\)的面积\(\Delta S_m\)由方程(4.10)得到。把方程(4.12)与(4.13)结合起来,并用面向量\(\vec{S}\)代替乘积\(\vec{n}_m\Delta S_m\),最终得到en

where the vectors \(\vec{r}_1\), \(\vec{r}_5\), \(\vec{r}_8\), and \(\vec{r}_4\) correspond to the vertices 1, 5, 8, and 4 of the face \(m = 1\) in Fig. 4.1b. Similar relations hold for the midpoints of the remaining faces. The area \(\Delta S_m\) of the face \(m\) in Eq. (4.13) is obtained from Eq. (4.10). Combining Equations (4.12) and (4.13) together, and inserting the face vector \(\vec{S}\) for the product \(\vec{n}_m\Delta S_m\), we have finally the relationship

\[\Omega_{I,J,K} = \frac{1}{3}\sum_{m=1}^{m=6}\left(\vec{r}_{\mathrm{mid}}\cdot\vec{S}\right)_m \tag{4.14}\]

这就是控制体\(\Omega_{I,J,K}\)体积的关系式。en

for the volume of the control volume \(\Omega_{I,J,K}\).

坐标系的原点原则上可以移到任何位置,而不影响方程(4.14)的体积计算。这提示我们把原点放在控制体的某个顶点处(例如图4.1b中的点1),以获得更好的数值大小标度。于是,我们可以把上述表达式(4.11)–(4.14)中的\(\vec{r}\)替换为变换后的向量\(\vec{r}^{*}\),其定义为en

The origin of the coordinate system can be in principle moved to any place without affecting the volume calculation in Eq. (4.14). This leads us to the advice to locate the origin in one vertex of the control volume (e.g., point 1 in Fig. 4.1b), in order to achieve a better scaling of the numerical values. Thus, we may replace \(\vec{r}\) in the above expressions (4.11)–(4.14) by a transformed vector \(\vec{r}^{*}\), which is defined as

\[\vec{r}^{*} = \vec{r} - \vec{r}_{\mathrm{origin}}\,. \tag{9}\]

需要特别指出,用方程(4.14)算得的体积,对于面为平面多边形的控制体是精确的。en

It is important to note that the volume computed with aid of Eq. (4.14) is exact for a control volume with planar faces.

4.2 General Discretisation Methodologies 通用离散方法学[cfd-4-2]

在第4章的引言中,我们已经提到了定义控制体和布置流动变量的三种做法。这里我们将更详细地逐一介绍这三种做法,并讨论它们的优点与不足。en

In the introduction to Chapter 4, we already mentioned the three approaches for the definition of the control volume and for the location of the flow variables. Here, we shall present all three in more detail. We shall also discuss their advantages and shortcomings.

4.2.1 Cell-Centred Scheme 单元中心格式[cfd-4-2-1]

如果控制体与网格单元完全相同,且流动变量位于网格单元的形心处(如图4.3所示),我们称之为单元中心格式(cell-centred scheme)。在计算离散化流动方程(4.2)时,需要在单元的各个面上提供对流通量和黏性通量[6]。它们可以按以下三种方式之一来近似:

  • 通量平均(average of fluxes)——由单元面左右两侧网格单元形心处的值分别计算通量,再取平均,但使用同一面向量(一般只用于对流通量);
  • 变量平均(average of variables)——对与单元面左右两侧网格单元形心相关联的变量取平均;
  • 由分别插值到单元面左右两侧的流动量计算通量(只用于对流通量)。
en

We speak of a cell-centred scheme if the control volumes are identical with the grid cells and if the flow variables are located at the centroids of the grid cells as indicated in Fig. 4.3. When we evaluate the discretised flow equations (4.2), we have to supply the convective and the viscous fluxes at the faces of a cell [6]. They can be approximated in one of the three following ways:

  • by the average of fluxes computed from values at the centroids of the grid cells to the left and to the right of the cell face, but using the same face vector (generally applied only to the convective fluxes);
  • by using an average of variables associated with the centroids of the grid cells to the left and to the right of the cell face;
  • by computing the fluxes from flow quantities interpolated separately to the left and to the right side of the cell face (employed only for the convective fluxes).

图4.3:单元中心格式的控制体(二维)

图4.3:单元中心格式的控制体(二维)。图例:阴影四边形\(\Omega_{I,J}\)为控制体(即网格单元),其四个角点(实心圆点)为网格点\(i,j\)、\(i+1,j\)、\(i,j+1\)、\(i+1,j+1\);实心方块\(I-1,J\)、\(I,J\)、\(I+1,J\)、\(I,J+1\)、\(I,J-1\)表示各单元形心处流动变量的存储位置;\(\vec{n}_{I+1/2,J}\)、\(\vec{n}_{I-1/2,J}\)、\(\vec{n}_{I,J+1/2}\)、\(\vec{n}_{I,J-1/2}\)为控制体各面的单位法向量。

以图4.3中的单元面\(\vec{n}_{I+1/2,J}\)为例,第一种做法——通量平均——在二维中写作en

Thus, taking the cell face \(\vec{n}_{I+1/2,J}\) in Fig. 4.3 as an example, the first approach - average of fluxes - reads in two dimensions

\[\left(\vec{F}_c\,\Delta S\right)_{I+1/2,J} \approx \frac{1}{2}\left[\vec{F}_c(\vec{W}_{I,J}) + \vec{F}_c(\vec{W}_{I+1,J})\right]\Delta S_{I+1/2,J} \tag{4.15}\]

其中\(\Delta S_{I+1/2,J}\)由方程(4.6)与(4.7)计算。en

with \(\Delta S_{I+1/2,J}\) computed from Eqs. (4.6) and (4.7).

第二种可能的做法——变量平均——可以表述为en

The second possible approach - average of variables - can be formulated as follows

\[\left(\vec{F}\,\Delta S\right)_{I+1/2,J} \approx \vec{F}(\vec{W}_{I+1/2,J})\,\Delta S_{I+1/2,J}, \tag{4.16}\]

其中,控制体面\(\vec{n}_{I+1/2,J}\)上的守恒变量/因变量定义为两个相邻单元处数值的算术平均,即en

where the conservative/dependent variables at the face \(\vec{n}_{I+1/2,J}\) of the control volume are defined as the arithmetic average of values at the two adjacent cells, i.e.,

\[\vec{W}_{I+1/2,J} = \frac{1}{2}\left(\vec{W}_{I,J} + \vec{W}_{I+1,J}\right). \tag{4.17}\]

方程(4.16)中的通量向量\(\vec{F}\)既可以指对流通量,也可以指黏性通量。en

The flux vector \(\vec{F}\) in Eq. (4.16) stands either for the convective or for the viscous fluxes.

第三种做法先把流动量(大多为速度分量、压力、密度和总焓)分别插值到单元面的两侧。插值得到的量——称为左(left)状态与右(right)状态(见4.3节开头)——在两侧一般并不相同。通过单元面的通量随后利用某个非线性函数由左、右状态之差求出。于是en

The third methodology starts with an interpolation of flow quantities (being mostly velocity components, pressure, density and total enthalpy) separately to both sides of the cell face. The interpolated quantities - termed the left and the right state (see the begin of Section 4.3) - differ in general between both sides. The fluxes through the cell face are then evaluated from the difference of the left and right state using some non-linear function. Hence,

\[\left(\vec{F}_c\,\Delta S\right)_{I+1/2,J} \approx f_{Flux}\left(\vec{U}_L,\,\vec{U}_R,\,\Delta S_{I+1/2,J}\right), \tag{4.18}\]

其中en

where

\[\begin{aligned} \vec{U}_L &= f_{Interp}\left(\cdots,\,\vec{U}_{I-1,J},\,\vec{U}_{I,J},\,\cdots\right) \\ \vec{U}_R &= f_{Interp}\left(\cdots,\,\vec{U}_{I,J},\,\vec{U}_{I+1,J},\,\cdots\right) \end{aligned} \tag{4.19}\]

它们表示插值得到的状态。当然,与(4.15)–(4.19)类似的关系对其余单元面同样成立。en

represent the interpolated states. Of course, similar relations like (4.15)–(4.19) hold also for the other cell faces.

同样的近似也用于三维。例如,在单元面\(\vec{n}_{I+1/2,J,K}\)(例如与图4.1b中的\(\vec{n}_2\)相同)处,方程(4.15)的通量平均变为en

The same approximations are employed in three dimensions. For example, at the cell face \(\vec{n}_{I+1/2,J,K}\) (e.g., identical to \(\vec{n}_2\) in Fig. 4.1b) the average of fluxes in Eq. (4.15) becomes

\[\left(\vec{F}_c\,\Delta S\right)_{I+1/2,J,K} \approx \frac{1}{2}\left[\vec{F}_c(\vec{W}_{I,J,K}) + \vec{F}_c(\vec{W}_{I+1,J,K})\right]\Delta S_{I+1/2,J,K} \tag{4.20}\]

其中\(\Delta S_{I+1/2,J,K}\)按照与方程(4.8)和(4.9)相应的方式定义。变量平均则与方程(4.16)类似地写作en

with \(\Delta S_{I+1/2,J,K}\) being defined correspondingly to Equations (4.8) and (4.9). The average of variables reads similarly to Eq. (4.16) as

\[\left(\vec{F}\,\Delta S\right)_{I+1/2,J,K} \approx \vec{F}(\vec{W}_{I+1/2,J,K})\,\Delta S_{I+1/2,J,K} \tag{4.21}\]

其中en

with

\[\vec{W}_{I+1/2,J,K} = \frac{1}{2}\left(\vec{W}_{I,J,K} + \vec{W}_{I+1,J,K}\right). \tag{4.22}\]

经由流动变量插值的做法,则与方程(4.18)类似地给出en

The way over the interpolation of the flow variables results similarly to Eq. (4.18) in

\[\left(\vec{F}_c\,\Delta S\right)_{I+1/2,J,K} \approx f_{Flux}\left(\vec{U}_L,\,\vec{U}_R,\,\Delta S_{I+1/2,J,K}\right), \tag{4.23}\]

其中\(\vec{U}_L\)与\(\vec{U}_R\)是单元面上插值得到的数值。en

where \(\vec{U}_L\) and \(\vec{U}_R\) are the interpolated values at the cell face.

离散化流动方程(4.2)中尚待计算的最后一项是源项\(\vec{Q}\)。如引言中所述,源项通常假定在控制体内部为常数。因此,它用相应单元中心处的流动变量来计算。于是,我们可以定义en

The last term in the discretised flow equations (4.2) which remains to be evaluated is the source term \(\vec{Q}\). As we already stated in the introduction, the source term is usually supposed to be constant inside the control volume. For this reason, it is calculated using the flow variables from the corresponding cell centre. Hence, we may define

\[\left(\vec{Q}\,\Omega\right)_{I,J,K} = \vec{Q}(\vec{W}_{I,J,K})\,\Omega_{I,J,K}\,. \tag{4.24}\]

利用上述关系,可以算出通过各面的通量,并按照(4.2)完成对\(\Omega_{I,J,K}\)边界的数值积分。换言之,完整的残差\(\vec{R}_{I,J,K}\)便得到了。在4.3节和4.4节中,我们将进一步了解对流通量与黏性通量计算的细节。en

Using the above relations, the fluxes through the faces can be computed and the numerical integration over the boundary of \(\Omega_{I,J,K}\) may be performed according to (4.2). In other words, the complete residual \(\vec{R}_{I,J,K}\) is obtained. In Sections 4.3 and 4.4, we shall learn more about the details of the evaluation of the convective and viscous fluxes.

4.2.2 Cell-Vertex Scheme: Overlapping Control Volumes 单元顶点格式:重叠控制体[cfd-4-2-2]

在单元顶点格式中,所有流动变量都与计算网格的节点相关联。在基于重叠控制体的做法中,网格单元仍然充当控制体,与单元中心格式的情形一样。区别在于:此时为各控制体算出的残差必须分配到网格点上[4]、[7]、[8]。图4.4示意了这一情形。en

In a cell-vertex scheme, all flow variables are associated with the nodes of the computational grid. Within the approach based on overlapping control volumes, the grid cells still represent the control volumes, just as in the case of the cell-centred scheme. The difference is that now the residuals computed for the control volumes have to be distributed to the grid points [4], [7], [8]. The situation is sketched in Fig. 4.4.

考察图4.4中的控制体\(\Omega_{I,J}\),它由下列节点定义en

Let us consider the control volume \(\Omega_{I,J}\) in Fig. 4.4, which is defined by the nodes

\[(i,j)\quad (i+1,j)\quad (i+1,j+1)\quad (i,j+1)\,. \tag{1}\]

注意,点\((i,j)\)位于\(\Omega_{I,J}\)的左下角。对流通量——例如对面\(\Delta S_{I,J-1/2}\),它由点\((i,j)\)与\((i+1,j)\)给定——近似为en

Note that the point \((i,j)\) is located at the lower left corner of \(\Omega_{I,J}\). The convective fluxes, e.g., for the face \(\Delta S_{I,J-1/2}\), which is given by the points \((i,j)\) and \((i+1,j)\), are approximated as

\[\left(\vec{F}_c\,\Delta S\right)_{I,J-1/2} \approx \vec{F}_c(\vec{W}_{I,J-1/2})\,\Delta S_{I,J-1/2}\,. \tag{4.25}\]

面中点处的变量用定义该面的两个节点上变量的算术平均来计算,即en

The variables at the midpoint of the face are evaluated using an arithmetic average of the variables at the nodes defining the face, i.e.,

\[\vec{W}_{I,J-1/2} = \frac{1}{2}\left[\vec{W}_{i,j} + \vec{W}_{i+1,j}\right]. \tag{4.26}\]

面面积\(\Delta S_{I,J-1/2}\)由关系式(4.6)与(4.7)计算。en

The face area \(\Delta S_{I,J-1/2}\) is computed from the relations (4.6) and (4.7).

这一做法在三维中保持不变。例如,对于与图4.1b中法向量\(\vec{n}_3\)相关联的面,平均变量为en

The approach remains the same in three dimensions. For example, for the face associated with the normal vector \(\vec{n}_3\) in Fig. 4.1b, the averaged variables read

\[\vec{W}_{I,J,K-1/2} = \frac{1}{4}\left[\vec{W}_1 + \vec{W}_2 + \vec{W}_5 + \vec{W}_6\right]. \tag{4.27}\]

图4.4:单元顶点格式的重叠控制体(二维);箭头表示残差从单元形心向公共节点i,j的分配

图4.4:单元顶点格式的重叠控制体(二维);箭头表示残差从单元形心向公共节点\(i,j\)的分配。图例:四个单元\(\Omega_{I-1,J-1}\)、\(\Omega_{I,J-1}\)、\(\Omega_{I-1,J}\)、\(\Omega_{I,J}\)(阴影四边形)共享公共节点\(i,j\)(实心圆点);各单元形心以实心方块标记\(I-1,J-1\)、\(I,J-1\)、\(I-1,J\)、\(I,J\);箭头表示把各单元(形心)的残差分配到公共节点;外圈网格点标记为\(i-1,j-1\)、\(i,j-1\)、\(i+1,j-1\)、\(i-1,j\)、\(i+1,j\)、\(i-1,j+1\)、\(i,j+1\)、\(i+1,j+1\)。

如果假定边1-2沿\(i\)方向、边1-5沿\(j\)方向、边1-4沿\(k\)方向,并把点\((i,j,k)\)与图4.1b中的角点1相关联,则方程(4.27)中的平均也可以写成en

If we assume the edge 1-2 being oriented in the \(i\)-direction, edge 1-5 in the \(j\)-direction, edge 1-4 in the \(k\)-direction, and if we finally associate the point \((i,j,k)\) with the corner 1 in Fig. 4.1b, the average in Eq. (4.27) can also be written as

\[\vec{W}_{I,J,K-1/2} = \frac{1}{4}\left[\vec{W}_{i,j,k} + \vec{W}_{i+1,j,k} + \vec{W}_{i,j+1,k} + \vec{W}_{i+1,j+1,k}\right]. \tag{4.28}\]

对流通量于是同样由下式得到en

The convective flux is then again obtained from

\[\left(\vec{F}_c\,\Delta S\right)_{I,J,K-1/2} \approx \vec{F}_c(\vec{W}_{I,J,K-1/2})\,\Delta S_{I,J,K-1/2}, \tag{4.29}\]

其中面面积\(\Delta S_{I,J,K-1/2}\)由公式(4.8)与(4.9)得出。黏性通量通常采用与对偶控制体格式相同的方法计算[9]、[10],这样得到的格式更为紧凑(即涉及的节点值更少)。en

where the face area \(\Delta S_{I,J,K-1/2}\) results from the formulae (4.8) and (4.9). The viscous fluxes are normally computed employing the same approach as for the dual control-volume scheme [9], [10], which results in a more compact scheme (i.e., one which involves fewer nodal values).

把关系式(4.25)、(4.26)与(4.28)、(4.29)给出的所有面的贡献分别求和,便得到所有网格单元的中间残差\(\vec{R}_{I,J,K}\)。为了把基于单元的残差与基于节点的残差联系起来,还需要作进一步近似,即采用残差分布公式(residual distribution formula)。它基本上是一个函数,由共享该网格节点的所有单元的加权和来计算未知的基于节点的残差。已经提出的分布公式有:

  • Ni的体积加权和[7];
  • Hall的非加权求和[8];
  • Rossow的特征(上风)加权方法[11]、[12]。
en

Summing up all face contributions given by relations (4.25), (4.26) and (4.28), (4.29), respectively, we obtain intermediate residuals \(\vec{R}_{I,J,K}\) for all grid cells. In order to relate the cell-based to the node-based residuals, a further approximation is made using a residual distribution formula. It is basically a function, which evaluates the unknown node-based residual from a weighted sum of all cells having the particular grid node in common. The following distribution formulae were devised:

  • volume weighted sum due to Ni [7];
  • non-weighted sum due to Hall [8];
  • characteristic (upwind) weighting procedure of Rossow [11], [12].

对截断误差的理论研究[4]表明,Ni的格式比Hall的方法更精确。然而在实践中,Ni的分布公式在网格强烈扭曲和拉伸的地方会导致问题。例如,使用O型网格时,曾观察到翼型后缘附近压力场的强烈振荡[13]、[4]。此外,只有把数值黏性加大很多才能获得收敛。上风加权方法[11]、[12]的基本思想与脉动分裂(fluctuation-splitting)格式[14]-[17]相当类似(参见3.1.5小节),但其数值实现要简单得多。从根本上说,残差只沿特征方向向上游发送。en

Theoretical investigations of the truncation error [4] suggest that Ni's scheme is more accurate than Hall's approach. However, in practice Ni's distribution formula leads to problems in places, where the grid is strongly distorted and stretched. For example, strong oscillations of the pressure field near the trailing edge of an airfoil were observed when using O-grids [13], [4]. Furthermore, convergence could only be achieved when the numerical viscosity was increased considerably. The underlying idea of the upwind weighting procedure [11], [12] is quite similar to that of the fluctuation-splitting schemes [14]-[17] (cf. Subsection 3.1.5), but the implementation is numerically much simpler. Basically, the residuals are sent only upstream in the characteristic direction.

在这三种做法中,Hall的分布格式被证明最为稳健。在Hall的格式中,某一节点处的残差由共享该节点的所有单元的中间残差\(\vec{R}_{I,J,K}\)直接求和得到。于是,在图4.4所示的二维情形中,我们得到en

Of the three approaches, Hall's distribution scheme proved to be the most robust. In Hall's scheme, the residual at a particular node results from a simple sum of all intermediate residuals \(\vec{R}_{I,J,K}\), which cells share the node. Thus, in the 2-D case rendered in Fig. 4.4, we get

\[\vec{R}_{i,j} = \vec{R}_{I,J} + \vec{R}_{I-1,J} + \vec{R}_{I-1,J-1} + \vec{R}_{I,J-1}\,. \tag{4.30}\]

在三维中,必须以同样的方式把总共八个基于单元的残差求和。仔细考察(4.30)可以发现,\(\vec{R}_{i,j}\)恰好就是穿过超级单元(supercell)边界的净通量en

In three dimensions, in total eight cell-based residuals have to be summed up in the same way. A close inspection of (4.30) reveals that \(\vec{R}_{i,j}\) is just the net flux through the boundary of the supercell

\[\Omega_{i,j} = \Omega_{I,J} + \Omega_{I-1,J} + \Omega_{I-1,J-1} + \Omega_{I,J-1}, \tag{4.31}\]

这是因为穿过内部各面的通量互相抵消。超级单元也代表以点\((i,j)\)为中心的“总”控制体。在三维情形中,总体积由以下单元构成en

due to the fact that the fluxes across the inner faces cancel each other. The supercell also represents the "total" control volume, centred at the point \((i,j)\). In the 3-D case, the total volume consists of the cells

\[\begin{aligned} \Omega_{i,j,k} = {}& \Omega_{I,J,K} + \Omega_{I-1,J,K} + \Omega_{I-1,J-1,K} + \Omega_{I,J-1,K} \\ & + \Omega_{I,J,K-1} + \Omega_{I-1,J,K-1} + \Omega_{I-1,J-1,K-1} + \Omega_{I,J-1,K-1}\,. \end{aligned} \tag{4.32}\]

从图4.4可以看出,这些控制体至少重叠一个单元,该格式正因此得名。en

As it can be seen from Fig. 4.4, the control volumes overlap by at least one cell, which gave the scheme its name.

源项用相应网格节点处的流动变量计算,即en

The source term is calculated using the flow variables from the corresponding grid node, i.e.,

\[\left(\vec{Q}\,\Omega\right)_{i,j,k} = \vec{Q}(\vec{W}_{i,j,k})\,\Omega_{i,j,k}\,. \tag{4.33}\]

采用上述定义后,方程(4.2)中的时间推进格式变为en

With the above definitions, the time-stepping scheme in Eq. (4.2) becomes

\[\frac{d\vec{W}_{i,j,k}}{dt} = -\frac{1}{\Omega_{i,j,k}}\,\vec{R}_{i,j,k}\,. \tag{4.34}\]

这代表一个常微分方程组,它必须在每个网格点\((i,j,k)\)上求解,方式与单元中心格式相同。注意,方程(4.34)中分别使用总体积(4.31)或(4.32)。en

This represents a system of ordinary differential equations, which has to be solved in each grid point \((i,j,k)\) in the same way as for the cell-centred scheme. Note that the total volume (4.31) or (4.32), respectively, is utilised in Eq. (4.34).

4.2.3 Cell-Vertex Scheme: Dual Control Volumes 单元顶点格式:对偶控制体[cfd-4-2-3]

在这一格式中,控制体围绕各个网格节点(顶点)构造,所有流动变量都存储在节点上[18]、[19]。如图4.5所示,在二维情形中,对偶控制体通过连接共享该节点的四个单元的中点而构成。在三维中,则须把八个单元的形心连接起来,以构成控制体的各个面。另一种可能的做法是(在二维中)把某个单元形心连接到边中点,再连接回相邻单元的形心[20]。这样一来,控制体的面将由法向量不同的两部分构成,这在非结构网格中十分常见(参见下一章)。然而,对于结构网格,这种控制体定义只有在边界处才有理由采用,因为在边界处若不如此定义,表面的离散方式将会改变。图4.6演示了这一情形。在相当光滑的网格上,不能指望第二种做法在内部流场精度方面带来显著优势。因此,下文将采用较简单的对偶控制体定义。边界处理将在第8章中讨论。en

In this scheme, the control volumes are centred around the particular grid node (vertex), where all flow variables are stored [18], [19]. As depicted in Fig. 4.5, in the 2-D case the dual control volumes are constructed by joining the midpoints of the four cells which share the node. In three dimensions, the centroids of eight cells have to be connected in order to form the faces of the control volume. Another possibility would be to join one cell centroid to the edge midpoint (in two dimensions) and then to the neighbouring cell centroid again [20]. Thus, the face of the control volume would consist of two parts with different normal vectors, as it is common for unstructured grids (see next Chapter). However, in the case of structured grids, such a definition of the control volume is justified only at boundaries, where the surface discretisation would be otherwise changed. This is demonstrated in Fig. 4.6. Significant advantages with respect to accuracy in the interior field cannot be expected from the second approach on reasonably smooth grids. Therefore, in what follows, the simpler definition of the dual control volume will be employed. The boundary treatment is discussed in Chapter 8.

在计算离散化流动方程(4.2)时,需要计算控制体各面上的对流通量和黏性通量。这可以按以下三种做法之一来完成:

  • 通量平均(average of fluxes)——由控制体面左右两侧节点处的值分别计算通量,再取平均,但使用同一面向量(一般只用于对流通量);
  • 变量平均(average of variables)——对存储在控制体面左右两侧节点处的变量取平均;
  • 由分别插值到控制体面左右两侧的流动量计算通量(只用于对流通量)。
en

When we evaluate the discretised flow Equations (4.2), we have to compute the convective and the viscous fluxes at the faces of the control volume. This can be done according to one of the following three approaches:

  • by the average of fluxes computed from values at the nodes to the left and to the right of the face of the control volume, but using the same face vector (generally applied only to the convective fluxes);
  • by using an average of variables stored at the nodes to the left and to the right of the face;
  • by computing the fluxes from flow quantities interpolated separately to the left and to the right side of the face (employed only for the convective fluxes).

于是,例如对图4.5中的单元面\(\vec{n}_{i+1/2,j}\),第一种做法——通量平均——在二维中写作en

Thus, for example at the cell face \(\vec{n}_{i+1/2,j}\) in Fig. 4.5 the first approach - average of fluxes - reads in two dimensions

\[\left(\vec{F}_c\,\Delta S\right)_{i+1/2,j} \approx \frac{1}{2}\left[\vec{F}_c(\vec{W}_{i,j}) + \vec{F}_c(\vec{W}_{i+1,j})\right]\Delta S_{i+1/2,j} \tag{4.35}\]

其中\(\Delta S_{i+1/2,j}\)分别按方程(4.6)与(4.7),由单元形心的已知坐标计算。en

with \(\Delta S_{i+1/2,j}\) being computed according to Eq. (4.6) and (4.7), respectively, from the known coordinates of the cell centroids.

第二种可能的做法——变量平均——可以表述为en

The second possible approach - average of variables - can be formulated as follows

\[\left(\vec{F}\,\Delta S\right)_{i+1/2,j} \approx \vec{F}(\vec{W}_{i+1/2,j})\,\Delta S_{i+1/2,j}\,, \tag{4.36}\]

其中,控制体面\(\vec{n}_{i+1/2,j}\)上的守恒变量(或因变量)由两个相邻节点处数值的算术平均得到。于是en

where the conservative (or the dependent) variables at the face \(\vec{n}_{i+1/2,j}\) of the control volume result from arithmetic averaging of values at the two neighbouring nodes. Hence,

\[\vec{W}_{i+1/2,j} = \frac{1}{2}\left(\vec{W}_{i,j} + \vec{W}_{i+1,j}\right)\,. \tag{4.37}\]

图4.5:二维中单元顶点格式的对偶控制体

图4.5:二维中单元顶点格式的对偶控制体。图例:阴影四边形\(\Omega_{I,J}\)为围绕网格节点\(i,j\)的对偶控制体,由共享该节点的四个单元的中点连接而成;节点\(i,j\)以及相邻节点\(i-1,j\)、\(i+1,j\)、\(i,j+1\)、\(i,j-1\)均以实心圆点标记;\(\vec{n}_{i+1/2,j}\)、\(\vec{n}_{i-1/2,j}\)、\(\vec{n}_{i,j+1/2}\)、\(\vec{n}_{i,j-1/2}\)为对偶控制体各面的单位法向量(箭头所示)。

图4.6:边界处对偶控制体的定义(二维);上排:连接边中点构成;下排:连接边中点及边界上的中心节点构成

图4.6:边界处对偶控制体的定义(二维)。上排:通过连接边中点构成;下排:通过连接边中点以及边界上的中心节点构成。图例:阴影四边形为边界网格点(实心圆点)处的对偶控制体;阴影斜线区域为物面(壁面);左列为平直边界上的情形,右列为折角(斜坡)边界上的情形。

方程(4.36)中的通量向量\(\vec{F}\)既可以指对流通量,也可以指黏性通量。en

The flux vector \(\vec{F}\) in Eq. (4.36) represents either the convective or the viscous fluxes.

第三种方法把流动量(大多为速度分量、压力、密度和总焓)分别插值到面的两侧。插值得到的量——称为左(left)状态与右(right)状态(见4.3节开头)——在两侧一般并不相同。通过控制体面的通量随后利用某个非线性函数由左、右状态之差求出。于是en

The third methodology utilises an interpolation of flow quantities (being mostly velocity components, pressure, density and total enthalpy) separately to both sides of the face. The interpolated quantities - termed the left and the right state (see the begin of Section 4.3) - differ in general between both sides. The fluxes through the face of the control volume are then evaluated from the difference of the left and right state using some non-linear function. Thus,

\[\left(\vec{F}_c\,\Delta S\right)_{i+1/2,j} \approx f_{Flux}\left(\vec{U}_L,\,\vec{U}_R,\,\Delta S_{i+1/2,j}\right), \tag{4.38}\]

其中en

where

\[\begin{aligned} \vec{U}_L &= f_{Interp}\left(\cdots,\,\vec{U}_{i-1,j},\,\vec{U}_{i,j},\,\cdots\right) \\ \vec{U}_R &= f_{Interp}\left(\cdots,\,\vec{U}_{i,j},\,\vec{U}_{i+1,j},\,\cdots\right) \end{aligned} \tag{4.39}\]

它们表示插值得到的状态。当然,与(4.35)–(4.39)类似的关系对控制体的其他面同样成立。en

stand for the interpolated states. Of course, similar relations like (4.35)–(4.39) apply in the same way to other faces of the control volume.

同样的近似也用于三维。例如,在单元面\(\vec{n}_{i+1/2,j,k}\)(例如与图4.1b中的\(\vec{n}_2\)相同)处,方程(4.35)的通量平均变为en

The same approximations are employed in three dimensions. For example, at the cell face \(\vec{n}_{i+1/2,j,k}\) (e.g., identical to \(\vec{n}_2\) in Fig. 4.1b) the average of fluxes in Eq. (4.35) becomes

\[\left(\vec{F}_c\,\Delta S\right)_{i+1/2,j,k} \approx \frac{1}{2}\left[\vec{F}_c(\vec{W}_{i,j,k}) + \vec{F}_c(\vec{W}_{i+1,j,k})\right]\Delta S_{i+1/2,j,k}, \tag{4.40}\]

其中\(\Delta S_{i+1/2,j,k}\)由方程(4.8)与(4.9)得到。与方程(4.36)类似,流动变量的平均给出为en

where \(\Delta S_{i+1/2,j,k}\) is obtained from the Equations (4.8) and (4.9). The average of the flow variables results similarly to Eq. (4.36) in

\[\left(\vec{F}\,\Delta S\right)_{i+1/2,j,k} \approx \vec{F}(\vec{W}_{i+1/2,j,k})\,\Delta S_{i+1/2,j,k} \tag{4.41}\]

其中en

with

\[\vec{W}_{i+1/2,j,k} = \frac{1}{2}\left(\vec{W}_{i,j,k} + \vec{W}_{i+1,j,k}\right)\,. \tag{4.42}\]

最后,流动变量的插值对应于方程(4.38),给出en

Finally, the interpolation of the flow variables leads correspondingly to Eq. (4.38) to

\[\left(\vec{F}_c\,\Delta S\right)_{i+1/2,j,k} \approx f_{Flux}\left(\vec{U}_L,\,\vec{U}_R,\,\Delta S_{i+1/2,j,k}\right), \tag{4.43}\]

其中\(\vec{U}_L\)与\(\vec{U}_R\)表示在面上插值得到的值。关于几种可能做法的详细描述,将在4.3节中针对对流通量、在4.4节中针对黏性通量分别介绍。en

where \(\vec{U}_L\) and \(\vec{U}_R\) denote the interpolated values at the face. A detailed description of several possible approaches will be presented in Section 4.3 for the convective and in Section 4.4 for the viscous fluxes.

离散化流动方程(4.2)中最后一项需要计算的是源项\(\vec{Q}\)。如引言中所述,源项大多假定在控制体内部为常数。因此,它用相应网格点处的流动变量计算。于是,我们可以定义en

The last term in the discretised flow Equations (4.2) to be evaluated is the source term \(\vec{Q}\). As already stated in the introduction, the source term is mostly supposed to be constant inside the control volume. For this reason, it is computed using the flow variables from the corresponding grid point. Hence, we may define

\[\left(\vec{Q}\,\Omega\right)_{i,j,k} = \vec{Q}(\vec{W}_{i,j,k})\;\Omega_{i,j,k}\,. \tag{4.44}\]

利用上述关系,可以算出通过各面的通量,并可按方程(4.2)沿\(\Omega_{i,j,k}\)的边界完成数值积分。这样,我们便得到包含源项的完整残差\(\vec{R}_{i,j,k}\)。守恒变量随时间的变化随后对每个网格点由下式给出en

Using the above relations, the fluxes through the faces can be computed and the numerical integration over the boundary of \(\Omega_{i,j,k}\) can be carried out according to Eq. (4.2). In this way, we obtain the complete residual \(\vec{R}_{i,j,k}\) including the source term. The change in time of the conservative variables follows then for each grid point from

\[\frac{d\vec{W}_{i,j,k}}{dt} = -\frac{1}{\Omega_{i,j,k}}\,\vec{R}_{i,j,k}\,. \tag{4.45}\]

适当的求解方法将在第6章中介绍。en

Suitable solution methods will be presented later in Chapter 6.

4.2.4 Cell-Centred versus Cell-Vertex Schemes 单元中心格式与单元顶点格式的对比[cfd-4-2-4]

在前面三小节中,我们概述了单元中心与单元顶点两种离散方法学。下面几段将对这三种格式进行比较,并概述围绕它们相对优劣的、有时颇具争议的讨论。en

In the preceding three subsections, both the cell-centred and the cell-vertex discretisation methodologies were outlined. The following paragraphs compare the three schemes and give an overview of the, at times controversial, debate about their relative merits.

首先,考察离散化的精度。由文献[4]、[21]中的讨论可知,单元顶点格式(无论采用重叠控制体还是对偶控制体)在扭曲网格上只能做到一阶精度。在笛卡尔网格或光滑网格(即相邻单元的体积变化不大、扭曲轻微的网格)上,单元顶点格式按通量计算格式的不同可达到二阶或更高精度[22]。相反,单元中心格式的离散误差在很大程度上取决于网格的光滑程度。例如,对于图4.7所示的单元布置,即使是线性变化的函数,取平均也不能给出面上中点的正确值。其后果是:在具有斜率间断的网格上,即使把网格无限细化,离散误差也不会减小。如文献[4]所证明的,这类零阶误差表现为等值线上的振荡或扭折,而单元顶点格式在同一情形下不会遇到任何问题。尽管如此,在笛卡尔网格或充分光滑的网格上,单元中心格式同样可以达到二阶或更高精度。文献[23]-[26]对离散误差作了进一步分析。en

First, let us consider the accuracy of the discretisations. It follows from the discussion in [4], [21] that the cell-vertex scheme (either with overlapping or dual control volumes) can be made first-order accurate on distorted grids. On Cartesian or on smooth grids (i.e., where the volumes between adjacent cells vary only moderately and which are only slightly skewed), the cell-vertex scheme is second- or higher-order accurate [22], depending on the flux evaluation scheme. In the opposite, the discretisation error of a cell-centred scheme depends strongly on the smoothness of the grid. For example, for an arrangement of the cells sketched in Fig. 4.7, an averaging does not provide the correct value at the midpoint of a face even for a linearly varying function. The consequence is that on a grid with slope discontinuity the discretisation error will not be reduced even when the grid is infinitely refined. As demonstrated in [4], such zero-order errors manifest themselves as oscillations or kinks in isolines, whereas a cell-vertex scheme experiences no problems in the same situation. Nevertheless, on Cartesian or on sufficiently smooth grids, the cell-centred scheme can also reach second- or higher-order accuracy. A further analysis of the discretisation errors were presented in [23]-[26].

其次,比较三种方法及其在边界处的特性。采用对偶控制体的单元顶点格式主要在固壁边界处遇到困难。再次回顾图4.6即可明显看出,在边界处控制体只剩大约一半。沿各面对通量积分得到的残差位于控制体内部——理想情况下位于其形心;但残差却被关联到直接位于壁面上的节点。与单元中心格式相比,这种错位导致离散误差增大。对偶控制体的定义在尖角(如尾缘)处也会引起问题,表现为压力或密度上的非物理峰值。此外,在坐标切割或周期边界(见第8章)等处还会出现更多复杂情况,在那里必须把来自控制体两部分的通量正确地相加en

Second, let us compare the three methods and their characteristics at boundaries. It is mainly at the solid wall boundary where the cell-vertex scheme with dual control volumes faces difficulties. Recalling Fig. 4.6 again, it is apparent that only about one half of the control volume is left at the boundary. The integration of fluxes around the faces results in a residual located inside - ideally in the centroid - of the control volume. But, the residual is associated with the node residing directly at the wall. This mismatch leads to increased discretisation error in comparison to the cell-centred scheme. The definition of the dual control volume causes also problems at sharp corners (like trailing edges), which show up as unphysical peaks in pressure or density. Further complications arise, e.g., at coordinate cuts or at periodic boundaries (see Chapter 8), where the fluxes from both parts of the control volume have to be summed

图4.7:斜扭曲网格上的单元中心通量平衡;叉号表示单元面的中点

图4.7:斜扭曲网格上的单元中心通量平衡;叉号表示单元面的中点。图例:阴影四边形\(\Omega_{I,J}\)为控制体,其右侧相邻单元\(I+1,J\)发生扭斜;两个单元形心以实心方块标记,虚线连接两形心;叉号\(\times\)表示两单元公共面的中点——即使是线性变化的函数,由形心处数值取平均也得不到该点的正确值。

才行。所有单元顶点格式还需要额外的逻辑,以保证在由多个网格块共享的边界点上解的一致性。单元中心格式则不存在这些问题。en

up correctly. All cell-vertex schemes also require additional logic, in order to assure a consistent solution at boundary points shared by multiple grid blocks. No such problems appear for cell-centred schemes.

采用重叠控制体的单元顶点格式在壁面边界的处理上比对偶体积格式有利,但它不能与流行的上风离散方法(如TVD、AUSM或CUSP)结合使用。其离散所涉及的点多于单元中心格式与对偶控制体格式(三维中为27个而非7个),这会导致间断被抹平,并且在隐式时间离散的情形下带来内存开销。en

The cell-vertex scheme with overlapping control volumes has an advantage over the dual volume scheme in the treatment of wall boundaries, but it cannot be combined with the popular upwind discretisation methods like TVD, AUSM, or CUSP. The discretisation involves more points than those of the cell-centred and the dual control-volume schemes (27 instead of 7 in 3D), which leads to smearing of discontinuities and memory overhead in the case of an implicit time discretisation.

单元中心格式与单元顶点格式之间的最后一个主要差别出现在非定常流动问题中。正如3.2节中早已提到的,单元顶点格式至少需要对质量矩阵[27]、[28]作近似处理。相反,在单元中心格式中,质量矩阵可以完全舍弃,因为残差自然地与控制体的形心相关联。en

The last main difference between the cell-centred and the cell-vertex schemes appears for unsteady flow problems. As mentioned earlier in Section 3.2, the cell-vertex schemes require at least an approximate treatment of the mass matrix [27], [28]. On the contrary, the mass matrix can be completely discarded in the case of a cell-centred scheme, because the residual is naturally associated with the centroid of the control volume.

总之,采用对偶控制体的单元顶点格式与单元中心格式在定常流场内部的数值特性非常相似。主要差别出现在扭曲网格、边界处理以及非定常流动等情形。在后两种情形中,单元中心方法相对单元顶点格式表现出优势,使得它在流动求解器中的实现更为直接。en

In summary, the cell-vertex scheme with dual control volumes and the cell-centred scheme are numerically very similar in the interior of a stationary flow field. The main differences occur on distorted grids, in the boundary treatment and for unsteady flows. In the last two cases, the cell-centred approach shows advantages over the cell-vertex schemes, which result in a more straightforward implementation in a flow solver.

4.3 Discretisation of the Convective Fluxes 对流通量的离散化[cfd-4-3]

在前几节中,我们总体上讨论了空间离散方法学。在本部分中,我们将更深入地了解对流通量近似的具体细节。en

In the previous sections, we discussed the spatial discretisation methodologies in general. In this part, we shall learn more about the details, how the convective fluxes can be approximated.

正如我们在3.1.5小节中已经看到的,在有限体积方法的框架下,基本上可以在以下几类格式中选择:

  • 中心格式(central);
  • 通量向量分裂格式(flux-vector splitting);
  • 通量差分分裂格式(flux-difference splitting);
  • 总变差减小(total variation diminishing,TVD)格式;以及
  • 脉动分裂格式(fluctuation-splitting)

。为了控制篇幅,我们只介绍最重要、最流行的方法;对基本格式的各种可能改型不再详细描述,而是引用相关文献。en

As we could already see in Subsection 3.1.5, in the framework of the finite volume approach, we have basically the choice between:

  • central,
  • flux-vector splitting,
  • flux-difference splitting,
  • total variation diminishing (TVD), and
  • fluctuation-splitting

schemes. In order to keep the amount of material bounded, we will restrict ourselves to the most important and popular methods. We will omit any detailed description of all possible modifications to the basic schemes, but instead reference the relevant literature.

在开始详细展示各种离散格式之前,我们应当先解释left与right state(左状态与右状态)这两个称谓,以及stencil(模板)或computational molecule(计算分子)的含义。en

Before we start to present the various discretisation schemes in detail, we should explain what is meant by the designations left and right state, as well as by stencil or computational molecule, respectively.

某些单元中心格式与对偶控制体格式需要把流动变量插值到控制体的面上。图4.8以i方向网格为例示意了这一情形。en

Certain cell-centred and dual control-volume schemes require an interpolation of flow variables to the faces of the control volume. The situation is sketched in Fig. 4.8 for a grid in the i-direction.

图4.8:单元面I+1/2(或i+1/2)处的左状态与右状态;上半部分:单元中心格式;下半部分:采用对偶控制体的单元顶点格式

图4.8:单元面\(I+1/2\)(或\(i+1/2\))处的左状态与右状态。上半部分:单元中心格式;下半部分:采用对偶控制体的单元顶点格式。图例:圆点表示节点,矩形表示单元形心;L与R分别表示面左侧与右侧的状态,箭头所指为控制体的面(face of control volume)。

中心格式(见下一小节)采用的一种做法,是利用面两侧相同数目的值做线性插值;换句话说,插值相对于面居中。基于欧拉方程特征的离散——上风格式——则用非对称公式分别从面的左侧和右侧插值流动变量。这两个值分别称为左状态(left state)和右状态(right state),随后被用来计算通过该面的对流通量(见方程(4.18)、(4.23)、(4.38)或(4.43))。这些插值公式几乎全部(TVD格式除外)基于Van Leer的MUSCL(守恒律的单调上游中心型格式,Monotone Upstream-Centred Schemes for Conservation Laws)方法[29]。对于一般流动变量\(U\),它们为en

One possibility, which is employed by the central scheme (see next subsection), consists of linear interpolation using the same number of values to the left and to the right of the face. In other words, the interpolation is centred at the face. Discretisations based on the characteristics of the Euler equations - upwind schemes - separately interpolate flow variables from the left and the right side of the face using non-symmetric formulae. The two values, named the left and the right state, are then utilised to compute the convective flux through the face (see Eqs. (4.18), (4.23), (4.38), or (4.43)). The interpolation formulae are almost exclusively (with the exception of TVD schemes) based on Van Leer's MUSCL (Monotone Upstream-Centred Schemes for Conservation Laws) approach [29]. They read for a general flow variable \(U\)

\[\begin{aligned} U_R &= U_{I+1} - \frac{\epsilon}{4}\left[(1+\hat{\kappa})\Delta_{-} + (1-\hat{\kappa})\Delta_{+}\right] U_{I+1}\\ U_L &= U_{I}\ \;+ \frac{\epsilon}{4}\left[(1+\hat{\kappa})\Delta_{+} + (1-\hat{\kappa})\Delta_{-}\right] U_{I}\,. \end{aligned} \tag{4.46}\]

前向(\(\Delta_{+}\))与后向(\(\Delta_{-}\))差分算子定义为en

The forward (\(\Delta_{+}\)) and the backward (\(\Delta_{-}\)) difference operators are defined as

\[\begin{aligned} \Delta_{+} U_I &= U_{I+1} - U_I\\ \Delta_{-} U_I &= U_I - U_{I-1}\,. \end{aligned} \tag{4.47}\]

指标按需平移。若把节点指标\(i\)替换\(I\),上述关系式对采用对偶控制体的单元顶点格式仍然成立。参数\(\epsilon\)可取为零,得到一阶精度的上风离散。参数\(\hat{\kappa}\)决定插值的空间精度。当\(\epsilon = 1\)、\(\hat{\kappa} = -1\)时,上述插值公式(4.46)给出完全单侧的流动变量插值,在均匀网格上得到二阶精度的上风近似。\(\hat{\kappa} = 0\)对应二阶精度的上风偏置线性插值。此外,取\(\hat{\kappa} = 1/3\)可得三点插值公式,它(在有限体积框架下——参见文献[30]、[48])构成二阶上风偏置格式,其截断误差低于\(\hat{\kappa} = -1\)与\(\hat{\kappa} = 0\)的格式。最后,若指定\(\hat{\kappa} = 1\),MUSCL方法退化为纯中心格式——即变量的算术平均。实践中最常用的是\(\hat{\kappa} = 0\)与\(\hat{\kappa} = 1/3\)的格式。en

The indices are shifted as appropriate. The above relationships remain valid for a cell-vertex scheme with dual control volumes, if the node index \(i\) is substituted for \(I\). The parameter \(\epsilon\) can be set equal to zero to obtain a first-order accurate upwind discretisation. The parameter \(\hat{\kappa}\) determines the spatial accuracy of the interpolation. For \(\epsilon = 1\) and \(\hat{\kappa} = -1\), the above interpolation formulae (4.46) give a fully one-sided interpolation of the flow variables, which results in a second-order accurate upwind approximation on uniformly spaced grid. The case \(\hat{\kappa} = 0\) corresponds to a second-order accurate, upwind-biased linear interpolation. Furthermore, by setting \(\hat{\kappa} = 1/3\), we obtain a three-point interpolation formula which constitutes (in a finite volume framework - cf. Ref. [30], [48]) a second-order upwind-biased scheme with lower truncation error than the \(\hat{\kappa} = -1\) and \(\hat{\kappa} = 0\) schemes. Finally, if we specify \(\hat{\kappa} = 1\), the MUSCL approach reduces to a purely central scheme - the average of variables. The schemes with \(\hat{\kappa} = 0\) and \(\hat{\kappa} = 1/3\) are the most often used ones in practice.

当流动区域包含强梯度时,MUSCL插值(4.46)必须辅以所谓的限制器函数(limiter function)或限制器(limiter)。限制器的目的是抑制解的非物理振荡。限制器将在4.3.5小节进一步讨论。en

The MUSCL interpolation (4.46) has to be enhanced by the so-called limiter function or limiter, if the flow region contains strong gradients. The purpose of the limiter is to suppress non-physical oscillation of the solution. Limiters will be discussed further in Subsection 4.3.5.

模板(stencil)或计算分子(computational molecule)指参与残差、梯度等计算的那些单元形心或网格点的并集。例如,若分别按方程(4.15)、(4.20)或(4.35)、(4.40)对控制体各面上的通量作平均,则在二维得到5点模板,由下列单元/点组成en

Stencil or computational molecule stands for the union of those cell-centroids or grid points, which are involved in the computation of the residual, the gradient, etc. For example, if we average the fluxes at the faces of the control volume according to the Equations (4.15), (4.20), or (4.35), (4.40), respectively, we obtain in two dimensions a 5-point stencil, consisting of the cells/points

\[(I,J)\quad (I+1,J)\quad (I,J+1)\quad (I-1,J)\quad (I,J-1)\,. \tag{3}\]

图4.9:中心离散格式的模板(计算分子):(a)二维;(b)三维空间

图4.9:中心离散格式的模板(计算分子):(a)二维;(b)三维空间。图例:情形(a)中模板点为\(I,J\)、\(I+1,J\)、\(I-1,J\)、\(I,J+1\)、\(I,J-1\);情形(b)中模板点为\(I,J,K\)、\(I+1,J,K\)、\(I-1,J,K\)、\(I,J+1,K\)、\(I,J-1,K\)、\(I,J,K+1\)、\(I,J,K-1\);中心点为\(I,J\)或\(I,J,K\)。

在三维中,得到7点模板,涉及的单元/点为en

In three dimensions, a 7-point stencil results, which involves the cells/points

\[\begin{aligned} &(I,J,K)\quad (I+1,J,K)\quad (I,J+1,K)\quad (I-1,J,K)\\ &(I,J-1,K)\quad (I,J,K-1)\quad (I,J,K+1)\,. \end{aligned} \tag{4}\]

两种模板均示于图4.9。注意,在笛卡尔网格上,这对应于i、j、k方向一阶导数的二阶精度中心差分近似。因此,把采用中心差分的有限差分格式应用于控制方程的微分形式,将得到相同的结果。en

Both stencils are displayed in Fig. 4.9. Note that on a Cartesian grid this corresponds to the second-order accurate central-difference approximation of the first derivatives in i-, j-, and k-direction. Thus, a finite difference scheme, applied to the differential form of the governing equations and using the central differences, would deliver the same result.

4.3.1 Central Scheme with Artificial Dissipation 含人工耗散的中心格式[cfd-4-3-1]

与其他离散方法相比,含人工耗散的中心格式非常简单。它既容易与单元中心格式结合实现,也容易与两种单元顶点格式结合实现。因此该格式得到了非常广泛的应用。en

The central scheme with artificial dissipation is very simple compared to other discretisation methods. It is easy to implement with either the cell-centred scheme or with both cell-vertex schemes. For these reasons the scheme became very wide-spread.

中心格式的基本思想,是用面两侧守恒变量的算术平均来计算控制体面上的对流通量。由于这会导致解的奇偶失联(odd-even decoupling,即离散方程产生两个独立的解)以及激波处的过冲,为保证稳定性必须加入人工耗散(其形式与黏性通量类似)。该格式由Jameson等人[6]最先实现于欧拉方程。以作者姓氏命名,它也简称为JST格式。en

The basic idea of the central scheme is to compute the convective fluxes at a face of the control volume from the arithmetic average of the conservative variables on both sides of the face. Since this would allow for odd-even decoupling of the solution (generation of two independent solutions of the discretised equations) and for overshoots at shocks, artificial dissipation (which is similar to the viscous fluxes) has to be added for stability. The scheme was first implemented for the Euler equations by Jameson et al. [6]. Because of the names of the authors, it is also abbreviated as the JST scheme.

与上风格式等相比,中心格式在间断和边界层的分辨率方面一般较差,但计算代价要低得多。因此,人们尝试在保持数值开销较低的同时提高格式精度。例如,有改进方案用于减少边界层内的人工耗散量[31]、[32],或增强激波分辨率[33]-[35]。文献[35]中的另一个想法是利用对流通量的Jacobian矩阵,使每个守恒方程的耗散得到各自独立的缩放。这一成功的方法称为矩阵耗散格式(matrix dissipation scheme),可视为原始标量格式与上风格式之间的折中。基本格式还采用单一的、基于压力的传感器,在间断处从二阶精度切换到一阶精度,以防止流动变量的非物理振荡。文献[36]中,Jameson提出了称为SLIP(对称限制正,Symmetric Limited Positive)格式的概念,其中对每个守恒方程分别施加限制器。文献[37]简要描述了上述各种方法,并给出了无黏与黏性二维流动的比较结果。en

The central scheme is generally less accurate in the resolution of discontinuities and boundary layers than, let say, the upwind schemes. However, it is computationally considerably cheaper. Therefore, attempts were made to improve the accuracy of the scheme, while still keeping the numerical effort low. For example, improvements were devised to reduce the amount of the artificial dissipation in boundary layers [31], [32], or to enhance the shock resolution [33]-[35]. Another idea, followed in [35], is to utilise the Jacobian matrix of the convective fluxes, in order to scale the dissipation independently for each conservation equation. This successful approach is known as the matrix dissipation scheme. It can be viewed as a compromise between the original scalar scheme and the upwind schemes. The basic scheme also employs a single, pressure-based sensor to switch from second- to first-order accuracy at discontinuities to prevent non-physical oscillations of the flow variables. In [36], Jameson developed a concept called the SLIP (Symmetric Limited Positive) scheme, where a limiter is applied separately for each conservation equation. A brief description of the previous approaches and comparisons for inviscid and viscous 2-D flows was presented in [37].

Scalar Dissipation Scheme 标量耗散格式

通过控制体面的对流通量(方程(2.21))用变量的平均来近似,分别依照方程(4.16)、(4.21)、(4.36)或(4.41)。然后,为使格式稳定,在中心通量上加入人工耗散[6]、[38]。于是,面\((I+1/2,J,K)\)上的总对流通量为en

The convective fluxes (Eq. (2.21)) through a face of the control volume are approximated using the average of variables, according to the Equations (4.16), (4.21), (4.36), or (4.41), respectively. Artificial dissipation is then added to the central fluxes for stability [6], [38]. Thus, the total convective flux at face \((I+1/2,J,K)\) reads

\[(\vec{F}_c\,\Delta S)_{I+1/2,J,K} \approx \vec{F}_c(\vec{W}_{I+1/2,J,K})\,\Delta S_{I+1/2,J,K} - \vec{D}_{I+1/2,J,K}\,, \tag{4.48}\]

其中流动变量取平均为(另见图4.8)en

where the flow variables are averaged as (see also Fig. 4.8)

\[\vec{W}_{I+1/2,J,K} = \frac{1}{2}\left(\vec{W}_{I,J,K} + \vec{W}_{I+1,J,K}\right). \tag{4.49}\]

在采用对偶控制体的单元顶点格式情形,将改用节点指标\((i,j,k)\)。为简便起见,今后把\((I+1/2,J,K)\)缩写为\((I+1/2)\)。人工耗散通量由自适应的二阶与四阶差分的混合构成,它们来自一阶与三阶差分算子之和en

In the case of the cell-vertex scheme with dual control volumes, node indices \((i,j,k)\) would be used instead. For simplicity, \((I+1/2,J,K)\) will be abbreviated as \((I+1/2)\) hereafter. The artificial dissipation flux consists of a blend of adaptive second- and fourth-order differences, which result from the sum of first- and third-order difference operators

\[\vec{D}_{I+1/2} = \hat{\Lambda}^{S}_{I+1/2}\left[\epsilon^{(2)}_{I+1/2}(\vec{W}_{I+1} - \vec{W}_I) - \epsilon^{(4)}_{I+1/2}(\vec{W}_{I+2} - 3\vec{W}_{I+1} + 3\vec{W}_I - \vec{W}_{I-1})\right]. \tag{4.50}\]

由方程(4.50)可见,该格式在二维具有紧凑的9点模板,在三维为13点模板。耗散用所有坐标方向上对流通量Jacobian的谱半径之和来缩放en

From Eq. (4.50) we can see that the scheme possesses a compact 9-point stencil in two dimensions and a 13-point stencil in three dimensions. The dissipation is scaled by the sum of the spectral radii of the convective flux Jacobians in all coordinate directions

\[\hat{\Lambda}^{S}_{I+1/2} = (\hat{\Lambda}^{I}_{c})_{I+1/2} + (\hat{\Lambda}^{J}_{c})_{I+1/2} + (\hat{\Lambda}^{K}_{c})_{I+1/2}\,. \tag{4.51}\]

单元面\((I+1/2)\)处的谱半径——例如I方向(以上标\(I\)表示)——由平均得到en

The spectral radius at the cell face \((I+1/2)\), e.g., in I-direction (represented by the superscript \(I\)), results from the average

\[(\hat{\Lambda}^{I}_{c})_{I+1/2} = \frac{1}{2}\left[(\hat{\Lambda}^{I}_{c})_{I} + (\hat{\Lambda}^{I}_{c})_{I+1}\right]. \tag{4.52}\]

它用下式计算en

It is evaluated using the formula

\[\hat{\Lambda}_{c} = \left(\left|V\right| + c\right)\Delta S\,, \tag{4.53}\]

其中\(V\)为逆变量速度(contravariant velocity)(2.22),\(c\)为声速。格式用一个基于压力的传感器在激波处关闭四阶差分——在那里四阶差分会引起解的强烈振荡;该传感器同时在流场光滑区域关闭二阶差分,以把耗散降到尽可能低的水平。据此,方程(4.50)中的系数\(\epsilon^{(2)}\)与\(\epsilon^{(4)}\)定义为en

where \(V\) stands for the contravariant velocity (2.22) and \(c\) for the speed of sound, respectively. A pressure-based sensor is used to switch off the fourth-order differences at shocks, where they would lead to strong oscillation of the solution. The sensor also switches off the second-order differences in smooth parts of the flow field, in order to reduce the dissipation to the lowest possible level. Herewith, the coefficients \(\epsilon^{(2)}\) and \(\epsilon^{(4)}\) in Eq. (4.50) are defined as

\[\begin{aligned} \epsilon^{(2)}_{I+1/2} &= k^{(2)} \max(\Upsilon_I, \Upsilon_{I+1})\\ \epsilon^{(4)}_{I+1/2} &= \max\left[0,\,(k^{(4)} - \epsilon^{(2)}_{I+1/2})\right] \end{aligned} \tag{4.54}\]

其中压力传感器为en

with the pressure sensor given by

\[\Upsilon_I = \frac{\left|p_{I+1} - 2p_I + p_{I-1}\right|}{p_{I+1} + 2p_I + p_{I-1}}\,. \tag{4.55}\]

参数的典型取值为\(k^{(2)} = 1/2\)与\(1/128 \le k^{(4)} \le 1/64\)。为了减少跨越黏性剪切层的人工耗散量,可以把方程(4.50)中的缩放因子重新定义如下[31]、[32]en

Typical values of the parameters are \(k^{(2)} = 1/2\) and \(1/128 \le k^{(4)} \le 1/64\). In order to reduce the amount of artificial dissipation across a viscous shear layer, we can re-define the scaling factors in Eq. (4.50) as follows [31], [32]

\[\begin{aligned} \hat{\Lambda}^{S}_{I+1/2} &= \frac{1}{2}\left[(\phi^{I}\hat{\Lambda}^{I}_{c})_{I} + (\phi^{I}\hat{\Lambda}^{I}_{c})_{I+1}\right]\\ \hat{\Lambda}^{S}_{J+1/2} &= \frac{1}{2}\left[(\phi^{J}\hat{\Lambda}^{J}_{c})_{J} + (\phi^{J}\hat{\Lambda}^{J}_{c})_{J+1}\right]\\ \hat{\Lambda}^{S}_{K+1/2} &= \frac{1}{2}\left[(\phi^{K}\hat{\Lambda}^{K}_{c})_{K} + (\phi^{K}\hat{\Lambda}^{K}_{c})_{K+1}\right]. \end{aligned} \tag{4.56}\]

随后用它们替代方程(4.51)。依赖方向的系数\(\phi\)由以下关系给出en

These are then employed instead of Eq. (4.51). The directionally dependent coefficients \(\phi\) are given by the relations

\[\begin{aligned} \phi^{I} &= 1 + \max\left[\left(\frac{\hat{\Lambda}^{J}_{c}}{\hat{\Lambda}^{I}_{c}}\right)^{\sigma},\left(\frac{\hat{\Lambda}^{K}_{c}}{\hat{\Lambda}^{I}_{c}}\right)^{\sigma}\right]\\ \phi^{J} &= 1 + \max\left[\left(\frac{\hat{\Lambda}^{I}_{c}}{\hat{\Lambda}^{J}_{c}}\right)^{\sigma},\left(\frac{\hat{\Lambda}^{K}_{c}}{\hat{\Lambda}^{J}_{c}}\right)^{\sigma}\right]\\ \phi^{K} &= 1 + \max\left[\left(\frac{\hat{\Lambda}^{I}_{c}}{\hat{\Lambda}^{K}_{c}}\right)^{\sigma},\left(\frac{\hat{\Lambda}^{J}_{c}}{\hat{\Lambda}^{K}_{c}}\right)^{\sigma}\right]. \end{aligned} \tag{4.57}\]

参数\(\sigma\)通常取1/2或2/3。这一表述减小了沿控制体较短一侧方向的耗散项缩放,适用于较长一侧与流动方向一致的情形。en

The parameter \(\sigma\) is usually set equal to 1/2 or 2/3. This formulation decreases the scaling of the dissipation terms in the direction along the shorter side of a control volume, whose longer side is aligned with the flow.

Matrix Dissipation Scheme 矩阵耗散格式

为了通过减少数值耗散来提高精度,可以把前述JST格式修改得更像上风格式。其想法是用一个矩阵——对流通量Jacobian——代替标量值\(\hat{\Lambda}^{S}\)来缩放耗散项[35]。这样,每个方程都由相应的特征值恰当地缩放。于是,方程(4.50)变为en

In order to improve the accuracy by reducing the numerical dissipation, the preceding JST scheme can be modified to become more like an upwind scheme. The idea is to use a matrix - the convective flux Jacobian - instead of the scalar value \(\hat{\Lambda}^{S}\) to scale the dissipation terms [35]. In this way, each equation is scaled properly by the corresponding eigenvalue. Hence, the Eq. (4.50) becomes

\[\vec{D}_{I+1/2} = \left|\bar{A}_c\right|_{I+1/2}\left[\epsilon^{(2)}_{I+1/2}(\vec{W}_{I+1} - \vec{W}_I) - \epsilon^{(4)}_{I+1/2}(\vec{W}_{I+2} - 3\vec{W}_{I+1} + 3\vec{W}_I - \vec{W}_{I-1})\right]. \tag{4.58}\]

缩放矩阵对应于用特征值绝对值对角化的对流通量Jacobian\((\bar{A}_c = \partial\vec{F}_c/\partial\vec{W})\)en

The scaling matrix corresponds to the convective flux Jacobian \((\bar{A}_c = \partial\vec{F}_c/\partial\vec{W})\) diagonalised with absolute values of the eigenvalues

\[\left|\bar{A}_c\right| = \bar{T}\left|\bar{\Lambda}_c\,\Delta S\right|\bar{T}^{-1}. \tag{4.59}\]

右特征向量矩阵\((\bar{T})\)与左特征向量矩阵\((\bar{T}^{-1})\)以及特征值对角矩阵\(\bar{\Lambda}_c\)见附录A.11。在驻点和声速线处必须对特征值加以限制,以防耗散变为零。文献[35]给出了一种高效计算\(|\bar{A}_c|\)与\(\vec{W}\)乘积的方法。注意,若取\(\epsilon^{(2)} = 1/2\)、\(\epsilon^{(4)} = 0\),则得到一阶精度的完全上风格式。en

The matrices of right \((\bar{T})\) and left \((\bar{T}^{-1})\) eigenvectors as well as the diagonal matrix of the eigenvalues \(\bar{\Lambda}_c\) can be found in the Appendix A.11. The eigenvalues must be limited at stagnation points and sonic lines to prevent the dissipation from becoming zero. An efficient way of computing the product of \(|\bar{A}_c|\) with \(\vec{W}\) is provided in [35]. It should be noted that by setting \(\epsilon^{(2)} = 1/2\) and \(\epsilon^{(4)} = 0\), we obtain a first-order accurate, fully upwind scheme.

如前所述,这里的目标是发展一种精度接近上风格式、但计算开销只比标量耗散方法高约15%-20%的格式。最近,文献[37]报道了与通量向量分裂格式(CUSP与AUSM)的比较结果。en

As it was already stated before, the idea here was to develop a scheme which accuracy is close to that of upwind schemes, but which is still computationally only slightly more expensive (about 15-20%) than the scalar dissipation approach. Results of comparisons with flux-vector splitting schemes (CUSP and AUSM) were recently reported in [37].

4.3.2 Flux-Vector Splitting Schemes 通量向量分裂格式[cfd-4-3-2]

通量向量分裂方法可以视为最初等的上风格式,因为它们只考虑波的传播方向。通量向量分裂格式把对流通量向量分解为两部分——或按某些特征变量的符号,或分裂为对流部分与压力部分。著名的Van Leer通量向量分裂格式[39]属于基于特征分解的第一类。遵循第二种思路的有较新的方法,如Liou等人的对流上游分裂方法(AUSM)[40]、[41],以及Jameson的对流上游分裂压力(CUSP)格式[42]、[43]。类似的方法还有Edwards提出的低耗散通量分裂格式(LDFSS)[44],以及Rossow的基于马赫数的对流压力分裂(MAPS)格式[45]、[46]。en

The flux-vector splitting methods can be viewed as the first level of upwind schemes, since they account only for the direction of wave propagation. The flux-vector splitting schemes decompose the vector of the convective fluxes into two parts - either according to the sign of certain characteristic variables, or into a convective and a pressure part. The well-known Van Leer's flux-vector splitting scheme [39] belongs to the first category based on characteristic decomposition. The second approach is followed by more recent methods like the Advection Upstream Splitting Method (AUSM) of Liou et al. [40], [41], or the Convective Upwind Split Pressure (CUSP) scheme of Jameson [42], [43], respectively. Further similar approaches are the Low-Diffusion Flux-Splitting Scheme (LDFSS) introduced by Edwards [44], or the Mach number-based Advection Pressure Splitting (MAPS) scheme of Rossow [45], [46].

通量向量分裂格式只能在单元中心格式(4.2.1小节)或采用对偶控制体的单元顶点格式(4.2.3小节)的框架下实现。与采用标量人工耗散的中心格式相比,其优点在于数值开销只是适度增加,而激波与边界层的分辨率却好得多。不过,矩阵耗散格式(方程(4.58))也能给出精度相当的结果[37]。由于某些数值上的困难,多位研究者对基本格式(尤其是AUSM)作了大量改进,相关工作至今仍在继续。下面我们将介绍Van Leer、AUSM与CUSP格式的基础,对最重要的改进给出一些提示,并提供相应文献。en

The flux-vector splitting schemes can be implemented only in the framework of the cell-centred scheme (Subsection 4.2.1), or the cell-vertex scheme with dual control volumes (Subsection 4.2.3). Their advantage can be seen in only a moderately increased numerical effort but a much better resolution of shocks and boundary layers, as compared to the central scheme with scalar artificial dissipation. However, the matrix dissipation scheme (Eq. (4.58)), can also produce results of comparable accuracy [37]. Because of certain numerical difficulties, many modifications to the basic schemes (particularly to AUSM) were devised by various researchers and the development still continues. In the following, we shall present the basics of the Van Leer, AUSM and CUSP schemes, give some hints with respect to the most important modifications, and provide references to the corresponding literature.

Van Leer's Scheme Van Leer格式

Van Leer的通量向量分裂格式[39]基于对流通量的特征分解。该方法在贴体网格上的推广见文献[47]、[48]。对流通量被分裂为正、负两部分,即en

Van Leer's flux-vector splitting scheme [39] is based on characteristic decomposition of the convective fluxes. An extension of the approach to body-fitted grids was presented in [47], [48]. The convective flux is split into a positive and a negative part, i.e.,

\[\vec{F}_c = \vec{F}_c^{+} + \vec{F}_c^{-}\,, \tag{4.60}\]

分解依据的是垂直于控制体面的马赫数(例如在\((I+1/2)\)处——见图4.8)en

according to the Mach number normal to the face of the control volume (e.g., at \((I+1/2)\) - see Fig. 4.8)

\[(M_n)_{I+1/2} = \left(\frac{V}{c}\right)_{I+1/2}, \tag{4.61}\]

其中\(V\)为逆变量速度(2.22),\(c\)为声速。在采用对偶控制体的单元顶点格式情形,单元指标须换成节点指标。流动变量\(\rho\)、\(u\)、\(v\)、\(w\)与\(p\)的值须先按方程(4.19)或方程(4.39)插值到控制体的面上。然后,正通量用左状态计算,负通量用右状态计算。对流马赫数\((M_n)_{I+1/2}\)由以下关系得到[39]en

where \(V\) represents the contravariant velocity (2.22) and \(c\) the speed of sound, respectively. In the case of the cell-vertex scheme with dual control volumes, the cell indices have to be replaced by node indices. The values of the flow variables \(\rho\), \(u\), \(v\), \(w\), and \(p\), respectively, have to be interpolated first to the faces of the control volume correspondingly to Eq. (4.19) or Eq. (4.39). Then, the positive fluxes are computed with the left state and the negative fluxes with the right state. The advection Mach number \((M_n)_{I+1/2}\) is obtained from the relation [39]

\[(M_n)_{I+1/2} = M^{+}_{L} + M^{-}_{R}\,, \tag{4.62}\]

其中分裂马赫数定义为en

where the split Mach numbers are defined as

\[M^{+}_{L} = \begin{cases} M_L & \text{if } M_L \ge +1\\ \frac{1}{4}(M_L + 1)^2 & \text{if } |M_L| < 1\\ 0 & \text{if } M_L \le -1\,, \end{cases} \tag{4.63}\]

而en

and

\[M^{-}_{R} = \begin{cases} 0 & \text{if } M_R \ge +1\\ \frac{1}{4}(M_R - 1)^2 & \text{if } |M_R| < 1\\ M_R & \text{if } M_R \le -1\,. \end{cases} \tag{4.64}\]

马赫数\(M_L\)与\(M_R\)分别用左、右状态计算,即en

The Mach numbers \(M_L\) and \(M_R\) are evaluated using the left and right state, respectively, i.e.,

\[M_L = \frac{V_L}{c_L}\,, \quad M_R = \frac{V_R}{c_R}\,. \tag{4.65}\]

当\(|M_n| < 1\)(亚声速流动)时,正、负通量部分为en

In the case of \(|M_n| < 1\) (subsonic flow), the positive and the negative flux parts are given by

\[\vec{F}_c^{\pm} = \begin{bmatrix} f^{\pm}_{\mathrm{mass}}\\ f^{\pm}_{\mathrm{mass}}\left[n_x(-V \pm 2c)/\gamma + u\right]\\ f^{\pm}_{\mathrm{mass}}\left[n_y(-V \pm 2c)/\gamma + v\right]\\ f^{\pm}_{\mathrm{mass}}\left[n_z(-V \pm 2c)/\gamma + w\right]\\ f^{\pm}_{\mathrm{energy}} \end{bmatrix}. \tag{4.66}\]

质量与能量通量分量定义为en

The mass and energy flux components are defined as

\[\begin{aligned} f^{+}_{\mathrm{mass}} &= +\rho_L c_L\,\frac{(M_L + 1)^2}{4}\\ f^{-}_{\mathrm{mass}} &= -\rho_R c_R\,\frac{(M_R - 1)^2}{4}\\ f^{\pm}_{\mathrm{energy}} &= f^{\pm}_{\mathrm{mass}}\left\{\frac{\left[(\gamma - 1)V \pm 2c\right]^2}{2(\gamma^2 - 1)} + \frac{u^2 + v^2 + w^2 - V^2}{2}\right\}_{L/R}. \end{aligned} \tag{4.67}\]

对于超声速流动,即\(|M_n| \ge 1\),通量按下式计算en

For supersonic flow, i.e., for \(|M_n| \ge 1\), the fluxes are evaluated from

\[\begin{aligned} \vec{F}_c^{+} = \vec{F}_c\,, \quad \vec{F}_c^{-} = 0 \quad &\text{if } M_n \ge +1\\ \vec{F}_c^{+} = 0\,, \quad \vec{F}_c^{-} = \vec{F}_c \quad &\text{if } M_n \le -1\,. \end{aligned} \tag{4.68}\]

左、右状态的计算一般遵循MUSCL方法[29],即方程(4.46)。若流场含有激波等间断,高阶格式\(\hat{\kappa} = -1\)、\(\hat{\kappa} = 0\)与\(\hat{\kappa} = 1/3\)都需要限制器。更多细节见4.3.5小节。en

The evaluation of the left and right state follows generally the MUSCL approach [29], which is given by Eqs. (4.46). The higher order schemes \(\hat{\kappa} = -1\), \(\hat{\kappa} = 0\) and \(\hat{\kappa} = 1/3\), respectively, require a limiter if the flow field contains discontinuities like shocks. More details are provided in Subsection 4.3.5.

Van Leer的通量向量分裂格式在欧拉方程情形下表现非常好。但用Navier-Stokes方程进行的若干研究[49]、[50]表明,动量方程与能量方程中的分裂误差会抹平边界层,并导致驻点温度与壁面温度不准确。为此,文献[51]建议对垂直于边界层方向的动量通量作修改;文献[52]对能量通量提出了类似的补救措施。两项修改合在一起可以消除分裂误差,从而显著提高解的精度[53]。en

The flux-vector splitting scheme of Van Leer performs very well in the case of the Euler equations. But several investigations [49], [50], carried out with the Navier-Stokes equations revealed that splitting errors in the momentum and the energy equations smear the boundary layers and also lead to inaccurate stagnation and wall temperatures. A modification to the momentum flux in the direction normal to the boundary layer was therefore suggested in Ref. [51]. A similar remedy for the energy flux was proposed in Ref. [52]. Both modifications together remove the splitting errors, and hence they improve the solution accuracy considerably [53].

AUSM

对流上游分裂方法(AUSM)由Liou与Steffen[40]以及Liou[54]提出。随后经Wada与Liou[55]修改并更名为AUSMD/V。最后,Liou[41]、[56]提出了称为AUSM+的改进版本。en

The Advection Upstream Splitting Method (AUSM) was introduced by Liou and Steffen [40], and Liou [54]. It was subsequently modified by Wada and Liou [55] and renamed as AUSMD/V. Finally, an improved version termed AUSM+ was presented by Liou [41], [56].

该方法的基本思想基于这样的观察:对流通量向量(2.21)由两个物理上截然不同的部分组成,即对流部分与压力部分en

The underlying idea of the approach is based on the observation that the vector of convective fluxes (2.21) consists of two physically distinct parts, namely the convective and the pressure part

\[\vec{F}_c = V\begin{bmatrix} \rho\\ \rho u\\ \rho v\\ \rho w\\ \rho H \end{bmatrix} + \begin{bmatrix} 0\\ n_x p\\ n_y p\\ n_z p\\ 0 \end{bmatrix}. \tag{4.69}\]

方程(4.69)中的第一项代表由逆变量速度\(V\)输运的标量量;相比之下,压力项由声波速度支配。现在的想法是:根据\(V\)的符号(即使在亚声速流动中)以纯上风方式离散对流项,即取左状态或右状态之一;而压力项在亚声速情形下同时包含两个状态,只有在超声速流动中才变为完全上风。en

The first term in Eq. (4.69) represents scalar quantities, which are convected by the contravariant velocity \(V\). By contrast, the pressure term is governed by the acoustic wave speed. The idea now is to discretise the convective term in purely upwind manner by taking either the left or the right state, depending on the sign of \(V\) (even for subsonic flow). On the other hand, the pressure term includes both states in the subsonic case. It becomes fully upwind only for a supersonic flow.

遵循文献[40]的基本AUSM,我们由方程(4.61)引入对流马赫数\((M_n)_{I+1/2}\)。据此,可以把控制体面\((I+1/2)\)或\((i+1/2)\)处的对流通量改写为en

Following the basic AUSM from [40], we introduce an advection Mach number \((M_n)_{I+1/2}\) from Eq. (4.61). Herewith, we can recast the convective flux at the face \((I+1/2)\), or \((i+1/2)\) of the control volume, respectively, into

\[(\vec{F}_c)_{I+1/2} = (M_n)_{I+1/2}\begin{bmatrix} \rho c\\ \rho c u\\ \rho c v\\ \rho c w\\ \rho c H \end{bmatrix}_{L/R} + \begin{bmatrix} 0\\ n_x p\\ n_y p\\ n_z p\\ 0 \end{bmatrix}_{I+1/2}, \tag{4.70}\]

其中en

where

\[(\bullet)_{L/R} = \begin{cases} (\bullet)_L & \text{if } M_{I+1/2} \ge 0\\ (\bullet)_R & \text{otherwise.} \end{cases} \tag{4.71}\]

与Van Leer通量向量分裂格式类似,对流马赫数按关系式(4.62)与(4.63)-(4.65)由左、右分裂马赫数之和求出。左、右状态(流动量:\(\rho\)、\(u\)、\(v\)、\(w\)、\(p\)、\(H\))的计算同样依据方程(4.19)或方程(4.39)分别插值到控制体的面上,插值遵循方程(4.46)给出的MUSCL方法[29]。所有高阶MUSCL格式(\(\hat{\kappa} = -1\)、\(\hat{\kappa} = 0\)与\(\hat{\kappa} = 1/3\))在流场包含激波等强梯度时都需要限制器。更多细节请参阅4.3.5小节。en

Similar to Van Leer's flux-vector splitting scheme, the advection Mach number is evaluated as a sum of the left and right split Mach numbers according to the relations (4.62) and (4.63)-(4.65). The computation of the left and right state (flow quantities: \(\rho\), \(u\), \(v\), \(w\), \(p\), \(H\)) is based again on a separate interpolation to the faces of the control volume according to Eq. (4.19) or Eq. (4.39). The interpolation follows the MUSCL methodology [29], as it is given in Eq. (4.46). All higher-order MUSCL schemes (\(\hat{\kappa} = -1\), \(\hat{\kappa} = 0\), and \(\hat{\kappa} = 1/3\)) require a limiter, if the flow field contains strong gradients like shocks. Please refer to Subsection 4.3.5 for more details.

控制体面\((I+1/2)\)处的压力由分裂式[40]得到en

The pressure at the face \((I+1/2)\) of the control volume is obtained from the splitting [40]

\[p_{I+1/2} = p^{+}_{L} + p^{-}_{R} \tag{4.72}\]

其中分裂压力由文献[39]给出en

with the split pressures given by [39]

\[p^{+}_{L} = \begin{cases} p_L & \text{if } M_L \ge +1\\ \frac{p_L}{4}(M_L + 1)^2(2 - M_L) & \text{if } |M_L| < 1\\ 0 & \text{if } M_L \le -1\,, \end{cases} \tag{4.73}\]

而en

and

\[p^{-}_{R} = \begin{cases} 0 & \text{if } M_R \ge +1\\ \frac{p_R}{4}(M_R - 1)^2(2 + M_R) & \text{if } |M_R| < 1\\ p_R & \text{if } M_R \le -1\,. \end{cases} \tag{4.74}\]

当\(|M_{L/R}| < 1\)时,也可以采用如下低阶展开en

It is also possible to use the following lower-order expansion for \(|M_{L/R}| < 1\)

\[p^{\pm}_{L/R} = \frac{p_{L/R}}{2}\left(1 \pm M_{L/R}\right). \tag{4.75}\]

应当指出,AUSM也可以写成如下形式en

It should be noted that we can write AUSM also in the form

\[\begin{aligned} (\vec{F}_c)_{I+1/2} = {}& \frac{1}{2}(M_n)_{I+1/2}\left\{\begin{bmatrix} \rho c\\ \rho c u\\ \rho c v\\ \rho c w\\ \rho c H \end{bmatrix}_{L} + \begin{bmatrix} \rho c\\ \rho c u\\ \rho c v\\ \rho c w\\ \rho c H \end{bmatrix}_{R}\right\}\\ &- \frac{1}{2}\left|(M_n)_{I+1/2}\right|\left\{\begin{bmatrix} \rho c\\ \rho c u\\ \rho c v\\ \rho c w\\ \rho c H \end{bmatrix}_{R} - \begin{bmatrix} \rho c\\ \rho c u\\ \rho c v\\ \rho c w\\ \rho c H \end{bmatrix}_{L}\right\}\\ &+ \begin{bmatrix} 0\\ n_x(p^{+}_{L} + p^{-}_{R})\\ n_y(p^{+}_{L} + p^{-}_{R})\\ n_z(p^{+}_{L} + p^{-}_{R})\\ 0 \end{bmatrix}. \tag{4.76} \end{aligned}\]

方程(4.76)右端第一项代表左、右状态的马赫数加权平均——分别类似于通量平均方程(4.15)、(4.20)或(4.35)、(4.40)。第二项具有耗散性质,由标量值\(|(M_n)_{I+1/2}|\)缩放。en

The first term on the right-hand side of the above Eq. (4.76) represents a Mach number-weighted average of the left and right state - similar to the average of fluxes Eq. (4.15), (4.20) or Eq. (4.35), (4.40), respectively. The second term has a dissipative character. It is scaled by the scalar value \(|(M_n)_{I+1/2}|\).

实践证明,AUSM能清晰分辨强激波,并给出精确的边界层结果。然而,人们发现原始AUSM[40]、[54]在激波处以及流动与网格对齐的情形会产生局部压力振荡[57]。因此文献[57]、[58]建议在激波处切换到Van Leer格式。当对流马赫数\((M_n)_{I+1/2}\)趋于零时,方程(4.76)中的耗散项也趋于零,因而任何扰动都无法被格式阻尼。为解决流动对齐问题,文献[57]建议如下修改耗散项的缩放en

AUSM proved to deliver a crisp resolution of strong shocks and accurate results for boundary layers. However, the original AUSM [40], [54] was found to generate local pressure oscillations at shocks and in cases where the flow is aligned with the grid [57]. In [57], [58] it was therefore suggested to switch at shocks to Van Leer's scheme. When the advection Mach number \((M_n)_{I+1/2}\) tends to zero, the dissipation term in Eq. (4.76) will approach zero as well. Thus, any disturbances cannot be damped by the scheme. In order to solve the flow alignment problem, it was proposed in [57] to modify the scaling of the dissipation term as follows

\[\left|(M_n)_{I+1/2}\right| = \begin{cases} \left|(M_n)_{I+1/2}\right| & \text{if } \left|(M_n)_{I+1/2}\right| > \delta\\ \dfrac{(M_n)^2_{I+1/2} + \delta^2}{2\delta} & \text{if } \left|(M_n)_{I+1/2}\right| \le \delta\,, \end{cases} \tag{4.77}\]

其中\(\delta\)是一个小值\((0 < \delta \le 0.5)\)。这样,数值耗散总是足够的。为了保持AUSM对边界层的精度,可以按照与中心格式方程(4.57)相同的思路,在壁面法向减小参数\(\delta\)。文献[41]、[56]针对激波附近更好的表现提出了基本AUSM的进一步改进,称为AUSM+。这些修改包括新的马赫数分裂与压力分裂,分别取代关系式(4.63)、(4.64)与(4.73)、(4.74)。en

where \(\delta\) is a small value \((0 < \delta \le 0.5)\). Hence, there will always be a sufficient amount of numerical dissipation. In order to retain the accuracy of AUSM for boundary layers, the parameter \(\delta\) could be reduced in the wall normal direction using the same idea as given for the central scheme by Eq. (4.57). Further improvements of the basic AUSM, with respect to better behaviour in the vicinity of shocks, was presented in [41], [56] as AUSM+. The modifications consist of new Mach and pressure splittings, which replace the relations (4.63), (4.64) and (4.73), (4.74), respectively.

CUSP Scheme CUSP格式

对流上游分裂压力(CUSP)格式的概念与AUSM十分相似。不过,CUSP方法的优点是可以表述为通量平均(但不像AUSM那样加权)减去一个耗散项。这一特点对于在显式混合多步格式中的实现至关重要。此外,由于缩放因子与AUSM不同,CUSP格式在流动对齐情形下表现更为有利。CUSP格式由Jameson[42]、[59]、[60]提出,随后由Tatsumi等人[43]、[61]修改。它既可在单元中心型空间离散中实现,也可在(单元顶点)对偶控制体型空间离散中实现。en

The concept of the Convective Upwind Split Pressure (CUSP) scheme is quite similar to that of AUSM. However, the CUSP approach has the advantage to be formulated as an average of fluxes (but without weighting like within AUSM) minus a dissipation term. This feature is crucial for the implementation in an explicit, hybrid multistage scheme. Furthermore, because of the different scaling factors as compared to AUSM, the CUSP scheme behaves more favourably in the case of flow alignment. The CUSP scheme was introduced by Jameson [42], [59], [60], and subsequently modified by Tatsumi et al. [43], [61]. It can be implemented either within the cell-centred or the (cell-vertex) dual control-volume type of spatial discretisation.

通过控制体面的对流通量(方程(2.21))用通量的算术平均近似,分别依照方程(4.15)、(4.20)、(4.35)或(4.40)。然后,为使格式稳定,从中心通量中减去耗散项。于是,面\((I+1/2)\)处的总对流通量为en

The convective fluxes (Eq. (2.21)) through a face of the control volume are approximated using the arithmetic average of fluxes according to the Equations (4.15), (4.20), (4.35), or (4.40), respectively. The dissipation term is then subtracted from the central fluxes for stabilisation. Thus, the total convective fluxes at the face \((I+1/2)\) read

\[(\vec{F}_c)_{I+1/2} = \frac{1}{2}\left[\vec{F}_c(\vec{W}_R) + \vec{F}_c(\vec{W}_L)\right] - \vec{D}_{I+1/2}. \tag{4.78}\]

在对偶控制体离散的情形,则相应使用\((i+1/2)\)。耗散项由状态向量之差与通量向量之差的线性组合构成,可表示为en

In the case of the dual control-volume discretisation, \((i+1/2)\) would apply instead. The dissipation term, which is composed of a linear combination of the differences of the state and the flux vector, can be expressed as

\[\begin{aligned} \vec{D}_{I+1/2} = {}& \frac{1}{2}(\alpha^{*}c)_{I+1/2}\left\{\begin{bmatrix} \rho\\ \rho u\\ \rho v\\ \rho w\\ \rho\phi \end{bmatrix}_{R} - \begin{bmatrix} \rho\\ \rho u\\ \rho v\\ \rho w\\ \rho\phi \end{bmatrix}_{L}\right\}\\ &+ \frac{1}{2}\beta_{I+1/2}\left\{\begin{bmatrix} \rho V\\ \rho uV + n_x p\\ \rho vV + n_y p\\ \rho wV + n_z p\\ \rho HV \end{bmatrix}_{R} - \begin{bmatrix} \rho V\\ \rho uV + n_x p\\ \rho vV + n_y p\\ \rho wV + n_z p\\ \rho HV \end{bmatrix}_{L}\right\}. \tag{4.79} \end{aligned}\]

方程(4.79)中的\(\phi\)项有两种选择:或取总能量\(E\),或取总焓\(H\)。第一种情形称为E-CUSP格式[62],第二种相应称为H-CUSP格式。\(\phi = H\)的表述保持总焓不变[43],因而适用于无黏流动。左(\(L\))、右(\(R\))状态的计算与MUSCL方法[29]类似,采用限制插值(4.118)-(4.121)。方程(4.79)中的两个因子\(\alpha^{*}c\)与\(\beta\)定义为en

There are two choices for the term \(\phi\) in Eq. (4.79). Either, \(\phi\) is set equal to the total energy \(E\), or it is set to the total enthalpy \(H\). In the first case we speak of the E-CUSP scheme [62], the second choice is consequently called the H-CUSP scheme. The formulation with \(\phi = H\) preserves the total enthalpy [43] and is therefore suitable for inviscid flows. The left (\(L\)) and right (\(R\)) state is evaluated similarly to the MUSCL approach [29], using the limited interpolation (4.118)-(4.121). The two factors \(\alpha^{*}c\) and \(\beta\) in Eq. (4.79) are defined as

\[\alpha^{*}c = \begin{cases} |V| & \text{if } \beta = 0\\ -(1 + \beta)\Lambda^{-} & \text{if } \beta > 0 \text{ and } 0 < M_n < 1\\ +(1 - \beta)\Lambda^{+} & \text{if } \beta < 0 \text{ and } -1 < M_n < 0\\ 0 & \text{if } |M_n| \ge 1 \end{cases} \tag{4.80}\]

而en

and

\[\beta = \begin{cases} +\max\left(0,\,\dfrac{V + \Lambda^{-}}{V - \Lambda^{-}}\right) & \text{if } 0 \le M_n < 1\\ -\max\left(0,\,\dfrac{V + \Lambda^{+}}{V - \Lambda^{+}}\right) & \text{if } -1 < M_n < 0\\ \mathrm{sign}(M_n) & \text{if } |M_n| \ge 1 \end{cases} \tag{4.81}\]

其中\(M_n = V/c\)。上述公式(4.80)与(4.81)中的逆变量速度\(V\)由速度分量的算术平均计算,即en

with \(M_n = V/c\). The contravariant velocity \(V\) in the above formulae (4.80) and (4.81) is computed from the arithmetic mean of the velocity components, i.e.,

\[V_{I+1/2} = \frac{1}{2}\left[(u_I + u_{I+1})n_x + (v_I + v_{I+1})n_y + (w_I + w_{I+1})n_z\right]. \tag{4.82}\]

计算\(M_n\)所用的声速\(c\)同样由算术平均量得到。方程(4.80)、(4.81)中的正、负特征值\(\Lambda^{+}\)与\(\Lambda^{-}\)是所谓Roe矩阵(Roe matrix)[63]的特征值,Roe矩阵将在4.3.3小节讨论。特征值为[60]en

The speed of sound \(c\) in the evaluation of \(M_n\) is also obtained from arithmetically averaged quantities. The positive and negative eigenvalues \(\Lambda^{+}\) and \(\Lambda^{-}\) in Eqs. (4.80), (4.81) are those of the so-called Roe matrix [63], which will be discussed in the Subsection 4.3.3. The eigenvalues are given by [60]

\[\Lambda^{\pm} = \frac{\gamma + 1}{2\gamma}\tilde{V} \pm \sqrt{\left(\frac{\gamma - 1}{2\gamma}\tilde{V}\right)^2 + \frac{\tilde{c}^2}{\gamma}}\,, \tag{4.83}\]

其中\(\tilde{V}\)表示逆变量速度,\(\gamma\)为比热比,\(\tilde{c}\)表示声速。方程(4.83)中的流动变量须在控制体面上计算,采用所谓的Roe平均(Roe averages)[63]得到en

where \(\tilde{V}\) denotes the contravariant velocity, \(\gamma\) is the ratio of specific heat coefficients and \(\tilde{c}\) stands for the speed of sound. The flow variables in Eq. (4.83), which have to be evaluated at the faces of the control volumes, are obtained using the so-called Roe averages [63]

\[\begin{aligned} \tilde{u}_{I+1/2} &= \frac{u_L\sqrt{\rho_L} + u_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{v}_{I+1/2} &= \frac{v_L\sqrt{\rho_L} + v_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{w}_{I+1/2} &= \frac{w_L\sqrt{\rho_L} + w_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{H}_{I+1/2} &= \frac{H_L\sqrt{\rho_L} + H_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{c}_{I+1/2} &= \sqrt{(\gamma - 1)\left(\tilde{H} - \frac{\tilde{u}^2 + \tilde{v}^2 + \tilde{w}^2}{2}\right)_{I+1/2}}\\ \tilde{V}_{I+1/2} &= \tilde{u}_{I+1/2}n_x + \tilde{v}_{I+1/2}n_y + \tilde{w}_{I+1/2}n_z\,. \end{aligned} \tag{4.84}\]

因子\(\alpha^{*}c\)与\(\beta\)的定义使得:对超声速流动,对流通量完全上风,即\(\alpha^{*}c = 0\)且\(\beta = \mathrm{sign}(M_n)\);而在亚声速流动(\(\beta = 0\))中,耗散由\(|V|\)缩放。这对黏性层的计算是一个理想的性质。在大长宽比单元的情形,为保持稳健性,显式时间推进格式通常需要沿单元较长一侧方向增大数值耗散。这可以通过采用类似方程(4.57)的谱半径之比来实现。更多细节见文献[37],该文献还包含CUSP格式与标量及矩阵人工耗散格式(4.3.1小节)的比较。en

The factors \(\alpha^{*}c\) and \(\beta\) are defined such that full upwinding of the convective fluxes results for supersonic flow, i.e., \(\alpha^{*}c = 0\) and \(\beta = \mathrm{sign}(M_n)\). On the other hand, in subsonic flow (when \(\beta = 0\)) the dissipation is scaled by \(|V|\). This is a desirable property for the computation of viscous layers. In cases of large aspect ratio cells, explicit time-stepping schemes usually require increased numerical dissipation in the direction of the longer cell side in order to stay robust. This can be accomplished by employing ratios of the spectral radii similar to Eq. (4.57). More details can be found in Ref. [37], which also contains comparisons between the CUSP scheme and the scalar as well as the matrix artificial dissipation (Subsection 4.3.1) scheme.

把方程(4.84)的Roe平均换成算术平均、方程(4.83)的特征值换成\(\Lambda^{\pm} = V \pm c\),可以大大简化CUSP格式的实现。引入定义en

The implementation of the CUSP scheme can be considerably simplified by replacing the Roe averages from Eq. (4.84) by arithmetic averages and the eigenvalues from Eq. (4.83) by \(\Lambda^{\pm} = V \pm c\). Introducing the definition

\[\alpha^{*}c = \alpha c - \beta V\,, \tag{4.85}\]

修改后格式的因子为[60]、[43]en

the factors of the modified scheme read [60], [43]

\[\alpha = \begin{cases} |M_n| & \text{if } |M_n| \ge \delta\\ \dfrac{M_n^2 + \delta^2}{2\delta} & \text{if } |M_n| < \delta\,, \end{cases} \tag{4.86}\]

而en

and

\[\beta = \begin{cases} \max(0,\, 2M_n - 1) & \text{if } 0 \le M_n < 1\\ \min(0,\, 2M_n + 1) & \text{if } -1 < M_n < 0\\ \mathrm{sign}(M_n) & \text{if } |M_n| \ge 1\,. \end{cases} \tag{4.87}\]

\(M_n = V/c\)中的逆变量速度仍按方程(4.82)计算。方程(4.86)中的参数\(\delta\)意在防止耗散在驻点处消失,但这似乎并不总是必要。上述简化得到计算上非常高效的格式,不过与采用Roe平均的原始表述相比,激波分辨率略有下降。en

The contravariant velocity in \(M_n = V/c\) is still computed as indicated in Eq. (4.82). The parameter \(\delta\) in Eq. (4.86) is intended to prevent the dissipation from disappearing at stagnation points, but this does not seem to be always necessary. The above simplifications lead to a computationally very efficient scheme, however the shock resolution is slightly reduced as compared to the original formulation with Roe averages.

4.3.3 Flux-Difference Splitting Schemes 通量差分分裂格式[cfd-4-3-3]

通量差分分裂格式通过求解黎曼(激波管)问题,由(一般不连续的)左、右状态计算控制体面上的对流通量。这一思想最早由Godunov[64]提出。与通量向量分裂格式不同,通量差分分裂不仅考虑波(信息)的传播方向,还考虑波本身。为了降低Godunov精确求解黎曼问题格式的计算量,人们发展了近似黎曼求解器,例如Osher等人[65]与Roe[63]的工作。其中,Roe方法因其在边界层流动中的高精度和良好的激波分辨率而应用较多。因此,下一小节将更详细地介绍Roe求解器。en

The flux-difference splitting schemes evaluate the convective fluxes at a face of the control volume from the (in general discontinuous) left and right state by solving the Riemann (shock tube) problem. The idea was first introduced by Godunov [64]. In contrast to the flux-vector splitting schemes, the flux-difference splitting considers not only the direction of wave (information) propagation, but also the waves themselves. In order to reduce the computational effort of Godunov's scheme for the exact solution of the Riemann problem, approximate Riemann solvers were developed, e.g., by Osher et al. [65] and by Roe [63]. In particular, Roe's method is applied quite often because of its high accuracy in boundary layer flows and good resolution of shocks. Therefore, the Roe solver shall be presented in more detail in the following subsection.

Roe Upwind Scheme Roe上风格式

Roe近似黎曼求解器既可在单元中心格式框架下实现,也可在对偶控制体格式框架下实现。它基于把控制体一个面上的通量差分解为若干波贡献之和,同时保证欧拉方程的守恒性质。在面\((I+1/2)\)或\((i+1/2)\)上,该差分表示为[63]en

Roe's approximate Riemann solver can be implemented either in the framework of the cell-centred scheme or the dual control-volume scheme. It is based on the decomposition of the flux difference over a face of the control volume into a sum of wave contributions, while ensuring the conservation properties of the Euler equations. On the face \((I+1/2)\) or \((i+1/2)\), respectively, the difference is expressed as [63]

\[(\vec{F}_c)_R - (\vec{F}_c)_L = (\bar{A}_{Roe})_{I+1/2}(\vec{W}_R - \vec{W}_L). \tag{4.88}\]

在方程(4.88)中,\(\bar{A}_{Roe}\)表示所谓的Roe矩阵(Roe matrix),\(L\)与\(R\)分别表示左、右状态(见图4.8)。Roe矩阵与对流通量Jacobian\(\bar{A}_c\)(见附录A.9)完全相同,只是流动变量换成了所谓的Roe平均(Roe-averaged)变量。若Roe平均由左、右状态按以下公式计算[63]、[66],则方程(4.88)中的通量差分是精确的en

In the above Eq. (4.88), \(\bar{A}_{Roe}\) denotes the so-called Roe matrix, and \(L\) or \(R\) the left and right state (see Fig. 4.8), respectively. The Roe matrix is identical to the convective flux Jacobian \(\bar{A}_c\) (see Appendix A.9), where the flow variables are replaced by the so-called Roe-averaged variables. The flux difference in Eq. (4.88) is exact, if the Roe's averages are computed from the left and the right state by the following formulae [63], [66]

\[\begin{aligned} \tilde{\rho} &= \sqrt{\rho_L\rho_R}\\ \tilde{u} &= \frac{u_L\sqrt{\rho_L} + u_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{v} &= \frac{v_L\sqrt{\rho_L} + v_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{w} &= \frac{w_L\sqrt{\rho_L} + w_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{H} &= \frac{H_L\sqrt{\rho_L} + H_R\sqrt{\rho_R}}{\sqrt{\rho_L} + \sqrt{\rho_R}}\\ \tilde{c} &= \sqrt{(\gamma - 1)\left(\tilde{H} - \tilde{q}^2/2\right)}\\ \tilde{V} &= \tilde{u}n_x + \tilde{v}n_y + \tilde{w}n_z\\ \tilde{q}^2 &= \tilde{u}^2 + \tilde{v}^2 + \tilde{w}^2\,. \end{aligned} \tag{4.89}\]

把Roe矩阵的对角化形式\(\bar{A}_{Roe} = \bar{T}\bar{\Lambda}_c\bar{T}^{-1}\)代入方程(4.88),可以更清楚地看出Roe格式中的波分解en

We can make the decomposition into waves in Roe's scheme clearer when we insert the diagonalisation of the Roe matrix, i.e., \(\bar{A}_{Roe} = \bar{T}\bar{\Lambda}_c\bar{T}^{-1}\), into the Eq. (4.88)

\[(\vec{F}_c)_R - (\vec{F}_c)_L = \bar{T}\bar{\Lambda}_c(\vec{C}_R - \vec{C}_L)\,. \tag{4.90}\]

左特征向量矩阵\((\bar{T}^{-1})\)、右特征向量矩阵\((\bar{T})\)以及特征值对角矩阵\((\bar{\Lambda}_c)\)都用Roe平均(4.89)计算。在方程(4.90)中,特征变量\(\vec{C}\)代表波幅,特征值\(\bar{\Lambda}_c\)是近似黎曼问题相应的波速,而右特征向量就是波本身。en

The matrix of left \((\bar{T}^{-1})\) and right \((\bar{T})\) eigenvectors, as well as the diagonal matrix of eigenvalues \((\bar{\Lambda}_c)\) are evaluated using Roe's averaging (4.89). In the above Eq. (4.90), the characteristic variables \(\vec{C}\) represent the wave amplitudes, the eigenvalues \(\bar{\Lambda}_c\) are the associated wave speeds of the approximate Riemann problem, and finally the right eigenvectors are the waves themselves.

根据以上讨论,控制体各面上的对流通量按下式计算[63]en

Following from the previous discussion, the convective fluxes are evaluated at the faces of a control volume faces according to the formula [63]

\[(\vec{F}_c)_{I+1/2} = \frac{1}{2}\left[\vec{F}_c(\vec{W}_R) + \vec{F}_c(\vec{W}_L) - \left|\bar{A}_{Roe}\right|_{I+1/2}(\vec{W}_R - \vec{W}_L)\right]. \tag{4.91}\]

\(|\bar{A}_{Roe}|\)与左、右状态之差的乘积可以高效地计算如下en

The product of \(|\bar{A}_{Roe}|\) and the difference of the left and right state can be efficiently evaluated as follows

\[\left|\bar{A}_{Roe}\right|(\vec{W}_R - \vec{W}_L) = \left|\Delta\vec{F}_1\right| + \left|\Delta\vec{F}_{2,3,4}\right| + \left|\Delta\vec{F}_5\right|, \tag{4.92}\]

其中en

where

\[\left|\Delta\vec{F}_1\right| = \left|\tilde{V} - \tilde{c}\right|\left(\frac{\Delta p - \tilde{\rho}\tilde{c}\Delta V}{2\tilde{c}^2}\right)\begin{bmatrix} 1\\ \tilde{u} - \tilde{c}n_x\\ \tilde{v} - \tilde{c}n_y\\ \tilde{w} - \tilde{c}n_z\\ \tilde{H} - \tilde{c}\tilde{V} \end{bmatrix} \tag{4.93}\]
\[\begin{aligned} \left|\Delta\vec{F}_{2,3,4}\right| = {}& \left|\tilde{V}\right|\left\{\left(\Delta\rho - \frac{\Delta p}{\tilde{c}^2}\right)\begin{bmatrix} 1\\ \tilde{u}\\ \tilde{v}\\ \tilde{w}\\ \tilde{q}^2/2 \end{bmatrix}\right.\\ &\left.+ \tilde{\rho}\begin{bmatrix} 0\\ \Delta u - \Delta V n_x\\ \Delta v - \Delta V n_y\\ \Delta w - \Delta V n_z\\ \tilde{u}\Delta u + \tilde{v}\Delta v + \tilde{w}\Delta w - \tilde{V}\Delta V \end{bmatrix}\right\} \tag{4.94} \end{aligned}\]
\[\left|\Delta\vec{F}_5\right| = \left|\tilde{V} + \tilde{c}\right|\left(\frac{\Delta p + \tilde{\rho}\tilde{c}\Delta V}{2\tilde{c}^2}\right)\begin{bmatrix} 1\\ \tilde{u} + \tilde{c}n_x\\ \tilde{v} + \tilde{c}n_y\\ \tilde{w} + \tilde{c}n_z\\ \tilde{H} + \tilde{c}\tilde{V} \end{bmatrix}. \tag{4.95}\]

跳跃条件定义为\(\Delta(\bullet) = (\bullet)_R - (\bullet)_L\),Roe平均变量由方程(4.89)给出。en

The jump condition is defined as \(\Delta(\bullet) = (\bullet)_R - (\bullet)_L\) and the Roe-averaged variables are given in Eq. (4.89), respectively.

左、右状态用MUSCL格式[29]确定,即方程(4.46)。若流场存在任何间断,所有高阶格式(\(\hat{\kappa} = -1\)、\(\hat{\kappa} = 0\)与\(\hat{\kappa} = 1/3\))都必须辅以限制器(4.3.5小节)。en

The left and the right state are determined using the MUSCL scheme [29], which is given in Eq. (4.46). All higher-order schemes (\(\hat{\kappa} = -1\), \(\hat{\kappa} = 0\), and \(\hat{\kappa} = 1/3\)) have to be supplemented by limiters (Subsection 4.3.5), if the flow field contains any discontinuities.

由于方程(4.88)的构造,Roe近似黎曼求解器在定常膨胀情形会产生非物理的膨胀激波,此时\((\vec{F}_c)_L = (\vec{F}_c)_R\)但\(\vec{W}_L \ne \vec{W}_R\)。此外,可能出现所谓的carbuncle现象(“红玉”现象),即扰动沿滞止线在强弓形激波前增长[67]、[68];另见文献[69]的讨论。其内在困难在于原始格式不能识别声速点。为解决这一问题,特征值的模\(|\bar{\Lambda}_c| = |\tilde{V} \pm \tilde{c}|\)用Harten熵修正(entropy correction)[70]、[71]加以修改en

Because of the formulation in Eq. (4.88), Roe's approximate Riemann solver will produce an unphysical expansion shock in the case of stationary expansion, for which \((\vec{F}_c)_L = (\vec{F}_c)_R\) but \(\vec{W}_L \ne \vec{W}_R\). Furthermore, the so-called carbuncle phenomenon may occur, where a perturbation grows ahead of a strong bow shock along the stagnation line [67], [68]. See also the discussion in Ref. [69]. The underlying difficulty is that the original scheme does not recognise the sonic point. In order to solve this problem, the modulus of the eigenvalues \(|\bar{\Lambda}_c| = |\tilde{V} \pm \tilde{c}|\) is modified using Harten's entropy correction [70], [71]

\[\left|\Lambda_c\right| = \begin{cases} \left|\Lambda_c\right| & \text{if } |\Lambda_c| > \delta\\ \dfrac{\Lambda_c^2 + \delta^2}{2\delta} & \text{if } |\Lambda_c| \le \delta\,, \end{cases} \tag{4.96}\]

其中\(\delta\)是一个小值,可方便地取为当地声速的某一分数(例如1/10)。为防止线性波\(|\Delta\vec{F}_{2,3,4}|\)在\(\tilde{V} \rightarrow 0\)时消失(例如在驻点或网格对齐流动处),上述修正也可应用于\(|\tilde{V}|\)。与中心格式或通量向量分裂格式相比,Roe求解器的一个明显缺点出现在真实气体模拟中:Roe矩阵与平均必须相应改变,这可能变得相当复杂。平衡与非平衡真实气体流动的公式示例可在文献[72]-[75]及其引用的文献中找到。文献[76]最近描述了Roe格式对任意可压缩与不可压缩流体的实现。en

where \(\delta\) is a small value, which can be conveniently set equal to some fraction (e.g., 1/10) of the local speed of sound. In order to prevent the linear waves \(|\Delta\vec{F}_{2,3,4}|\) from disappearing for \(\tilde{V} \rightarrow 0\) (e.g., at stagnation points or for grid-aligned flow), the above modification can also be applied to \(|\tilde{V}|\). A clear disadvantage of the Roe solver as compared to the central scheme or to the flux-vector splitting schemes shows up for a real gas simulation. Namely, the Roe matrix and averaging have to be changed correspondingly, which may become quite complicated. The reader may find examples of formulations for equilibrium as well as non-equilibrium real gas flows in [72]-[75] and in the references cited therein. An implementation of Roe's scheme for arbitrary compressible and incompressible fluids was recently described in Ref. [76].

4.3.4 Total Variation Diminishing Schemes 总变差减小(TVD)格式[cfd-4-3-4]

总变差减小(TVD)格式的思想最早由Harten[77]提出。TVD格式基于旨在防止流动解中产生新极值的概念。TVD格式的基本条件是:解的总变差,定义为en

The idea of Total Variation Diminishing (TVD) schemes was first pursued by Harten [77]. The TVD schemes are based on a concept aimed at preventing the generation of new extrema in the flow solution. The principal condition for a TVD scheme is that the total variation of the solution, defined as

\[\mathrm{TV} \equiv \sum_{I}\left|U_{I+1} - U_I\right| \tag{4.97}\]

对标量守恒方程而言,须随时间减小。这意味着解中的极大值必须不增,极小值必须不减,因而在时间演化过程中不得产生新的局部极值。这样,具有TVD性质的离散方法能够准确分辨强激波,而不会产生解的任何虚假振荡——例如标量或矩阵人工耗散中心格式(4.3.1小节)就会产生这类振荡。en

for a scalar conservation equation, decreases in time. This implies that maxima in the solution must be non-increasing and minima non-decreasing. Hence no new local extrema may be created during the time evolution. Thus, a discretisation methodology with TVD properties allows it to resolve strong shock waves accurately, without any spurious oscillations of the solution, as they are for example generated by the central scheme with scalar or matrix artificial dissipation (Subsection 4.3.1).

TVD格式实现为对流通量的平均再加上一个满足TVD条件的附加耗散项(通量限制耗散)[77]、[78]。若耗散项依赖于特征速度的符号,则称为对称(symmetric)TVD格式[79]、[80];否则称为上风(upwind)TVD格式[81]-[85]。经验表明,上风TVD格式比对称TVD格式精度更高[86]。上风TVD格式特别适合模拟超声速与高超声速流场[87];它也能精确分辨边界层[53],尤其在采用文献[88]所述修改时。en

The TVD schemes are implemented as an average of the convective fluxes combined with an additional dissipation term (flux-limited dissipation), which complies with the TVD conditions [77], [78]. If the dissipation term depends on the sign of the characteristic speeds, we speak of a symmetric TVD scheme [79], [80], otherwise of an upwind TVD scheme [81]-[85]. Experience shows that the upwind TVD scheme offers higher accuracy than the symmetric TVD scheme [86]. The upwind TVD scheme is particularly suitable for the simulation of supersonic and hypersonic flow fields [87]. It is also capable of accurate resolution of boundary layers [53], especially if the modification described in Ref. [88] is applied.

Upwind TVD Scheme 上风TVD格式

在此框架下,通过控制体面\((I+1/2)\)(见图4.8)的对流通量可表示为en

In this framework, the convective fluxes through the face \((I+1/2)\) of the control volume (see Fig. 4.8) can be expressed as

\[(\vec{F}_c)_{I+1/2} = \frac{1}{2}\left[(\vec{F}_c)_{I+1} + (\vec{F}_c)_I\right] + \frac{1}{2}\bar{T}_{I+1/2}\vec{\Theta}_{I+1/2}. \tag{4.98}\]

在采用对偶控制体的单元顶点格式(4.2.3小节)情形,指标应为\((i+1/2)\)、\((i+1)\)等。矩阵\(\bar{T}\)包含Jacobian\(\bar{A}_c = \partial\vec{F}_c/\partial\vec{W}\)的右特征向量,其元素见附录A.11。方程(4.98)中的\(\vec{\Theta}\)项考虑特征速度的方向,控制差分算子的上风方向。向量\(\vec{\Theta}\)的第l个分量定义为(参见[84])en

In the case of the cell-vertex scheme with dual control volumes (Subsection 4.2.3), the indices would read \((i+1/2)\), \((i+1)\), etc. The matrix \(\bar{T}\) contains the right eigenvectors of the Jacobian \(\bar{A}_c = \partial\vec{F}_c/\partial\vec{W}\). The entries of the matrix can be found in the Appendix A.11. In Equation (4.98), the term \(\vec{\Theta}\) takes account of the direction of the characteristic speeds. It controls the upwind direction of the difference operator. The l-th component of the vector \(\vec{\Theta}\) is defined as (cf. [84])

\[\Theta^{l}_{I+1/2} = \frac{1}{2}\psi(\Lambda^{l}_{I+1/2})\left(\Psi^{l}_{I+1} + \Psi^{l}_{I}\right) - \psi(\Lambda^{l}_{I+1/2} + \chi^{l}_{I+1/2})\Delta C^{l}_{I+1/2}, \tag{4.99}\]

其中\(\Lambda^{l}\)表示对角矩阵\(\bar{\Lambda}_c\)的各特征值(见附录A.11),\(\Psi\)为限制器函数(方程(4.122))。此外,en

where \(\Lambda^{l}\) represents the individual eigenvalues of the diagonal matrix \(\bar{\Lambda}_c\) (see Appendix A.11), and \(\Psi\) the limiter function (Eq. (4.122)), respectively. Furthermore,

\[\chi^{l}_{I+1/2} = \frac{1}{2}\psi(\Lambda^{l}_{I+1/2})\cdot\begin{cases} \dfrac{\Psi^{l}_{I+1} - \Psi^{l}_{I}}{\Delta C^{l}_{I+1/2}} & \text{if } \Delta C^{l}_{I+1/2} \ne 0\\ 0 & \text{if } \Delta C^{l}_{I+1/2} = 0\,, \end{cases} \tag{4.100}\]

最后,\(\Delta C^{l}\)是特征变量之差的元素,即en

and finally \(\Delta C^{l}\) are the elements of the difference of characteristic variables, i.e.,

\[\Delta\vec{C}_{I+1/2} = \bar{T}^{-1}_{I+1/2}(\vec{W}_{I+1} - \vec{W}_I) \tag{4.101}\]

其中\(\bar{T}^{-1}\)为左特征向量矩阵。Harten所谓的熵修正(entropy correction)[70]、[71],即en

with \(\bar{T}^{-1}\) being the matrix of left eigenvectors. The so-called entropy correction of Harten [70], [71], i.e.,

\[\psi(z) = \begin{cases} |z| & \text{if } |z| > \delta_1\\ \dfrac{z^2 + \delta_1^2}{2\delta_1} & \text{if } |z| \le \delta_1 \end{cases} \tag{4.102}\]

可防止\(|z| \rightarrow 0\)时\(\psi(z)\)变为零。参数\(\delta_1\)最好表示为速度分量与声速的函数[84]en

prevents the value \(\psi(z)\) from vanishing for \(|z| \rightarrow 0\). The parameter \(\delta_1\) is best formulated as function of the velocity components and the speed of sound [84]

\[(\delta_1)_{I+1/2} = \delta\left(\left|u_{I+1/2}\right| + \left|v_{I+1/2}\right| + \left|w_{I+1/2}\right| + c_{I+1/2}\right), \tag{4.103}\]

其中\(0.05 \le \delta \le 0.5\)。面\((I+1/2)\)处原始变量的值既可由Roe平均(4.89)得到,也可由\(I\)与\((I+1)\)处状态的简单算术平均得到。防止在强梯度附近产生虚假解的限制器函数\(\Psi\)将在下一小节介绍。应当强调,上述上风TVD格式并不借助MUSCL方法来获得高阶精度。en

where \(0.05 \le \delta \le 0.5\). Values of the primitive variables at the face \((I+1/2)\) are obtained either from Roe's (4.89) or from simple arithmetic averaging of the states at \(I\) and \((I+1)\). The limiter function \(\Psi\), which prevents the generation of spurious solutions near strong gradients, will be presented in the next subsection. It should be stressed that the above upwind TVD scheme does not employ the MUSCL approach to achieve higher order accuracy.

可以证明,当方程(4.99)、(4.100)中的限制器函数\(\Psi\)取为零时(这恰好发生在间断处),上风TVD方法在空间上恰为一阶精度[89];除此之外,如上所述的上风TVD格式在流动光滑区域具有二阶精度。en

One can show that the upwind TVD method is precisely of first-order in space when the limiter function \(\Psi\) in Eqs. (4.99), (4.100) is set equal to zero [89], which happens at discontinuities. Otherwise, the upwind TVD scheme, as presented above, is second-order accurate in smooth flow regions.

4.3.5 Limiter Functions 限制器函数[cfd-4-3-5]

二阶及更高阶的上风空间离散需要使用所谓的限制器(limiter)或限制器函数(limiter function),以防止在大梯度区域(如激波处)产生振荡和虚假解。因此,我们至少要寻找保持单调性(monotonicity preserving)的格式。这意味着流场中的极大值必须不增,极小值必须不减,且时间演化过程中不得产生新的局部极值;换言之,若初始数据单调,则解必须保持单调。保持单调性格式的相当苛刻的条件(或TVD格式更严格的条件)常常被放弃,转而采用局部极值减小(Local Extremum Diminishing,LED)条件[60]。此时,只要求包含在模板之内的局部极值减小。en

Second- and higher-order upwind spatial discretisations require the use of so-called limiters or limiter functions in order to prevent the generation of oscillations and spurious solutions in regions with large gradients (e.g., at shocks). Hence, what we are looking for is at least a monotonicity preserving scheme. This means that maxima in the flow field must be non-increasing, minima non-decreasing, and no new local extrema may be created during the time evolution. Or in other words, if the initial data is monotone then the solution has to remain monotone. The rather stringent conditions for monotonicity preserving schemes (or the more rigorous ones for TVD schemes) are often given up in favour of the Local Extremum Diminishing (LED) conditions [60]. Here, a local extremum contained only within the stencil has to decrease.

图4.10:有与无限制器的无黏跨声速流动计算比较:NACA 0012翼型,M∞=0.85,α=1°

图4.10:有与无限制器的无黏跨声速流动计算比较。NACA 0012翼型,\(M_\infty\) = 0.85,\(\alpha\) = 1°。图例:纵轴为马赫数(Mach number),横轴为弦向位置(chord);带空心方块的折线为无限制器(without limiter)的结果,实线为采用Van Albada限制器(with Van Albada limiter)的结果。

然而,根据Godunov定理,高阶线性格式(如MUSCL方法)不可能保持单调性[90]。因此,必须采用非线性限制器函数来构造保持单调性或TVD的离散。图4.10演示了这一点:用方程(4.98)的上风TVD格式,分别在有与无限制器的条件下计算NACA 0012翼型的二维跨声速流动。可以清楚看到,无限制器时,解在翼型上、下表面激波附近出现大幅振荡;而在远离激波处,带限制器与不带限制器的解几乎相同。en

However, due to Godunov's theorem there is no possibility for a higher-order linear scheme (such as the MUSCL approach) to be monotonicity preserving [90]. It is therefore necessary to employ non-linear limiter functions in order to construct a monotonicity preserving or a TVD discretisation. This is demonstrated in Fig. 4.10, where the upwind TVD scheme of Eq. (4.98) was used with and without a limiter to compute 2-D transonic flow past the NACA 0012 airfoil. It can be clearly seen that without limiter, the solution exhibits large oscillations in the neighbourhood of the shocks on the upper and the lower side of the airfoil. On the other hand, the limited and the unlimited solutions become nearly identical away from the shocks.

限制器的目的是减小用于把流动变量插值到控制体面的斜率(即\((U_{I+1} - U_I)/\Delta x\)),以约束解的变化。在强间断处,限制器必须把斜率减为零,以防产生新极值。这意味着无论对MUSCL方法还是对TVD格式,在大梯度的紧邻区域都退回到(单调的)一阶上风格式(方程(4.46)中\(\epsilon = 0\))。对限制器的最后一项要求显而易见——在流动光滑区域必须还原为原始的无限制离散,以使数值耗散量尽可能低。限制器对左、右状态插值的影响示于图4.11。例子显示了在局部极小值\(I\)处斜率的减小,以及在单元\((I+1)\)、\((I+2)\)处为获得单调解而对斜率的改变。重要的是要认识到,面上左、右状态之间的差仍可能(而且一般将会)存在。en

The purpose of a limiter is to reduce the slopes (i.e., \((U_{I+1} - U_I)/\Delta x\)) used to interpolate a flow variable to the face of a control volume in order to constrain the solution variations. At strong discontinuities, the limiter has to reduce the slopes to zero to prevent the generation of new extrema. This implies for the MUSCL approach as well as for the TVD schemes that the (monotone) first-order upwind scheme (\(\epsilon = 0\) in Eq. (4.46)) is recovered in the immediate vicinity of large gradients. The last requirement to be imposed on a limiter is quite obvious - the original unlimited discretisation has to be obtained in smooth flow regions, in order to keep the amount of numerical dissipation as low as possible. The effect of a limiter on the interpolation of the left and right states is sketched in Fig. 4.11. The example shows the slope reduction at the local minimum at \(I\) and the change of the slope at the cells \((I+1)\), \((I+2)\) to achieve a monotone solution. It is important to realise that a difference between the left and right state at a face may (and generally will) still be present.

图4.11:向单元面直接插值(左)与限制插值(右)的比较

图4.11:向单元面直接插值(左)与限制插值(右)的比较。图例:粗线表示斜率\(\Delta U/\Delta x\),竖条表示单元中心处的值;横轴为\(I-1\)、\(I\)、\(I+1\)、\(I+2\)与\(x\),L、R标记面上的左、右状态。

下面我们描述四种业已确立并经实践检验的限制器函数:分别针对二阶MUSCL、CUSP以及上风TVD格式。en

In the following, we shall describe four different limiter functions, which are well-established and proven in practice. We shall consider limiters for the second-order MUSCL, for the CUSP and for the upwind TVD scheme.

Limiter Functions for MUSCL Interpolation 用于MUSCL插值的限制器函数

Van Leer的MUSCL方法[29]通过在必要时用限制器函数缩小方程(4.47)中的差分\(\Delta_{+}U_I\)与\(\Delta_{-}U_I\),即可成为保持单调性的格式。引入斜率限制器(slope limiter)\(\Phi^{\pm}\)后,方程(4.46)中的MUSCL插值公式修改如下(另见图4.8)en

Van Leer's MUSCL approach [29] is turned into a monotonicity preserving scheme by employing a limiter function to reduce the differences \(\Delta_{+}U_I\) and \(\Delta_{-}U_I\) in Eq. (4.47) when necessary. Introducing slope limiters \(\Phi^{\pm}\), the MUSCL interpolation formulae in Eq. (4.46) are modified as follows (see also Fig. 4.8)

\[\begin{aligned} U_R &= U_{I+1} - \frac{1}{4}\left[(1+\hat{\kappa})\Phi^{+}_{I+1/2}\Delta_{-} + (1-\hat{\kappa})\Phi^{-}_{I+3/2}\Delta_{+}\right] U_{I+1}\\ U_L &= U_{I}\ \;+ \frac{1}{4}\left[(1+\hat{\kappa})\Phi^{-}_{I+1/2}\Delta_{+} + (1-\hat{\kappa})\Phi^{+}_{I-1/2}\Delta_{-}\right] U_I\,, \end{aligned} \tag{4.104}\]

方程(4.46)中的参数\(\epsilon\)取为1。斜率限制器是相邻解变分之比的函数,即\(\Phi^{\pm}_{I+1/2} = \Phi(r^{\pm}_{I+1/2})\),其定义[1]为en

The parameter \(\epsilon\) in Eq. (4.46) was set equal to unity. The slope limiters are functions of the ratios of the consecutive solution variations, i.e., \(\Phi^{\pm}_{I+1/2} = \Phi(r^{\pm}_{I+1/2})\), with the definitions [1]

\[\begin{aligned} r^{+}_{I+1/2} &= \frac{U_{I+2} - U_{I+1}}{U_{I+1} - U_I}\\ r^{-}_{I+1/2} &= \frac{U_I - U_{I-1}}{U_{I+1} - U_I}\,, \text{ etc.} \end{aligned} \tag{4.105}\]

若现在以\(r_L\)替代\(r^{+}_{I-1/2}\)、以\(r_R\)替代\(r^{-}_{I+3/2}\),即en

If we substitute now \(r_L\) for \(r^{+}_{I-1/2}\) and \(r_R\) for \(r^{-}_{I+3/2}\), thus

\[\begin{aligned} r_R &= \frac{U_{I+1} - U_I}{U_{I+2} - U_{I+1}} = \frac{\Delta_{-}}{\Delta_{+}}\,U_{I+1}\\ r_L &= \frac{U_{I+1} - U_I}{U_I - U_{I-1}} = \frac{\Delta_{+}}{\Delta_{-}}\,U_I\,, \end{aligned} \tag{4.106}\]

则可把方程(4.104)写成en

we can write Eq. (4.104) in the form

\[\begin{aligned} U_R &= U_{I+1} - \frac{1}{4}\left[(1+\hat{\kappa})r_R\Phi(1/r_R) + (1-\hat{\kappa})\Phi(r_R)\right](U_{I+2} - U_{I+1})\\ U_L &= U_{I}\ \;+ \frac{1}{4}\left[(1+\hat{\kappa})r_L\Phi(1/r_L) + (1-\hat{\kappa})\Phi(r_L)\right](U_I - U_{I-1})\,. \end{aligned} \tag{4.107}\]

若只考虑具有如下对称性质的斜率限制器,则上述关系式(4.107)可以简化en

The above relationships Eq. (4.107) can be simplified if we consider only slope limiters with the symmetry property

\[\Phi(r) = \Phi(1/r). \tag{4.108}\]

在此定义下,带限制的MUSCL插值方程(4.104)变为[91]en

With this definition, the limited MUSCL interpolation Eq. (4.104) becomes [91]

\[\begin{aligned} U_R &= U_{I+1} - \frac{1}{2}\Psi_R(U_{I+2} - U_{I+1})\\ U_L &= U_{I}\ \;+ \frac{1}{2}\Psi_L(U_I - U_{I-1}) \end{aligned} \tag{4.109}\]

其中限制器函数(limiter function)定义为en

with the limiter function defined as

\[\Psi_{L/R} = \frac{1}{2}\left[(1+\hat{\kappa})r_{L/R} + (1-\hat{\kappa})\right]\Phi_{L/R}. \tag{4.110}\]

方程(4.110)中斜率限制器\(\Phi\)现在可以有不同的表述,可针对特定的\(\hat{\kappa}\)值加以定制,以得到最精确同时稳定且保持单调性的MUSCL格式。en

Different formulations of the slope limiter \(\Phi\) in Eq. (4.110) are now possible, which can be tailored to specific values of \(\hat{\kappa}\) to give the most accurate but stable and monotonicity preserving MUSCL scheme.

MUSCL scheme with \(\hat{\kappa}\) = 0 \(\hat{\kappa}\)=0的MUSCL格式

对\(\hat{\kappa} = 0\)的二阶上风偏置格式,一种特别合适的组合是[92]en

One particularly suitable combination for the second-order, upwind-biased scheme with \(\hat{\kappa} = 0\) is [92]

\[\Phi(r) = \frac{2r}{r^2 + 1}. \tag{4.111}\]

此时,函数\(\Psi(r)\)对应于Van Albada限制器[93]en

In this case, the function \(\Psi(r)\) corresponds to the Van Albada limiter [93]

\[\Psi(r) = \frac{r^2 + r}{1 + r^2}, \tag{4.112}\]

并且由方程(4.109)得到左、右状态的如下表达式en

and we obtain with Eq. (4.109) the following expressions for the left and right state

\[\begin{aligned} U_R &= U_{I+1} - \frac{1}{2}\delta_R\\ U_L &= U_{I}\ \;+ \frac{1}{2}\delta_L\,. \end{aligned} \tag{4.113}\]

函数\(\delta\)对两种状态在形式上完全相同,即en

The function \(\delta\) is formally identical for both states. It reads

\[\delta = \frac{a(b^2 + \epsilon) + b(a^2 + \epsilon)}{a^2 + b^2 + 2\epsilon}. \tag{4.114}\]

系数\(a\)与\(b\)对左、右状态定义为en

The coefficients \(a\) and \(b\) are defined for the left and right state as

\[\begin{aligned} a_R &= \Delta_{+}U_{I+1}, & b_R &= \Delta_{-}U_{I+1},\\ a_L &= \Delta_{+}U_{I}, & b_L &= \Delta_{-}U_I \end{aligned} \tag{4.115}\]

差分算子\(\Delta_{\pm}\)由方程(4.47)给出。方程(4.114)中的附加参数\(\epsilon\)防止限制器在流动光滑区域因小尺度振荡而被激活[92];为获得完全收敛的定常解,有时需要这样做。参数\(\epsilon\)宜取为与当地网格尺度成比例,例如三维中取\(\Omega^{1/3}\)[92]、[94]。若状态变量\(U\)以物理单位给出,则参数\(\epsilon\)还需附加缩放。可以证明,对光滑变化的流动,方程(4.113)的关系式与\(\hat{\kappa} = 0\)的原始(无限制)MUSCL格式(4.46)完全相同,因此解的精度不受影响;另一方面,函数\(\delta\)在局部极值处变为零,如所期望地把精度降为一阶。en

and the difference operators \(\Delta_{\pm}\) are given by Eq. (4.47). The additional parameter \(\epsilon\) in Eq. (4.114) prevents the activation of the limiter in smooth flow regions due to small-scale oscillations [92]. This is sometimes necessary in order to achieve a fully converged steady-state solution. The parameter \(\epsilon\) is conveniently set proportional to the local grid scale, in 3D for example to \(\Omega^{1/3}\) [92], [94]. Additional scaling of the parameter \(\epsilon\) is required if the particular state variable \(U\) is given in physical units. It can be shown that the relations in Eq. (4.113) are identical to the original (unlimited) MUSCL scheme (4.46) with \(\hat{\kappa} = 0\) for smoothly varying flow. Thus, the accuracy of the solution is not influenced. On the other hand, the function \(\delta\) becomes zero at local extrema, reducing the accuracy to first order as desired.

MUSCL scheme with \(\hat{\kappa}\) = 1/3 \(\hat{\kappa}\)=1/3的MUSCL格式

针对\(\hat{\kappa} = 1/3\)的三点二阶精度上风偏置MUSCL格式,设计了另一种限制器函数。此时斜率限制器为en

Another limiter function was devised for the three-point, second-order accurate upwind-biased MUSCL scheme with \(\hat{\kappa} = 1/3\). Here, the slope limiter is given by

\[\Phi(r) = \frac{3r}{2r^2 - r + 2}. \tag{4.116}\]

此时,函数\(\Psi(r)\)对应于Hemker与Koren的限制器[95]。按照与前一种情形相同的步骤,得到的面\((I+1/2)\)处左、右状态公式与方程(4.113)相同,只是\(\delta\)改为[92]en

In this case, the function \(\Psi(r)\) corresponds to the limiter of Hemker and Koren [95]. Following the same way as in the previous case, we obtain formulae for the left and right state at the face \((I+1/2)\) which are identical to Eq. (4.113), but now with [92]

\[\delta = \frac{(2a^2 + \epsilon)b + (b^2 + 2\epsilon)a}{2a^2 + 2b^2 - ab + 3\epsilon}. \tag{4.117}\]

系数\(a\)、\(b\)以及参数\(\epsilon\)的定义保持不变。en

The definitions of the coefficients \(a\), \(b\), and of the parameter \(\epsilon\) are retained.

Limiter for CUSP Scheme CUSP格式的限制器

在CUSP格式(4.3.2小节)框架下,左(\(L\))、右(\(R\))状态按[43]以二阶精度计算en

In the framework of the CUSP scheme (Subsection 4.3.2), the left (\(L\)) and right (\(R\)) states are evaluated to second-order accuracy according to [43]

\[\begin{aligned} U_R &= U_{I+1} - \frac{1}{2}L(\Delta U_{I+3/2},\, \Delta U_{I-1/2})\\ U_L &= U_{I}\ \;+ \frac{1}{2}L(\Delta U_{I+3/2},\, \Delta U_{I-1/2})\,, \end{aligned} \tag{4.118}\]

其中en

where

\[\begin{aligned} \Delta U_{I-1/2} &= U_I - U_{I-1}\\ \Delta U_{I+3/2} &= U_{I+2} - U_{I+1}\,. \end{aligned} \tag{4.119}\]

在方程(4.118)与(4.119)中,\(U\)代表因变量,\(L()\)为限制平均(limited average)en

In the above Eqs. (4.118) and (4.119), \(U\) represents a dependent variable and \(L()\) the limited average

\[L(\Delta_1,\, \Delta_2) = \frac{1}{2}\Psi(\Delta_1,\, \Delta_2)(\Delta_1 + \Delta_2), \tag{4.120}\]

限制器本身定义为en

respectively. The limiter itself is defined as

\[\Psi(\Delta_1,\, \Delta_2) = 1 - \left|\frac{\Delta_1 - \Delta_2}{|\Delta_1| + |\Delta_2| + \epsilon}\right|^{\sigma}, \tag{4.121}\]

其中\(\sigma\)为正常系数,通常取2。常数\(\epsilon\)用于防止除零(例如\(\epsilon = 10^{-20}\))。若\(\Delta_1\)与\(\Delta_2\)恰好符号相反、大小相同,则限制器变为\(\Psi = 0\),这意味着左、右状态只能得到一阶精度近似。en

where \(\sigma\) is a positive coefficient which is usually set equal to two. The constant \(\epsilon\) is required to prevent division by zero (e.g., \(\epsilon = 10^{-20}\)). If \(\Delta_1\) and \(\Delta_2\) happen to have opposite sign but the same magnitude, the limiter becomes \(\Psi = 0\). This means that we obtain only a first-order accurate approximation for the left and the right state.

应当指出,也可以不用上述关系,而代之以\(\hat{\kappa} = 0\)并采用方程(4.113)-(4.115)中Van Albada限制器的MUSCL格式。en

It should be mentioned that it is also possible to employ the MUSCL scheme with \(\hat{\kappa} = 0\) and the Van Albada limiter from Eqs. (4.113)-(4.115) instead of the above relations.

Limiter for TVD Scheme TVD格式的限制器

与前几种情形相比,这里的限制器不作用于守恒变量或原始变量,而是作用于特征变量\(\vec{C}\)。一种特别合适的限制器函数由[84]给出en

In comparison to the previous cases, the limiter here acts not on the conservative or the primitive variables, but on the characteristic variables \(\vec{C}\). One particularly suitable limiter function is given by [84]

\[\Psi^{l}_{I} = \frac{\Delta C^{l}_{I-1/2}\Delta C^{l}_{I+1/2} + \left|\Delta C^{l}_{I-1/2}\Delta C^{l}_{I+1/2}\right|}{\Delta C^{l}_{I-1/2} + \Delta C^{l}_{I+1/2} + \epsilon}, \tag{4.122}\]

其中\(\Delta C^{l}_{I+1/2}\)表示控制体面\((I+1/2)\)处特征变量之差(方程(4.101))。分母中的正常数\(\epsilon \approx 10^{-20}\)防止除零。在高梯度区域,限制器函数变为零,由方程(4.99)与方程(4.98)导致一阶精度的上风格式。当流动变量光滑变化时,方程(4.98)的上风TVD格式保持二阶精度,此时\(\Psi^{l}_{I} = C^{l}_{I} - C^{l}_{I-1}\)。en

where the \(\Delta C^{l}_{I+1/2}\) represents the difference of the characteristic variables at face \((I+1/2)\) of the control volume (Eq. (4.101)). The positive constant \(\epsilon \approx 10^{-20}\) in the denominator prevents division by zero. In regions with high gradients, the limiter function becomes zero, which leads with Eq. (4.99) and Eq. (4.98) to first-order accurate upwind scheme. The upwind TVD scheme in Eq. (4.98) retains second-order accuracy in areas with smoothly varying flow variables, where \(\Psi^{l}_{I} = C^{l}_{I} - C^{l}_{I-1}\).

4.4 Discretisation of the Viscous Fluxes 黏性通量的离散化[cfd-4-4]

为了得到一致的空间离散,黏性通量的控制体一般选取与对流通量相同。唯一的例外是采用重叠控制体的单元顶点格式(4.2.2小节),出于稳定性考虑[96]-[98],此时改用对偶控制体(4.2.3小节)。离散化控制方程(4.2)中的黏性通量\(\vec{F}_v\),与方程(4.17)、(4.22)、(4.37)、(4.42)类似,由在控制体面上平均的变量计算。这与黏性通量的椭圆性质相符。因此,计算黏性项(2.23)、(2.24)以及应力(2.15)所需的速度分量\((u, v, w)\)、动力黏度\(\mu\)与热传导系数\(k\)的值,直接在面上取平均。在单元中心格式(图4.3与图4.8)情形,控制体面\((I+1/2)\)处的值由下式给出en

The control volume for the viscous fluxes is generally chosen to be the same as for the convective fluxes in order to obtain a consistent spatial discretisation. An exception is made only in the case of the cell-vertex scheme with overlapping control volumes (Subsection 4.2.2), where the dual control volume (Subsection 4.2.3) is employed instead, primarily due to stability reasons [96]-[98]. The viscous fluxes \(\vec{F}_v\) in the discretised governing equations (4.2) are, similar to Eqs. (4.17), (4.22), (4.37), (4.42), evaluated from variables averaged at the faces of the control volume. This is in line with the elliptic nature of the viscous fluxes. Thus, values of the velocity components \((u, v, w)\), the dynamic viscosity \(\mu\), and of the heat conduction coefficient \(k\), which are required for the computation of the viscous terms (2.23), (2.24) and of the stresses (2.15), are simply averaged at a face. In the case of the cell-centred scheme (Figs. 4.3 and 4.8), the values at the face \((I+1/2)\) of the control volume result from

\[U_{I+1/2} = \frac{1}{2}(U_I + U_{I+1})\,, \tag{4.123}\]

其中\(U\)为上述任一流动变量。两种单元顶点格式在面\((i+1/2)\)处同样如此——分别见图4.5与图4.8。en

where \(U\) is any of the above flow variables. The same holds in the case of both cell-vertex schemes for the face \((i+1/2)\) - see Figs. 4.5 and 4.8, respectively.

剩下的任务是计算方程(2.15)中速度分量的一阶导数(梯度)与方程(2.24)中温度的一阶导数。这可以用以下两种方法之一完成:

  • 有限差分;或
  • Green定理。
en

The remaining task is the evaluation of the first derivatives (gradients) of the velocity components in Eq. (2.15) and of the temperature in Eq. (2.24). This can be accomplished in one of two ways, i.e., by using

  • finite differences, or
  • Green's theorem.

第一种方法采用从笛卡尔坐标\((x, y, z)\)到曲线坐标\((\xi, \eta, \zeta)\)的局部变换,例如en

The first approach applies a local transformation from Cartesian coordinates \((x, y, z)\) to the curvilinear coordinates \((\xi, \eta, \zeta)\), e.g.,

\[\frac{\partial U}{\partial x} = \frac{\partial U}{\partial\xi}\frac{\partial\xi}{\partial x} + \frac{\partial U}{\partial\eta}\frac{\partial\eta}{\partial x} + \frac{\partial U}{\partial\zeta}\frac{\partial\zeta}{\partial x}\,, \text{ etc.} \tag{4.124}\]

导数\(U_\xi\)、\(U_\eta\)与\(U_\zeta\)由有限差分近似得到,更多细节见文献[96]-[98];坐标的导数与变换的Jacobian见附录A.1。本书更倾向于第二种方法,它与本书讨论的有限体积方法学更为一致;不过,它需要为导数的计算构造一个附加控制体。下面将针对单元中心格式与单元顶点格式分别讨论。一旦得到了控制体面上流动变量与一阶导数的值,就可以按方程(4.2)把黏性通量的贡献累加起来;把这部分贡献加到无黏通量上,空间离散即告完成,随后便可对近似的控制方程进行时间积分。en

The derivatives \(U_\xi\), \(U_\eta\) and \(U_\zeta\) are obtained from finite difference approximations. More details can be found in Refs. [96]-[98]. See Appendix A.1 for the derivatives of the coordinates and for the Jacobian of the transformation. Here, we prefer the second approach, which is more in line with the finite volume methodology treated in this book. However, it requires the construction of an additional control volume for the computation of the derivatives. This will be discussed below for the cell-centred and the cell-vertex scheme. Once we obtained the values of the flow variables and of the first derivatives at the faces of the control volume, we can sum up the contributions due to the viscous fluxes according to Eq. (4.2). By adding the sum of the contributions to the inviscid fluxes, we completed the spatial discretisation, and we can thus integrate the approximated governing equations in time.

图4.12:用于计算一阶导数的辅助控制体Ω'(填充部分,二维):(a)单元中心格式;(b)单元顶点格式

图4.12:用于计算一阶导数的辅助控制体\(\Omega'\)(填充部分,二维):(a)单元中心格式;(b)单元顶点格式。图例:菱形符号标记一阶导数的计算位置;(a)中\(\Omega_{I,J}\)为单元控制体,单元中心以方块标记(\(I,J\)、\(I+1,J\)、\(I,J+1\)、\(I+1,J+1\)等),网格点以圆点标记(\(i,j\)、\(i+1,j\)、\(i,j+1\)、\(i+1,j+1\)),面中点标记为\(1/2\);(b)中网格点为\(i,j\)、\(i-1,j\)、\(i+1,j\)、\(i,j+1\)、\(i+1,j+1\)、\(i,j-1\),边中点以\(1/2\)标记。

4.4.1 Cell-Centred Scheme 单元中心格式[cfd-4-4-1]

为了应用把一阶导数的体积分与\(U\)的面积分联系起来的Green定理,必须先定义一个合适的控制体。由于方程(4.2)中的求和需要面中点处的导数,我们通过连接定义相邻网格单元的各边的中点,构造一个以该面为中心的辅助控制体[31]、[19]、[98],如图4.12a所示。为了计算面\((I+1/2)\)处的一阶导数——在图4.12a中以菱形符号标记——必须把相应的流动变量\(U\)沿辅助控制体的边界积分(以下以上标' 表示)。例如,对x方向的导数en

In order to apply Green's theorem, which relates the volume integral of the first derivative to the surface integral of \(U\), we have to define a suitable control volume first. Since we need the derivatives at the midpoints of the faces for the summation in Eq. (4.2), we construct an auxiliary control volume centred at the face by connecting the midpoints of the edges defining adjacent grid cells [31], [19], [98] as shown in Fig. 4.12a. In order to evaluate the first derivative at the face \((I+1/2)\) - marked by a diamond symbol in Fig. 4.12a - we have to integrate the corresponding flow variable \(U\) over the boundary of the auxiliary control volume (denoted by the superscript ' in the following). Thus, e.g., for the derivative in the x-direction

\[\frac{\partial U}{\partial x} = \frac{1}{\Omega'}\int_{\partial\Omega'} U\,dS'_x \approx \frac{1}{\Omega'}\sum_{m=1}^{N_F} U_m\,S'_{x,m}\,, \tag{4.125}\]

其中\(N_F\)表示面的数目(二维\(N_F = 4\),三维\(N_F = 6\))。体积\(\Omega'\)与面向量\(\vec{S}'_m = [S'_{x,m}, S'_{y,m}, S'_{z,m}]^T\)的分量按4.1节中已介绍的方法计算。面值\(U_m\)或直接取单元中心值(即左、右面上的\(U_{i,j}\)与\(U_{i+1,j}\)),或在上面与下面的面上取平均,例如在\(J+1/2\)处en

where \(N_F\) stands for the number of faces (\(N_F = 4\) in 2D and \(N_F = 6\) in 3D). The volume \(\Omega'\) and the components of the face vector \(\vec{S}'_m = [S'_{x,m}, S'_{y,m}, S'_{z,m}]^T\), respectively, are computed as already presented in Section 4.1. The face values \(U_m\) are obtained either directly as cell-centred values (i.e., \(U_{i,j}\) and \(U_{i+1,j}\) on the left and the right face), or by averaging like on the upper and the lower face, e.g., at \(J+1/2\)

\[U_{m_{I,J+1/2}} = \frac{1}{4}(U_{I,J} + U_{I+1,J} + U_{I,J+1} + U_{I+1,J+1})\,, \text{ etc.} \tag{4.126}\]

同样的方法可用于三维,此时同样可用四个单元中心值作平均,即en

We can apply the same approach in three dimensions, where again four cell-centred values can be utilised for the averaging. Hence,

\[\begin{aligned} U_{m_{I,J+1/2,K}} &= \frac{1}{4}(U_{I,J,K} + U_{I+1,J,K} + U_{I,J+1,K} + U_{I+1,J+1,K})\,,\\ U_{m_{I,J+1/2,K+1/2}} &= \frac{1}{4}(U_{I,J,K} + U_{I,J,K+1} + U_{I,J+1,K} + U_{I,J+1,K+1})\,, \end{aligned} \tag{4.127}\]

上述格式相当紧凑,计算模板在二维只覆盖9个单元,三维为15个。注意,这种计算一阶导数的方法无法抑制两类虚假模态(相邻单元中心处解的失联)的产生[99]、[19]:一是棋盘格模态(chequer-board mode),源于围绕控制体的积分形式;二是一对波纹(搓衣板)模态,源于相邻单元值的平均。不过,实践中一般不会因此遇到困难。更严重的问题会出现在先把每个单元的梯度算出(类似对流通量的做法)、再在单元面上平均的做法中;这种做法看似更有吸引力,但由于会导致强烈的奇偶失联,并不推荐。en

The above scheme is quite compact, with the computational stencil extending over only nine cells in two dimensions and over 15 in three dimensions. It should be noted that this approach for computing the first derivatives cannot suppress the generation of two types of spurious modes (decoupled solutions at neighbouring cell centres) [99], [19]: the chequer-board mode, arising from the form of the integral around the control volume, and a pair of corrugated or washboard modes, arising from the averaging of values in neighbouring cells. However, there are generally no difficulties with this in practice. A more serious problem would occur, if the gradients would be first evaluated for each cell (similar to the convective fluxes) and then averaged at the cell faces. Although this approach may appear more attractive than the current methodology, it is not recommended since it leads to strong odd-even decoupling.

上述格式的缺点是:当网格不均匀时精度会下降[98]、[99]。就是说,对任意拉伸的网格,导数近似变得不相容(辅助控制体的形心不再对应面中心)。因此,只有对适度且光滑拉伸的网格,黏性通量才具有二阶精度的离散。最后,应当指出,Navier-Stokes方程的TSL近似(2.4.3小节)很容易实现,只需在计算梯度时略去相应的贡献即可。例如,若边界层沿图4.12a的\(I\)方向,则辅助控制体左侧\((I, J)\)与右侧\((I+1, J)\)的贡献将被略去。en

A disadvantage of above scheme is a loss of accuracy if the grid is not uniform [98], [99]. Namely, for arbitrarily stretched grids the approximation of the derivatives becomes inconsistent (the centroid of the auxiliary control volume does no longer correspond to the face centre). Thus, the viscous fluxes are discretised with second-order accuracy only for moderately and smoothly stretched grids. Finally, it should be noted that the TSL approximation of the Navier-Stokes equations (Subsection 2.4.3) can easily be realised by omitting the appropriate contributions when computing the gradients. For example, if the boundary layer would be oriented along the \(I\)-direction in Fig. 4.12a, contributions from the left \((I, J)\) and the right side \((I+1, J)\) of the auxiliary control volume would be dropped.

4.4.2 Cell-Vertex Scheme 单元顶点格式[cfd-4-4-2]

如前所述,两种单元顶点格式的黏性通量离散都借助对偶控制体(4.2.3小节)。于是问题是如何在该控制体的面上计算一阶导数。考虑图4.12b,一种可能的做法是先在网格单元上积分求出单元中心处的梯度,这在任意拉伸网格上具有一阶精度;下一步再像文献[31]、[100]那样,把基于单元的梯度在控制体\(\Omega\)的面上平均。然而,这种做法无法防止解的奇偶失联。en

As already mentioned, both types of cell-vertex schemes resort to the dual control volume (Subsection 4.2.3) for the discretisation of the viscous fluxes. Hence, the question is how to evaluate the first derivatives at the faces of this control volume. Considering Fig. 4.12b, one possible alternative is to calculate the gradients at the cell centres first by integrating over the grid cells, which yields first-order accuracy on arbitrarily stretched grids. In a next step, the cell-based gradients are averaged at the faces of the control volume \(\Omega\) like in Refs. [31], [100]. However, this approach cannot prevent an odd-even decoupling of the solution.

另一种与单元中心格式类似的做法,是通过连接定义相邻网格单元的各边的中点,围绕该面构造辅助控制体[101]、[102],如图4.12b所示。一阶差分的计算与单元中心格式的讨论相同,必要时采用平均量。注意,这一做法在形式上与有限差分近似完全相同[96]-[98]。该格式在任意拉伸网格上给出黏性通量的一阶精度离散,在光滑网格上达到二阶精度[96]、[98]。另一个优点是计算模板很小:二维只有9个节点,三维15个节点。en

Another possibility, similar to the cell-centred scheme, is to construct an auxiliary control volume around the face by connecting the midpoints of the edges defining adjacent grid cells [101], [102]. This is depicted in Fig. 4.12b. The evaluation of the first differences proceeds along the same lines as discussed for the cell-centred scheme, with averaged quantities where necessary. It should be noted that this approach is formally identical to the finite difference approximation [96]-[98]. This scheme leads to first-order accurate discretisation of the viscous fluxes on arbitrarily stretched grids and to second-order accuracy on smooth grids [96], [98]. Another positive feature is that the computational stencil is confined to only nine nodes in two dimensions and to 15 nodes in three dimensions.

最后,还应提到另一种方法,它选择了更复杂的积分路径,平均时纳入所有相邻节点[20]。该格式的一个严重缺点是,即使在二维也包含25点模板,通常比紧凑模板引入更多数值扩散;此外,若时间积分采用隐式格式,通量Jacobian的带宽将变得过大而无法接受。关于梯度计算各种方法的详细讨论还可参见文献[103]。en

Finally, one further approach should be mentioned, where a more complex integration path was chosen, with averaging incorporating all neighbouring nodes [20]. A serious disadvantage of this scheme is that it encompasses a 25-point stencil even in two dimensions, which adds in general more numerical diffusion than compact stencils. Furthermore, if an implicit scheme would be envisioned for the time integration, the bandwidth of the flux Jacobian would become prohibitively large. A detailed discussion of various methodologies for the gradient evaluation can also be found in Ref. [103].