库埃特流动(平行平板间剪切流动)
理论与物理
概述
老师,我听说库埃特流是最基本的粘性流动之一,在 V&V 中怎么使用呢?
这是上板以速度 $U$ 移动的平行平板间的稳态层流。线性速度分布 $u(y) = Uy/h$ 是精确解。它是纳维-斯托克斯方程最简单的非平凡解,用于验证 CFD 求解器的粘性项实现。ASME V&V 20 的代码验证流程以此为起点非常合适。
为什么这是代码验证的起点呢?
因为速度场在空间上是线性的,所以任何离散化方案(有限体积法、有限元法、差分法)理论上都应该能精确求解。如果数值解与理论解不一致,就能立即发现离散化或边界条件实现中存在错误。扩展到带压力梯度的广义库埃特流(Couette-Poiseuille 流),还可以验证抛物线分布。
控制方程
请告诉我具体的公式。
在稳态、不可压缩、充分发展流的假设下,纳维-斯托克斯方程为
纯库埃特流中 $dp/dx = 0$,所以
剪切应力 $\tau$ 不随高度变化。壁面剪切应力的理论值为 $\tau_w = \mu U/h$,可直接用于验证 CFD 求解器的壁面摩擦系数输出。
有压力梯度的情况呢?
广义库埃特流(Couette-Poiseuille 流)中
第二项是 Poiseuille 成分,呈抛物线分布。$dp/dx$ 的符号改变顺流/逆流的叠加模式,可用于验证离散化方案的非线性项精度。
基准数值示例
请告诉我具体的验证参数。
$h = 0.01$ m、$U = 1$ m/s、$\mu = 0.001$ Pa·s(相当于水)、$\rho = 1000$ kg/m³。Re = $\rho U h/\mu = 10000$,但强制为层流解。
理论值: $u(y) = 100y$(y 单位为 m)、$\tau_w = 0.1$ Pa。
使用 OpenFOAM 的 simpleFoam,即使高度方向只有 5 个单元的网格,速度场也能精确吻合。这是因为 FVM 的线性插值能准确表示线性速度场。如果不一致,则说明边界条件实现有问题。
各项的物理含义
- 守恒量的时间变化项:表示所考虑物理量的时间变化率。稳态问题中为零。【形象比喻】给浴缸放水时,水位随时间上升——这个“单位时间的变化速度”就是时间变化项。关闭阀门水位稳定后的状态就是“稳态”,时间变化项为零。
- 通量项(流束项):描述物理量的空间输运和扩散。大致分为对流和扩散两种。【形象比喻】对流就像“河流将小船运走”,是物体随流动被输送。扩散就像“墨水在静止水中自然扩散”,是物体因浓度差而移动。这两种输运机制的竞争支配着许多物理现象。
- 源项(生成/消失项):表示物理量的局部生成或消失的外力/反应项。【形象比喻】在房间里打开暖气,该处就“生成”了热能。化学反应消耗燃料,质量就“消失”。这是表示从外部注入系统的物理量的项。
假设条件与适用范围
- 连续介质假设在空间尺度上成立
- 材料/流体的本构关系(应力-应变关系、牛顿流体定律等)在适用范围内
- 边界条件在物理上合理且在数学上正确定义
量纲分析与单位制
| 变量 | SI单位 | 注意事项·换算备忘 |
|---|---|---|
| 特征长度 $L$ | m | 需与 CAD 模型的单位制一致 |
| 特征时间 $t$ | s | 瞬态分析的时间步长需考虑 CFL 条件和物理时间常数 |
数值解法与实现
OpenFOAM 中的实现
请告诉我如何在 OpenFOAM 中设置库埃特流。
使用 simpleFoam。案例配置如下:
constant/transportProperties:nu 1e-06(运动粘度系数)0/U: 上壁面fixedValue uniform (1 0 0)、下壁面fixedValue uniform (0 0 0)、前后表面empty0/p: 入口/出口fixedValue uniform 0system/fvSchemes:div(phi,U) Gauss linear即可
使用二维网格(用 blockMesh 生成 1 个单元 × N_y × 1 个单元)求解。即使 N_y = 5,速度分布也能精确吻合。
在 OpenFOAM 中如何指定移动壁面的边界条件?
使用 fixedValue 直接指定壁面速度。虽然也有 movingWallVelocity 这个边界条件,但那是用于网格移动的 ALE 计算的,对于壁面位置固定仅指定速度的情况,使用 fixedValue 即可。
Ansys Fluent 中的实现
Fluent 中呢?
在壁面边界条件中启用 Moving Wall 选项,设置 Speed = 1 m/s。使用稳态求解器(Pressure-Based, Coupled 或 SIMPLE)求解。离散化选择 Second Order。
Fluent 内部使用 Rhie-Chow 插值进行压力-速度耦合,但在库埃特流中压力梯度为零,因此该插值的精度不成问题。不使用壁面函数,指定 Laminar 模型。
如果加入湍流模型会怎样?
在 Re = 10000 时启用湍流模型,会偏离层流理论解。k-ε 模型会在壁面附近产生湍流粘度,使速度剖面呈非线性。这是湍流模型的行为,而非代码错误。代码验证时必须使用 Laminar 模型执行,确认与理论解一致。
网格收敛特性
库埃特流的网格收敛表现出什么特性?
因为是线性速度场,所以使用线性及以上精度的离散化方案时,理论上一个单元就能得到精确解。实际上取决于 FVM 的面插值(linear, upwind 等)的阶数。
| 方案 | 所需单元数 | 速度误差 |
|---|---|---|
| upwind(1阶) | 1 个单元即精确 | 0(对线性场) |
| linear(2阶) | 1 个单元即精确 | 0 |
| QUICK(3阶) | 1 个单元即精确 | 0 |
所有方案都能精确吻合。这是库埃特流的特殊性,对于非线性速度场(Poiseuille 流)则会出现差异。
那验证的意义不就没了?
不,当“本应精确吻合却不吻合”时,就能检测出错误。边界条件的内部插值、壁面速度的处理、压力方程的零梯度条件等,实现的细节中可能隐藏着错误。此外,也可用于非均匀网格(偏置网格)的精度验证。
低阶单元
计算成本低,实现简单,但精度有限。在粗网格上可能产生较大误差。
高阶单元
在同一网格上实现更高精度。计算成本增加,但通常所需单元数更少。
牛顿-拉弗森法
非线性问题的标准方法。在收敛半径内具有二阶收敛性。以 $||R|| < \epsilon$ 作为收敛判据。
时间积分
实践指南
V&V 流程手册
相关主题
なった
詳しく
報告