OpenFOAM 中的 slipnoSlip 边界条件有什么区别?

简明对比:

  • noSlip:固壁粘性边界,法向和切向速度都为 0(相对壁面)→ 有壁面剪切、边界层。
  • slip:无摩擦壁/自由滑移,法向速度为 0,切向速度法向梯度为 0 → 无壁面剪切、无边界层。

下面从物理、数学、实现和典型用法逐一说明。


1) 物理含义

  • noSlip(无滑移)

    • 模拟真实粘性固壁:流体与壁面相对速度为零。
    • 存在壁面剪切应力与边界层;动量和湍流的产生/耗散与壁面摩擦相关。
    • 若壁面运动(动网格/动壁),应使用 movingWallVelocity 来使流体速度等于壁面速度。
  • slip(滑移/无应力)

    • 模拟无摩擦壁或自由表面上方的“无应力顶盖”:没有切向阻力。
    • 只禁止法向穿透,不施加切向速度值;切向剪切应力为零。
    • 常用于大气边界层的顶部边界、理想化高雷诺数“无边界层”近似、或对称性/远场的简化。

2) 数学条件

以法向单位向量为 ( \mathbf{n} ),切向速度为 ( \mathbf{u}_t ),法向分量为 ( u_n = \mathbf{u}\cdot\mathbf{n} )。

  • noSlip

    • ( u_n = 0 )
    • ( \mathbf{u}_t = 0 )
    • 壁面剪切应力 ( \boldsymbol{\tau}_w \neq 0 )(取决于近壁梯度)
  • slip

    • ( u_n = 0 )(不穿透)
    • ( \frac{\partial \mathbf{u}_t}{\partial n} = 0 )(切向零梯度 → 零剪切应力)
    • 对牛顿流体:( \boldsymbol{\tau}_w = \mu \frac{\partial \mathbf{u}_t}{\partial n} = 0 )

小结:noSlip 直接给速度值(Dirichlet),slip 给法向通量与切向梯度(Neumann/投影)。


3) OpenFOAM 中的设置与实现要点

速度 U 的边界

1
2
3
4
5
6
7
8
9
10
11
// 固定墙(无滑移)
patchName
{
type noSlip; // 等效于 fixedValue (0 0 0) 对于静止壁
}

// 滑移(无应力)
patchName
{
type slip; // 法向分量置零,切向分量零梯度
}
  • 对于移动壁:优先用
1
2
3
4
patchName
{
type movingWallVelocity; // 保证流体速度等于壁面速度(相对无滑移)
}

压力(不可压缩)常见搭配

  • 墙面(无论 noSlip/slip),推荐:
1
2
3
4
5
6
7
// p 或 p_rgh(依据求解器)
patchName
{
type fixedFluxPressure; // 与法向通量一致,数值更稳
value uniform 0;
}
// 简化也可用 zeroGradient(静止壁时)

湍流变量(RANS/LES)注意

  • noSlip 墙:
    • RANS 常用墙函数:nutkWallFunctionkqRWallFunctionomegaWallFunctionepsilonWallFunction 等。
    • 低雷诺数模型可用近壁解析(需足够细网格 (y^+ \sim 1))。
  • slip 墙/顶部边界:
    • 一般对 k, epsilon/omega, nut 使用 zeroGradientsymmetryPlane 类型(避免剪切和生产项)。
    • 大气边界层顶部常配:U: slipp/p_rgh: fixedFluxPressure 或 zeroGradientk/ε(ω)/nut: zeroGradient

4) 典型应用场景

  • noSlip

    • 实际固体表面的黏性作用:地面、建筑物、机翼、管道壁等。
    • RANS/LES 需要考虑壁面摩擦和近壁湍流结构。
  • slip

    • 大气边界层上边界(高空无应力顶盖,避免非物理摩擦与能量反射)。
    • 理想化高雷诺数外流问题中的“无边界层”近似或对称简化。
    • 临时远场/对称面处理(但更通用的是 symmetryPlane)。

区别于 symmetryPlanesymmetryPlane 对所有场(标量/向量/张量)都施加对称条件;slip 仅是速度的滑移条件,其他场需你自行设置(通常 zeroGradient)。


5) 常见误区与建议

  • slip 当作出流边界slip 是“壁”,不允许法向穿透;出入流要用 inlet/outletpressureInletOutletVelocity/freestream 等。
  • 在需要壁摩擦处误用 slip:会消除剪切应力、抹去边界层,导致力学量严重失真。
  • 移动壁仍用 noSlip+零值:对动网格不对,应该改用 movingWallVelocity(或给出匹配的 fixedValue 为壁面速度)。
  • 湍流变量与 slip 不匹配:记得将 k/ε/ω/nut 设为 zeroGradientsymmetryPlane,避免虚假湍流生产。

6) 简易示例(大气边界层:地面与顶盖)

1
2
3
4
5
6
7
8
9
10
11
// 0/U
ground { type noSlip; }
top { type slip; }

// 0/p (或 p_rgh)
ground { type fixedFluxPressure; value uniform 0; }
top { type fixedFluxPressure; value uniform 0; }

// 0/k, 0/epsilon (或 omega), 0/nut
ground { type kqRWallFunction; value uniform 0.0; } // 举例,视模型而定
top { type zeroGradient; }

一句话总结

  • noSlip:真实粘性固壁,(u_n=0,, u_t=0),有壁面剪切与边界层。
  • slip:无应力滑移壁,(u_n=0,, \partial u_t/\partial n=0),无壁面剪切、无边界层。

如果你提供具体的算例(求解器、雷诺数、是否用重力/热浮力、网格与 (y^+) 目标),我可以给你对应的完整边界条件清单。