9.4.1 Basic Multigrid Cycle 基本多重网格循环[cfd-9-4-1]

在应用几何多重网格格式之前,必须先生成较粗的网格。标准做法是在所有坐标方向上均匀地粗化网格。不过,Mulder[49]提出了一种称为半粗化(semicoarsening)的方法。此时网格只在一个方向上粗化,且该方向从一个粗层到另一个粗层轮换。半粗化方法特别适合控制方程在某一空间方向上呈刚性的流动问题,边界层中垂直于壁面的方向即为一例。将半粗化应用于Navier-Stokes方程的工作见文献[26]、[50]、[51]。en

Before the geometric multigrid scheme can be applied, the coarser grids have to be generated. The standard way is to coarsen the grid evenly in all coordinate directions. However, Mulder [49] proposed an approach called semicoarsening. Here, the grid is coarsened only in one direction, which is changed from one coarse level to another. The semicoarsening methodology is especially suited for flow problems, where the governing equations are stiff in one spatial direction. An example is the direction normal to the wall in boundary layers. Applications of semicoarsening to the Navier-Stokes equations were reported, e.g., in Refs. [26], [50], [51].

按照关系式(6.1),细网格上离散化的控制方程为en

The discretised governing equations on the fine grid read in accordance with the relationship (6.1)

\[\frac{d}{dt}\vec{W}_{h} = -\frac{1}{\Omega_{h}}\vec{R}_{h}\,. \tag{9.16}\]

以下用下标\(h\)表示最细网格,该记号源于网格线的间距(在非结构网格上为控制体的特征尺寸)。从已知解\(\vec{W}^{n}_{h}\)出发,用某个合适的迭代格式经过一个时间步后得到新解\(\vec{W}^{n+1}_{h}\),并用这个解计算新的残差\(\vec{R}^{n+1}_{h}\)。为了利用粗网格改进解\(\vec{W}^{n+1}_{h}\),需要进行以下三个步骤:en

In the following, the finest grid will be denoted by subscript \(h\) in reference to the spacing of the grid lines (characteristic dimension of the control volume on unstructured grids). Starting from a known solution \(\vec{W}^{n}_{h}\), a new solution \(\vec{W}^{n+1}_{h}\) is obtained after one time step with some suitable iterative scheme. A new residual \(\vec{R}^{n+1}_{h}\) is evaluated with this solution. In order to improve the solution \(\vec{W}^{n+1}_{h}\) using a coarse grid, the following three steps are carried out:

1. Transfer of the Solution and Residuals to the Coarser Grid 1. 把解与残差转移到较粗网格

解通过插值转移到粗网格上en

The solution is transferred to the coarse grid by means of the interpolation

\[\vec{W}^{(0)}_{2h} = \hat{I}^{2h}_{h}\,\vec{W}^{n+1}_{h}\,, \tag{9.17}\]

其中下标\(2h\)表示粗网格¹,\(\hat{I}^{2h}_{h}\)为插值算子(interpolation operator)。残差也必须转移到粗网格上,以便对其低频误差分量进行光顺。为此采用守恒的转移算子,这意味着当控制体尺寸增大时,残差的值必须增大相同的数量。此外还需要细网格的残差,以便在粗网格上保持细网格解的精度。为此,构造一个源项,即所谓的强迫函数(forcing function)[19]、[22],它等于由细网格转移来的残差与用初始解\(\vec{W}^{(0)}_{2h}\)(式(9.17))在粗网格上计算出的残差之差,即en

where the subscript \(2h\) denotes the coarse grid¹ and \(\hat{I}^{2h}_{h}\) is the interpolation operator. The residuals have to be transferred to the coarse grid as well, so that their low-frequency error components can be smoothed. A conservative transfer operator is employed for this purpose. This means that when the control volume size increases, the value of the residual must increase by the same amount. The residuals of the fine grid are also required in order to retain the solution accuracy of the fine grid on the coarse grid. For this purpose, a source term, the so-called forcing function [19], [22], is formed as the difference between the residual transferred from the fine grid and the residual computed using the initial solution \(\vec{W}^{(0)}_{2h}\) (Eq. (9.17)) on the coarse grid, i.e,

\[(\vec{Q}_F)_{2h} = I^{2h}_{h}\vec{R}^{n+1}_{h} - \vec{R}^{(0)}_{2h}\,. \tag{9.18}\]

¹原书脚注:The notation 2h must not be understood in a strictly geometric sense. On unstructured grids, the ratio of the characteristic dimensions of the control volumes on the fine and the coarse grid will usually differ from two. The same holds also for semicoarsening.(记号2h不应按严格的几何意义理解。在非结构网格上,细网格与粗网格上控制体特征尺寸之比通常并不等于2。半粗化的情形也是如此。)

这里\(I^{2h}_{h}\)表示把残差从细网格转移到粗网格的限制算子(restriction operator)。这类多重网格格式称为完全近似存储(Full Approximation Storage,FAS)方法[19]。FAS方法特别适合非线性方程,因为系统中的非线性通过重新离散化被带到粗层。en

Here, \(I^{2h}_{h}\) represents the restriction operator which transfers residuals from the fine to the coarse grid. This type of multigrid scheme is known as the Full Approximation Storage (FAS) method [19]. The FAS method is particularly suited for non-linear equations because the nonlinearities in the system are carried down to the coarse levels through the re-discretisation.

2. Calculation of a New Solution on the Coarse Grid 2. 在粗网格上计算新解

粗网格上解的求解方式与细网格相同。把式(9.18)中的强迫函数加到粗网格的残差上,即en

The solution is evaluated on the coarse grid in the same way as on the fine grid. The forcing function in Eq. (9.18) is added to the residual of the coarse grid, i.e.,

\[(\vec{R}_F)_{2h} = \vec{R}_{2h} + (\vec{Q}_F)_{2h}\,. \tag{9.19}\]

于是,时间推进格式可以写成en

Hence, the time-stepping scheme can be written in the form

\[\frac{d}{dt}\vec{W}_{2h} = -\frac{1}{\Omega_{2h}}(\vec{R}_F)_{2h} = -\frac{1}{\Omega_{2h}}\left[\vec{R}_{2h} + (\vec{Q}_F)_{2h}\right]\,. \tag{9.20}\]

对于显式多级格式(6.1.1小节),这就导致en

In the case of the explicit multistage scheme (Subsection 6.1.1), this results in

\[\begin{aligned} \vec{W}^{(k)}_{2h} &= \vec{W}^{(0)}_{2h} - \alpha_k\,\frac{\Delta t_{2h}}{\Omega_{2h}}\left[\vec{R}^{(k-1)}_{2h} + (\vec{Q}_F)_{2h}\right], \quad k = 1,\cdots,m\\ \vec{W}^{n+1}_{2h} &= \vec{W}^{(m)}_{2h} \end{aligned} \tag{9.21}\]

这与式(6.5)一致。需要注意的是,在第一次迭代(式(9.21)中的级)时,\((\vec{R}_F)_{2h}\)与从细网格转移来的残差完全相同(即式(9.18)中的\((\vec{R}_F)_{2h} = I^{2h}_{h}\vec{R}^{n+1}_{h}\))。这保证了粗网格上的解依赖于细网格的残差,从而保持细网格的精度。en

in accordance with Eq. (6.5). It has to be noted that during the first iteration (stage in Eq. (9.21)), \((\vec{R}_F)_{2h}\) is identical to the residual transferred from the fine grid (i.e., \((\vec{R}_F)_{2h} = I^{2h}_{h}\vec{R}^{n+1}_{h}\) from Eq. (9.18)). This guarantees that the solution on the coarse grid depends on the residual of the fine grid and thus retains the accuracy of the fine grid.

粗网格上空间离散格式的精度是一个重要问题。由于粗网格不影响细网格解的精度,一阶格式就足够了。与高阶格式相比,粗网格上一阶精度离散的优点是鲁棒性更强、阻尼特性更好、数值工作量更低。en

An important question is the accuracy of the spatial discretisation scheme on coarse grids. Since the coarse grids do not influence the accuracy of the fine-grid solution, first-order schemes are sufficient. The advantages of first-order accurate discretisation on coarse grids are the increased robustness, better damping properties, and lower numerical effort in comparison to higher-order schemes.

3. Solution Interpolation from the Coarse to the Fine Grid 3. 解由粗网格插值回细网格

在粗网格上进行一个或多个时间步(迭代)之后,计算相对于初始——插值——解(式(9.17))的修正量。这个所谓的粗网格修正(coarse grid correction)由下式给出en

After one or several time steps (iterations) were carried out on the coarse grid, the correction with respect to the initial - interpolated - solution (Eq. (9.17)) is computed. This so-called coarse grid correction is given by

\[\delta\vec{W}_{2h} = \vec{W}^{n+1}_{2h} - \vec{W}^{(0)}_{2h}\,. \tag{9.22}\]

粗网格修正被插值回细网格,以改进那里的解。于是,细网格上的新解为en

The coarse-grid correction is interpolated to the fine grid in order to improve the solution there. Hence, the new solution on the fine grid reads

\[\vec{W}^{+}_{h} = \vec{W}^{n+1}_{h} + I^{h}_{2h}\,\delta\vec{W}_{2h}\,, \tag{9.23}\]

其中\(I^{h}_{2h}\)称为延拓算子(prolongation operator)。en

where \(I^{h}_{2h}\) is denoted as the prolongation operator.