层流管内流动(Hagen-Poiseuille)

分类: 流体解析(CFD) | 综合版 2026-04-06
CAE visualization for laminar pipe flow theory - technical simulation diagram
層流管内流れ(Hagen-Poiseuille)

理论与物理

概述

🧑‍🎓

老师,Hagen-Poiseuille 流动常被用作 CFD 的第一个基准测试,对吧?


🎓

没错。圆管内的完全发展层流是少数几个存在 Navier-Stokes 方程精确解的问题之一。它非常适合用于 CFD 代码验证,可以将离散化误差与理论解直接比较。


控制方程与精确解

🧑‍🎓

请讲解一下推导过程。


🎓

在稳态、轴对称、完全发展的条件下,圆柱坐标系轴向的 NS 方程可简化为:


$$ 0 = -\frac{dp}{dx} + \mu \frac{1}{r} \frac{d}{dr}\left(r \frac{du}{dr}\right) $$

🎓

在壁面 $r = R$ 处应用 $u = 0$(无滑移),在中心 $r = 0$ 处应用 $du/dr = 0$(对称性)的边界条件求解,得到:


$$ u(r) = \frac{R^2 - r^2}{4\mu}\left(-\frac{dp}{dx}\right) = U_{max}\left(1 - \frac{r^2}{R^2}\right) $$

这就是 Hagen-Poiseuille 的抛物线型速度分布。最大速度 $U_{max} = R^2 (-dp/dx) / (4\mu)$ 出现在管道中心。


体积流量与平均速度

🧑‍🎓

体积流量是怎样的呢?


🎓

对速度分布进行积分,得到:


$$ Q = \int_0^R u(r) \cdot 2\pi r \, dr = \frac{\pi R^4}{8\mu}\left(-\frac{dp}{dx}\right) $$

这就是 Hagen-Poiseuille 定律。流量与半径的四次方成正比。直径变为两倍,流量则变为16倍。


🎓

平均速度为 $\bar{U} = Q / (\pi R^2) = U_{max} / 2$,是最大速度的一半。


摩擦系数

🧑‍🎓

管道摩擦系数也能从理论上求得,对吧?


🎓

Darcy-Weisbach 摩擦系数 $f$ 为:


$$ f = \frac{64}{Re_D}, \quad Re_D = \frac{\bar{U} D}{\nu} $$

🎓

也有使用 Fanning 摩擦系数 $C_f$ 的惯例。$C_f = f/4 = 16/Re_D$。需要注意容易混淆。


🧑‍🎓

$f = 64/Re$ 很有名呢。超过 Re = 2300 就会向湍流过渡,对吧?


🎓

通常是这样说的,但准确地说,它取决于管道入口的扰动水平。在扰动极小的情况下,也有实验观察到层流能维持到 Re = $10^5$ 左右。相反,如果入口存在大的扰动,即使在 Re = 2000 以下也可能发生转捩。


入口发展段

🧑‍🎓

达到完全发展之前的入口发展段大概有多长?


🎓

层流的入口发展段长度可以用下式估算。


$$ \frac{L_e}{D} \approx 0.06 Re_D $$

🎓

Re = 100 时,$L_e \approx 6D$;Re = 2000 时,$L_e \approx 120D$。如果想在 CFD 中获得完全发展流,需要计算长度超过此值的管道,或者使用周期性边界条件来模拟“无限长管道”。


🧑‍🎓

使用周期性边界条件似乎计算成本更低。


🎓

是的。在流动方向设置周期性边界,并将压力梯度作为源项给出。OpenFOAM 中可以使用 cyclicAMI 边界和 fvOptions 中的 meanVelocityForce 来实现。

Coffee Break 闲谈

毛细血管与Hagen-Poiseuille公式——医生也用的流体力学

Hagen-Poiseuille公式揭示了“流量与管径的四次方成正比”这一强烈关系。直径减半,流量变为1/16。实际上,这与心血管科医生向患者解释动脉硬化严重程度时使用的逻辑相同。血管仅狭窄20%,流量就会降至约59%。CFD中分析血管狭窄时也会用到HP公式,但“生物血管是非牛顿流体且有脉动”这一点会导致与精确解产生偏差。在实际应用中,“用HP公式进行粗略估算→用CFD进行精密评估”的两阶段方法是常规操作。

各项的物理意义
  • 时间项 $\partial(\rho\phi)/\partial t$:想象一下打开水龙头的瞬间。最初水流不稳定地喷溅,过一会儿才变成稳定水流,对吧?描述这个“变化过程中”的就是时间项。心脏搏动导致血流脉动,发动机阀门每次开闭引起流动变化,这些都是非定常现象。那么定常分析是什么?就是只看“经过足够时间流动稳定后”——也就是令此项为零。计算成本会大幅降低,因此先用定常求解是CFD的基本策略。
  • 对流项 $\nabla \cdot (\rho \mathbf{u} \phi)$:把落叶扔进河里会怎样?会被水流带着向下游移动,对吧?这就是“对流”——流体运动搬运物质的效果。暖风的暖气能到达房间另一端,也是因为空气这个“搬运工”通过对流输送热量。这里有趣的是——此项包含“速度×速度”,因此是非线性的。也就是说,流速变快,此项会急剧增强,变得难以控制。这就是湍流的根本原因。常见的误解:“对流和传导差不多”→ 完全不一样!对流是流动搬运,传导是分子传递。效率有天壤之别。
  • 扩散项 $\nabla \cdot (\Gamma \nabla \phi)$:有过在咖啡里倒入牛奶后放置不管的经历吗?即使不搅拌,过一会儿也会自然混合。那就是分子扩散。那么下一个问题——蜂蜜和水,哪个更容易流动?当然是水,对吧?因为蜂蜜的粘性($\mu$)高,所以不易流动。粘性越大,扩散项越强,流体的运动就变得“粘稠”。雷诺数小的流动(缓慢、粘稠)中扩散占主导。相反,Re数大的流动中,对流占压倒性优势,扩散则成为配角。
  • 压力项 $-\nabla p$:按压注射器的活塞,液体就会从针头有力地射出,对吧?为什么?因为活塞侧压力高,针头侧压力低——这个压力差产生了推动流体的力。大坝放水也是同样原理。天气图上等压线密集的地方呢?没错,会刮强风。“有压力差的地方就会产生流动”——这就是纳维-斯托克斯方程压力项的物理意义。这里的误解点:CFD中的“压力”多为表压而非绝对压力。切换到可压缩分析时结果突然出错,原因可能就是混淆了绝对压力/表压。
  • 源项 $S_\phi$:受热的空气会上升——为什么?因为比周围空气轻(密度低),被浮力推上去了。这个浮力作为源项添加到方程中。此外,燃气灶火焰产生化学反应热,工厂电磁泵对金属熔液施加洛伦兹力……这些都是“从外部向流体注入能量或力”的作用,用源项表示。忘记源项会怎样?自然对流分析中忘记加入浮力,流体就完全不动——就像冬天房间里开了暖气,但暖空气却不上升,这种物理上不可能的结果。
假设条件与适用范围
  • 连续介质假设:克努森数 Kn < 0.01(分子平均自由程 ≪ 特征长度)时成立
  • 牛顿流体假设:剪切应力与应变速率呈线性关系(非牛顿流体需要粘度模型)
  • 不可压缩假设(Ma < 0.3 时):将密度视为常数。马赫数0.3以上需考虑可压缩性效应
  • Boussinesq近似(自然对流):仅在浮力项中考虑密度变化,其他项使用恒定密度
  • 不适用的情形:稀薄气体(Kn > 0.1)、超音速/高超音速流动(需要捕捉激波)、自由表面流动(需要VOF/Level Set等)
量纲分析与单位制
变量SI单位注意事项·换算备忘
速度 $u$m/s入口条件中从体积流量换算时,注意截面积单位
压力 $p$Pa区分表压与绝对压力。可压缩分析中使用绝对压力
密度 $\rho$kg/m³空气: 约1.225 kg/m³@20°C,水: 约998 kg/m³@20°C
粘性系数 $\mu$Pa·s注意与运动粘性系数 $\nu = \mu/\rho$ [m²/s] 混淆
雷诺数 $Re$无量纲$Re = \rho u L / \mu$。层流/湍流转捩的判断指标
CFL数无量纲$CFL = u \Delta t / \Delta x$。直接关系到时间步长的稳定性

数值解法与实现

数值方法

🧑‍🎓

既然有理论解,为什么还要用CFD求解呢?


🎓

主要有两个目的。


1. 代码验证(Code Verification):与理论解比较,确认离散化误差的阶数

2. 湍流转捩研究:以层流解为基态,施加扰动,追踪转捩过程


离散化误差的评估

🧑‍🎓

与理论解比较时,具体如何评估呢?


🎓

将网格系统地细化到三个或更多级别,确认误差的收敛阶数。


$$ \epsilon_h = \| u_{CFD} - u_{exact} \|_2 $$

🎓

举例来说,用20、40、80个径向网格单元进行计算,并在双对数坐标图上绘制误差。对于二阶精度格式,斜率应为 $-2$,即误差应按 $\epsilon \propto h^2$ 减少。


径向单元数$\Delta r / R$$L_2$ 误差(速度)收敛阶数
100.1$2.5 \times 10^{-3}$
200.05$6.3 \times 10^{-4}$1.99
400.025$1.6 \times 10^{-4}$1.98
800.0125$4.0 \times 10^{-5}$2.00
🧑‍🎓

如果收敛阶数与理论值(二阶精度则为2)一致,就可以说代码实现正确了,对吧。


🎓

没错。这是与制造解方法 (MMS) 并列的代码验证基本方法。


轴对称模型 vs 全3D模型

🧑‍🎓

因为是圆管,所以可以用轴对称模型计算吧?


🎓

完全发展层流是轴对称的,所以可以用2D截面计算。OpenFOAM 中可以使用 wedge 网格(5度楔形,前后表面应用 wedge 条件)。


🎓

但是,如果包含入口发展段或要研究湍流转捩,则需要全3D计算。入口发展段的流动虽然是轴对称的,但转捩是由三维扰动驱动的。


OpenFOAM 中的周期性管道流

🧑‍🎓

请讲解一下使用周期性边界条件的无限长管道设置。


🎓

OpenFOAM 中的设置示例。


```

boundary:

inlet: { type cyclic; neighbourPatch outlet; }

outlet: { type cyclic; neighbourPatch inlet; }

wall: { type wall; }

system/fvOptions:

momentumSource:

{

type meanVelocityForce;

selectionMode all;

fieldName U;

Ubar (1 0 0); // 目标平均速度

}

```


🎓

在此设置中,入口和出口周期性连接,压力梯度会自动调整以维持指定的平均速度 $\bar{U} = 1$ m/s。对于稳态层流,使用 simpleFoam 数百次迭代即可收敛。


Fluent 中的设置

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

熱解析V&V・品質保証構造解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
关于作者