计算斜率
斜率是针对每个标量和每个速度分量一次仅在一个方向上计算的。
我们使用二阶单调中心 (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) 右变化