关于 fluid-dynamics-workflow
面向 CFD 与流体力学问题的系统化分析技能,覆盖问题定义、模型与边界条件选择、数值求解及结果验证。适合需要规划完整流体分析流程的工程师和研究人员。
主要功能
- 01定义计算域与流动状态
- 02选择控制方程和湍流模型
- 03设置边界条件与网格
- 04制定求解和收敛检查
- 05后处理并验证结果
适用场景
- 01规划外流或管道流 CFD 分析
- 02评估湍流模型与边界条件
- 03检查网格和时间步独立性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ soljourner/ claude-engineering-skills --skill fluid-dynamics-workflow安装后在 Claude Code 中输入/fluid-dynamics-workflow确认已加载。
附带文件equations-reference.mdworkflow-examples.md
详细介绍
流体动力学分析工作流
针对计算流体动力学(CFD)和解析流体力学问题的全面、系统化方法。
概述
此工作流将引导你完成完整的流体动力学分析,从初始问题建模到验证。它确保对控制物理过程进行严谨处理、合理选择模型,并正确验证结果。
完整分析工作流
1. 问题定义
1.1 几何与计算域
-
物理域:
- 定义计算域范围
- 识别关键几何特征(边界层、分离区、回流区)
- 确定对称面以降低计算成本
- 建立坐标系(笛卡尔、柱坐标、球坐标)
- 评估是否需要进行 2D 或 3D 分析
-
计算域尺寸考量:
- 入口:上游 5-10 个特征长度
- 出口:下游 20-30 个特征长度
- 侧边界:距物体 5-10 个特征长度
- 验证不存在人工约束效应
1.2 流动状态表征
雷诺数分析:
Re = ρVL/μ = VL/ν
Where:
- ρ: density
- V: characteristic velocity
- L: characteristic length
- μ: dynamic viscosity
- ν: kinematic viscosity
流动状态分类:
- Re < 2300:层流(管道)
- 2300 < Re < 4000:过渡流
- Re > 4000:湍流(管道)
- 外部流动:
- Re < 5×10⁵:层流边界层
- Re > 5×10⁵:湍流边界层
马赫数分析:
Ma = V/c
Where:
- V: flow velocity
- c: speed of sound = √(γRT)
可压缩性分类:
- Ma < 0.3:不可压缩(ρ = 常数)
- 0.3 < Ma < 0.8:亚声速可压缩流
- 0.8 < Ma < 1.2:跨声速流
- 1.2 < Ma < 5.0:超声速流
- Ma > 5.0:高超声速流
弗劳德数(自由液面流动):
Fr = V/√(gL)
- Fr < 1:缓流
- Fr = 1:临界流
- Fr > 1:急流
1.3 其他无量纲数
斯特劳哈尔数(非定常流动):
St = fL/V
- 表征振荡流动机制
- 涡脱落:圆柱体的 St ≈ 0.2
普朗特数(传热):
Pr = ν/α = μcp/k
格拉晓夫数(自然对流):
Gr = gβΔTL³/ν²
2. 控制方程
2.1 连续性方程
不可压缩流动:
∇·V = 0
可压缩流动:
∂ρ/∂t + ∇·(ρV) = 0
2.2 动量方程(纳维-斯托克斯方程)
不可压缩牛顿流体:
ρ(∂V/∂t + V·∇V) = -∇p + μ∇²V + ρg
分量形式(笛卡尔坐标):
ρ(∂u/∂t + u∂u/∂x + v∂u/∂y + w∂u/∂z) = -∂p/∂x + μ(∂²u/∂x² + ∂²u/∂y² + ∂²u/∂z²) + ρgₓ
ρ(∂v/∂t + u∂v/∂x + v∂v/∂y + w∂v/∂z) = -∂p/∂y + μ(∂²v/∂x² + ∂²v/∂y² + ∂²v/∂z²) + ρgᵧ
ρ(∂w/∂t + u∂w/∂x + v∂w/∂y + w∂w/∂z) = -∂p/∂z + μ(∂²w/∂x² + ∂²w/∂y² + ∂²w/∂z²) + ρgᵣ
可压缩形式:
ρ(∂V/∂t + V·∇V) = -∇p + ∇·τ + ρg
其中,应力张量为:
τᵢⱼ = μ(∂uᵢ/∂xⱼ + ∂uⱼ/∂xᵢ) + λ(∇·V)δᵢⱼ
2.3 能量方程
适用于可压缩流动:
ρcp(∂T/∂t + V·∇T) = ∇·(k∇T) + Φ + Q
其中:
- Φ:黏性耗散
- Q:热源项
总能量形式:
∂(ρE)/∂t + ∇·(ρEV) = -∇·(pV) + ∇·(k∇T) + ∇·(τ·V)
2.4 湍流建模
雷诺平均纳维-斯托克斯方程(RANS): 分解变量:u = ū + u'
雷诺应力张量:
τᵢⱼᴿᴬᴺˢ = -ρu'ᵢu'ⱼ
闭合模型决策树:
START
│
├─ Simple geometry, equilibrium turbulence?
│ └─ YES → k-ε Standard
│
├─ Wall-bounded flow, adverse pressure gradient?
│ └─ YES → k-ω SST (Menter)
│
├─ Separated flow, vortex shedding?
│ └─ YES → k-ω SST or Transition SST
│
├─ Swirling flow, rotation?
│ └─ YES → Reynolds Stress Model (RSM)
│
├─ High accuracy needed, large-scale unsteadiness?
│ └─ YES → Large Eddy Simulation (LES)
│
└─ Research, turbulence structure critical?
└─ YES → Direct Numerical Simulation (DNS)
模型对比:
| 模型 | 优势 | 局限性 | 最佳适用场景 |
|---|---|---|---|
| k-ε Standard | 稳健,经过充分验证 | 近壁面和分离流动预测较差 | 工业流动、简单几何形状 |
| k-ε Realizable | 对分离流动的预测更好 | 仍需要壁面函数 | 复杂几何形状、分离流动 |
| k-ω Standard | 近壁面表现良好 | 对自由来流敏感 | 壁面边界流动 |
| k-ω SST | 综合性能出色 | 计算成本较高 | 空气动力学、不利压力梯度 |
| Spalart-Allmaras | 单方程,效率高 | 针对航空航天领域校准 | 翼型、外部空气动力学 |
| RSM | 可捕捉各向异性 | 需解 5-7 个方程,较复杂 | 旋流、旋转流动 |
| LES | 可解析大涡 | 计算成本很高 | 非定常流动、声学 |
| DNS | 无建模误差 | 计算成本极高 | 基础研究,Re < 10⁴ |
3. 边界条件
3.1 入口边界条件
速度入口:
- 指定:u、v、w(速度分量)
- 对于湍流,还需指定:
- 湍流强度:I = u'/U(通常为 1-10%)
- 湍流长度尺度:l = 0.07L
- 或直接指定:k、ε(或 ω)
计算湍流量:
k = 3/2(UI)²
ε = C_μ^(3/4) k^(3/2) / l
ω = k^(1/2) / (C_μ^(1/4) l)
其中 C_μ = 0.09
压力入口:
- 指定:总压 p₀
- 流动方向
- 温度(可压缩流)
质量流量入口:
- 指定:ṁ = ρVA
- 流动方向
3.2 出口边界条件
压力出口:
- 指定静压
- 所有其他量采用零梯度:∂φ/∂n = 0
- 最常用且稳定
流出边界:
- 假设流动已充分发展
- ∂u/∂x = 0(所有变量)
- 出口位于下游较远处时使用
出口距离要求:
- 下游至少 10-15 个水力直径
- 对于分离流:20-30 个直径
3.3 壁面边界条件
无滑移壁面(标准):
- 壁面处 V = 0
- 指定温度(等温)或热通量
滑移壁面:
- 切向速度 ≠ 0
- 法向速度 = 0
- V·n = 0,∂V_tangential/∂n = 0
壁面函数方法: 对于湍流,当满足以下条件时使用壁面函数:
- 30 < y⁺ < 300
y⁺ = ρu_τy/μ
u_τ = √(τ_w/ρ) [friction velocity]
近壁分辨率要求:
| 方法 | 首层网格 y⁺ | 棱柱层总数 | 增长率 |
|---|---|---|---|
| 壁面函数 | 30-300 | 3-5 | 1.2-1.3 |
| 低雷诺数模型 | y⁺ < 1 | 10-20 | 1.1-1.2 |
| 增强壁面处理 | y⁺ < 5 | 8-15 | 1.15-1.25 |
移动壁面:
- 指定壁面速度
- 应用:旋转机械、输送带
3.4 对称边界与周期边界
对称边界:
- 法向速度 = 0
- 其他量采用零梯度
- ∂φ/∂n = 0
周期边界:
- 平移:φ(x₁) = φ(x₂)
- 旋转:用于旋转几何
- 用于缩小计算域
3.5 自由液面(多相流)
流体体积法(VOF):
- 使用体积分数追踪界面
- α = 1(相 1),α = 0(相 2)
水平集方法:
- 使用有符号距离函数
- 追踪清晰界面
4. 离散化
4.1 网格要求
网格类型:
| 网格类型 | 优点 | 缺点 | 最适用场景 |
|---|---|---|---|
| 结构化网格(六面体) | 高效、准确 | 复杂几何难以处理 | 简单计算域、通道 |
| 非结构化网格(四面体) | 几何适应性强 | 所需网格单元更多 | 复杂 CAD 几何 |
| 混合网格(棱柱 + 四面体) | 兼具两者优点 | 需要仔细设置 | 大多数 CFD 应用 |
| 多面体网格 | 网格单元更少、稳定 | 需要专用网格划分器 | 工业 CFD |
网格质量指标:
- 长宽比 < 100(最好 < 20)
- 偏斜度 < 0.85(最好 < 0.5)
- 正交性 > 0.15(最好 > 0.7)
网格无关性研究:
Refinement ratio: r = 1.5 to 2.0
Test at least 3 mesh levels:
- Coarse: N cells
- Medium: r²N cells
- Fine: r⁴N cells
Check convergence of key outputs:
- Forces (drag, lift)
- Pressures at critical points
- Flow rates
Richardson 外推:
f_exact ≈ f_fine + (f_fine - f_coarse)/(r^p - 1)
其中 p 为精度阶数
4.2 湍流的 Y⁺ 值
关键 y⁺ 范围:
Viscous sublayer: y⁺ < 5
Buffer layer: 5 < y⁺ < 30
Log-layer: 30 < y⁺ < 300
Outer layer: y⁺ > 300
首层网格高度计算:
y = y⁺μ/(ρu_τ)
For flat plate:
u_τ ≈ U∞√(C_f/2)
C_f = 0.058Re_L^(-0.2) [turbulent]
估算所需 y⁺ 对应的 y:
Example: Airfoil at Re = 1×10⁶, V = 50 m/s
1. Estimate C_f ≈ 0.0037
2. u_τ = 50√(0.0037/2) = 2.15 m/s
3. For y⁺ = 1: y = 1×1.5e-5/(1.225×2.15) ≈ 5.7e-6 m
First cell: 5.7 μm
4.3 时间步长选择(非定常)
CFL 条件(Courant-Friedrichs-Lewy):
CFL = VΔt/Δx ≤ CFL_max
For explicit schemes: CFL < 1
For implicit schemes: CFL < 10-20 (stability)
CFL < 1-5 (accuracy)
时间步长计算:
Δt = CFL × Δx_min / V_max
非定常特征的时间分辨率:
- 捕捉涡脱落:Δt < T/100(T = 脱落周期)
- 瞬态分析:Δt < τ/50(τ = 特征时间)
双时间步进:
- 物理时间步长:用于保证精度
- 内迭代:用于保证收敛
5. 求解策略
5.1 求解器选择
压力-速度耦合:
| 算法 | 类型 | 优势 | 使用场景 |
|---|---|---|---|
| SIMPLE | 分离式 | 节省内存 | 稳态 |
| SIMPLEC | 分离式 | 收敛更快 | 稳态/瞬态 |
| PISO | 分离式 | 瞬态精度高 | 高度非定常流动 |
| Coupled | 全耦合 | 稳健、快速 | 可压缩流、复杂流动 |
动量离散:
- 一阶迎风:稳定但数值耗散大
- 二阶迎风:精度良好
- QUICK:精度更高、有界
- 中心差分:数值耗散低,但需要稳定性
压力插值:
- Standard:适用于大多数情况
- PRESTO:适用于旋流、高速旋转流动
- Body-force-weighted:适用于浮力驱动流动
5.2 收敛标准
残差监测:
Continuity: < 1e-4
Velocity: < 1e-4
Turbulence: < 1e-4
Energy: < 1e-6
其他收敛检查:
- 监测力系数(C_L、C_D)
- 跟踪质量流量平衡(流入 = 流出)
- 检查积分量
- 检查流场可视化结果是否合理
收敛图应显示:
- 残差平滑下降
- 渐近趋近稳态值
- 所有残差同步下降
5.3 欠松弛因子
用途:稳定求解过程,防止发散
典型值(SIMPLE):
Pressure: 0.3
Momentum: 0.7
Turbulence (k): 0.8
Turbulence (ε,ω): 0.8
Energy: 0.9
调整策略:
- 对不稳定问题调低因子
- 随着求解过程推进逐步增大
- Coupled 求解器可使用更高的因子
6. 后处理与验证
6.1 流场可视化
必要的可视化内容:
-
速度云图/矢量图:
- 识别回流区
- 检查边界层发展情况
- 验证流动方向
-
压力分布:
- 表面压力系数:C_p = (p - p_∞)/(½ρV²)
- 识别压力梯度
- 检查是否存在非物理振荡
-
流线/迹线:
- 可视化流动模式
- 识别流动分离/再附
- 检查出口处是否存在反向流动
-
涡量:
- ω = ∇ × V
- 识别涡结构
- 可视化湍流
-
壁面剪切应力:
- τ_w = μ(∂u/∂y)_wall
- 分离:τ_w = 0
- 摩擦系数:C_f = τ_w/(½ρV²)
-
湍流量:
- 湍动能(k)
- 湍流黏度比(μ_t/μ)
- y⁺ 分布
6.2 力的计算
压力力和黏性力:
F_pressure = ∫∫ p·n dA
F_viscous = ∫∫ τ·n dA
F_total = F_pressure + F_viscous
无量纲系数:
C_D = D/(½ρV²A) [Drag coefficient]
C_L = L/(½ρV²A) [Lift coefficient]
C_M = M/(½ρV²AL) [Moment coefficient]
压力系数:
C_p = (p - p_∞)/(½ρV²)
摩擦系数:
C_f = τ_w/(½ρV²)
6.3 验证与确认
确认(正确求解方程):
- 网格收敛指数(GCI):
GCI = F_s |ε|/(r^p - 1)
Where:
- F_s = safety factor (1.25 for 3+ grids)
- ε = (f_fine - f_coarse)/f_fine
- r = refinement ratio
- p = order of accuracy
- 时间收敛性:
- 使用 Δt/2 重复计算
- 验证结果与时间步长无关
- 迭代收敛性:
- 确保残差充分下降
- 监测求解变量
验证(求解正确的方程):
-
解析解:
- 泊肃叶流(通道)
- 库埃特流
- Blasius 边界层
- 圆柱绕流势流
-
实验数据:
- 风洞测量
- PIV(粒子图像测速)
- 热线风速测量
-
基准算例:
- 顶盖驱动方腔流
- 圆柱绕流
- 后向台阶流
- Ahmed 车体
验证指标:
Mean Absolute Error:
MAE = (1/N)Σ|φ_CFD - φ_exp|
Root Mean Square Error:
RMSE = √[(1/N)Σ(φ_CFD - φ_exp)²]
Coefficient of Determination:
R² = 1 - Σ(φ_exp - φ_CFD)²/Σ(φ_exp - φ̄_exp)²
决策树
流动状态决策树
START: Define Problem
│
├─ Calculate Re = ρVL/μ
│
├─ Re < 1 (Stokes flow)
│ └─ Use: Creeping flow equations
│
├─ 1 < Re < 100 (Low Re)
│ └─ Use: Laminar NS, full domain
│
├─ Re < 2300 (Internal)
│ └─ Use: Laminar NS
│
├─ 2300 < Re < 4000 (Transitional)
│ └─ Use: Transition models (γ-Re_θ)
│
├─ Re > 4000 (Turbulent)
│ ├─ Calculate Ma = V/c
│ │
│ ├─ Ma < 0.3
│ │ └─ Incompressible RANS
│ │
│ ├─ 0.3 < Ma < 1
│ │ └─ Compressible RANS
│ │
│ └─ Ma > 1
│ └─ Compressible + shock capturing
│
└─ Unsteady features?
├─ YES → Calculate St = fL/V
│ ├─ St > 0.1 → Use URANS or LES
│ └─ St < 0.1 → RANS may suffice
└─ NO → RANS sufficient
湍流模型选择树
START: Turbulent Flow Confirmed
│
├─ Computational Budget?
│
├─ VERY HIGH (Research)
│ └─ Use DNS (if Re allows)
│
├─ HIGH
│ ├─ Massively separated?
│ │ └─ YES → LES (WALE, Smagorinsky)
│ │
│ └─ NO → URANS with fine mesh
│
└─ MODERATE (Engineering)
│
├─ Flow Type?
│
├─ EXTERNAL (Aero/Hydro)
│ ├─ Pressure gradient?
│ │ ├─ ADVERSE → k-ω SST
│ │ └─ FAVORABLE → Spalart-Allmaras
│ │
│ └─ Separation likely? → k-ω SST
│
├─ INTERNAL (Pipes, Channels)
│ ├─ Simple geometry → k-ε Standard
│ ├─ Complex, bends → k-ε Realizable
│ └─ Heat transfer → k-ω SST
│
├─ ROTATING/SWIRLING
│ └─ RSM (Reynolds Stress Model)
│
└─ TRANSITIONAL
└─ γ-Re_θ Transition SST
网格策略决策树
START: Domain Defined
│
├─ Geometry Complexity?
│
├─ SIMPLE (Rectangular, cylindrical)
│ └─ Structured hexahedral
│ └─ O-grid for cylinders
│
├─ MODERATE
│ └─ Hybrid mesh
│ ├─ Prism layers at walls
│ └─ Hex/tet in core
│
└─ COMPLEX (CAD geometry)
└─ Unstructured
├─ Prism layers at walls (always)
└─ Tet or poly in core
│
├─ Boundary Layer Resolution?
│
├─ WALL FUNCTIONS (y⁺ = 30-300)
│ ├─ First cell: y⁺ ≈ 50
│ ├─ Prism layers: 3-5
│ └─ Growth rate: 1.2-1.3
│
└─ NEAR-WALL RESOLUTION (y⁺ < 1)
├─ First cell: y⁺ < 1
├─ Prism layers: 10-20
├─ Growth rate: 1.1-1.2
└─ At least 10 cells in boundary layer
│
└─ Refinement Zones?
├─ Wake regions: 2-3× density
├─ Shear layers: graded refinement
├─ Recirculation: fine mesh
└─ Free stream: coarse OK
常见问题与解决方案
问题:求解不收敛
诊断:
- 残差振荡
- 力系数波动
- 求解发散
解决方案:
- 降低欠松弛因子
- 改善网格质量(长宽比、偏斜度)
- 初始阶段使用一阶格式
- 检查边界条件是否一致
- 减小时间步长(非定常流动)
- 切换到耦合求解器
问题:结果不符合物理规律
诊断:
- 绝对压力为负
- 入口处出现反向流动
- 质量不平衡 > 1%
- 分离情况不符合实际
解决方案:
- 核实边界条件
- 检查材料属性
- 确保参考值设置正确
- 核实坐标系
- 检查网格错误
- 检查湍流模型的选择
问题:y⁺ 值过高
诊断:
- 使用低雷诺数模型时,y⁺ > 5
- 使用壁面函数时,y⁺ < 30
解决方案:
- 重新计算首层网格高度
- 调整膨胀参数
- 使用增强型壁面处理
- 在壁面函数方法和壁面解析方法之间切换
最佳实践总结
-
始终从问题的物理规律入手:
- 计算无量纲数
- 确定主导现象
- 选择合适的简化方法
-
系统地构建网格:
- 从粗网格开始,逐步细化
- 优先保证边界层分辨率
- 进行网格无关性研究
-
从简单开始,逐步增加复杂度:
- 从稳态 RANS 开始
- 使用一阶迎风格式以保证稳定性
- 逐步采用高阶格式
- 如有需要,加入非定常效应
-
监控所有指标:
- 残差
- 力系数
- 质量流量平衡
- y⁺ 分布
-
严格验证:
- 与实验结果或理论进行比较
- 检查物理可实现性
- 进行不确定性量化
- 记录假设和局限性
-
报告不确定性:
- 网格收敛指数
- 与验证数据的比较
- 对边界条件的敏感性
- 模型形式不确定性
参考资料和资源
基础读物:
- Anderson 的《Computational Fluid Dynamics》
- Versteeg 和 Malalasekera 的《An Introduction to Computational Fluid Dynamics》
- Pope 的《Turbulent Flows》
验证数据库:
- NASA 湍流建模资源
- ERCOFTAC 数据库
- NPARC 联盟验证档案
最佳实践指南:
- AIAA《CFD 验证与确认指南》
- ASME V&V 标准
- ERCOFTAC 最佳实践指南