Files
Physics-Ai-Fluent-Analysis/docs/开发过程与提示词汇总.md
T

7.7 KiB
Raw Blame History

开发过程与提示词汇总

记录本项目从需求提出到最终交付的完整对话过程、关键技术决策与物理认识。 项目:水平卧式流化床空床流场仿真(GPU LBM)


一、需求提出

用户初始需求(原始提示词):

我的水平卧式流化床,床板开孔 2mm,开孔率 5.6%,床板的尺寸 2400x567mm,床板下方进风, 进风分成 4 个区段,每一个区段都是一个箱体。每个区段都用直径 300 的进风管居中,从侧面进风, 也就是进风风向和床板是平行的。床板是水平放,床板的孔是往出口方向倾斜了一点,不是正朝上的, 倾斜很小,只有 5 度。进风风量是 2500 立方米每小时每个区段,然后进风风压,也就是床板上下方 压差是 2900Pa,上面沸腾区段需要你模拟出来一个合适的放大形状,请模拟空床的流场,顶部沸腾段 顶部是大排风管,还是上面这个快速计算的思路。

需求拆解:

  • 几何:2400×567 布风板、4 区段风箱、DN300 侧进风、2mm 孔 / 5.6% 开孔率 / 5° 倾斜、渐扩沸腾段、顶部大排风管
  • 工况:每段 2500 m³/h,压差 2900 Pa
  • 目标:空床气相流场,快速计算,结果可参考

二、关键澄清(问答)

用户对 3 个关键几何点做出选择:

问题 用户选择
4 段如何划分 / 进风管方向 沿长度均分 4×600mm,DN300 从 567 侧面水平居中进入
沸腾段放大形状 矩形渐扩 + 顶部大排风(2.4×0.567 → 2.4×1.2,DN800)
孔板 5° 倾斜方向 朝 +x(x=2.4 为出料端)

后记:倾角方向在后续被用户更正为 -x(见"关键物理认识"第 4 条)。


三、技术路线演进

LBM (GPU)  ──►  发现问题  ──►  RANS 尝试  ──►  失败  ──►  回到 LBM + 风机曲线

阶段 1:GPU LBM 空床仿真

  • 3D D3Q19 LBM,numba.cuda 加速,实测 ~120 MLUPS
  • 布风板最初用「速度边界」强制表观气速
  • 问题:压力场符号反了(顶部压力 > 风箱),且质量不守恒

阶段 2:RANS 尝试(用户选 A)

  • 用 scipy + pyamg 写投影法 + AMG 压力求解器
  • 失败:共置网格棋盘振荡 + 进口速度边界过约束,压力爆到 -72703 Pa → NaN
  • 改交错网格 MAC,AMG 收敛正常(残差 9e-9),但速度进口仍把压力逼爆

阶段 3:回到 LBM + 用户的两个关键物理修正

  • 修正 1(恒功率风机曲线):Δp · Q = P,不再强制流量
  • 修正 2(压力进口):进口给风机压力,流量自然涌现
  • 结果:压力符号彻底修正,风箱 > 沸腾段 ✓

四、关键物理认识(用户指出,扭转全局)

1. 不是"强制满足",而是风机曲线

"2500 是风机额定流量,2900 是压力,并不是不可变的,你搞什么呢,不是强制满足, 而是离心风机会出现一个风机曲线的"

含义:2500 m³/h 与 2900 Pa 是同一额定点上的两个值,不是两个独立约束。 工况点是「风机曲线 ∩ 系统阻力曲线」的唯一交点。仿真中只施加风机曲线压力,流量涌现。

2. 恒功率输出

"风机是遵循恒功率的输出"

含义:风机曲线不是抛物线,而是 Δp · Q = P(双曲线)。 额定点 (0.6944 m³/s, 2900 Pa) → P ≈ 2014 W/段,总 8056 W。

3. 不要纠结收敛

"你为什么总是在纠结于收敛,如果你走到收敛这条路,那么这个项目就不可能成功"

含义:目标是快速、物理自洽的结果,而非把残差压到机器精度。

4. 倾角方向

"孔的倾斜方向是这个绿色箭头方向,我觉得你搞错了"

含义:孔轴倾斜方向为 上-左(-x),而非我之前设的 +x。

5. 板厚

"板厚只有 2mm,你按多少算的"

含义:布风板厚 2 mm,而我当时用了 50 mm(差 25 倍),已修正。


五、遇到的问题与修正

# 问题 根因 修正
1 压力场符号反了 布风板用速度边界,无压降;压力由几何决定 改为压力进口 + 多孔板
2 质量不守恒(进 9903 / 出 20100) 速度边界强制流量,与无散约束冲突 压力进口让流量自由
3 RANS 压力爆到 -72703 Pa 共置网格棋盘 + 进口过约束 改交错网格;仍失败,放弃
4 压力进口后流量反流 -5828 倾角动量源施加过强 暂关闭倾角力
5 顶部"进风口"误判 渐扩段末端向排风管强汇流的贴壁高速带 探针证实为汇流,非源
6 板厚 50mm 我设错 改 2 mm
7 500 格/m 要求 硬件装不下 见"硬件限制"

六、硬件限制(诚实核算)

网格 单元数 D3Q19 双缓冲显存
80 格/m 4.2 M 0.6 GB ✅
100 格/m 8.3 M 1.3 GB ✅
200 格/m 66 M 10.1 GB ❌
300 格/m 223 M 33.9 GB ❌
500 格/m 1033 M 157 GB ❌

本机:RTX A2000 8 GB 显存 + 64 GB 内存。

  • 500 格/m = 10.3 亿单元,光分布函数需 157 GB,超显存 20 倍,物理上装不下
  • 本机 GPU 实际上限 ≈ 100–150 格/m
  • 要上 500 格/m,需云 GPU(A100/H100 80GB × 2–4)或 CPU 求解器(OpenFOAM,64GB 内存可跑 ~250–300 格/m)

七、最终交付

仓库:http://124.220.63.9:30000/admin/Physics-Ai-Fluent-Analysis.git(分支 fluidized-bed)

内容:

  • tools/fbed_simulation.py:主求解器(100 格/m,8.27M 单元)
  • tools/fbed_figures.py / fbed_analysis.py:出图
  • docs/assets/:19 张图(4× 分辨率)+ fbed_fields.npz
  • README.md:项目详细说明

结果:

  • 工况点 Q ≈ 1463 m³/h(风机曲线与系统阻力交点)
  • 风箱 4061 Pa > 沸腾段 181 Pa(Δp = +3880 Pa,符号正确)
  • 求解 3900 步 / 184 s

八、前景价值与 AI 相关性

工业价值

流化床是化工/能源/制药/食品行业核心装备,空床流场决定布风均匀性、死区、颗粒夹带与配气精度。 传统 CFD 小时~天级,无法支撑设计迭代;本 GPU LBM 把它压到分钟级,可用于布风板优化、分区配气标定、故障诊断与教学演示。

科学意义

  • 验证「恒功率风机曲线 + 压力进口 + 多孔板」物理自洽建模路线(工况点由两曲线交点唯一确定)
  • 定量揭示不可压求解器表达高损失系统(K≈900,2900 Pa)的固有限制
  • 给出亚网格多孔板的建模误差(2 mm 板在 100 格/m 下不可分辨)

AI 相关性

GPU 求解器(真值) ──► 参数化数据集 ──► 神经算子训练 ──► 毫秒级实时推理
   (本仓库)           (几何/边界/风速)   (FNO/GNN/Transformer)   (数字孪生)
AI 方向 结合点
神经算子 FNO/DeepONet 把解算子参数化为网络权重
GNN (MeshGraphNet) 适配复杂/不规则几何
Transformer/Attention 长程依赖,捕捉回流与全局耦合
PINN/物理约束 损失中嵌入 N-S 与守恒律
数字孪生 毫秒推理 → 参数拖拽即时刷新

战略意义:全链路开源栈(numba/CUDA/scipy/pyamg),无商业 CFD 许可依赖;同一求解器可平移至洁净室、数据中心、燃烧室等流场场景。


九、后续方向

  1. OpenFOAM:simpleFoam + k-ε + porousBafflePressure,CPU 跑 250–300 格/m
  2. 多孔跳变边界替代离散开孔,消除网格依赖
  3. 神经算子:以求解器生成参数化数据集 → 训练 GNN/Transformer → 毫秒级实时推理

本文档汇总了从需求到交付的完整技术讨论,供后续迭代参考。