计算斜率

斜率是针对每个标量和每个速度分量一次仅在一个方向上计算的。

我们使用二阶单调中心 (MC) 限制器(van Leer, 1977)。该方案如下所述,以 u 速度为例。

限制器通过结合左、中和右的 u 变化 “du” 来计算单元 “i” 的斜率:

du_l = u(i) - u(i-1)               = 左变化
du_c = 0.5 * ( u(i+1) - u(i-1) )   = 中心(未限制)变化
du_r = u(i+1) - u(i)               = 右变化

最后,单元 “i” 的 u 变化为:

du(i) = sign(du_c) * min(2|du_l|, |du_c|, 2|du_r|)) if du_l*du_r > 0
du(i) = 0                                           否则

上述过程逐方向应用。

边界条件 当施加周期性或 Neumann 边界条件时,由于边界的虚拟单元通过周期性或外推填充,该方案可以无需任何更改地应用。 对于横向方向上的 Dirichlet 边界条件,方案同样可以直接应用,因为在域外的第一个虚拟单元的速度是已知的。 然而,对于纵向方向上的 Dirichlet 边界条件,速度在域外是未知的,因为边界条件直接应用在位于边界本身的第一个有效节点上。因此,方案必须如下安排以仅使用域内的值。 对于左边界 (i=0),u 变化为:

du_l = 0                             不使用左侧值
du_c = -1.5*u(0) + 2*u(1) -0.5*u(2)  二阶右偏
du_r = u(1) - u(0)                   右变化