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

180 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 开发过程与提示词汇总
> 记录本项目从需求提出到最终交付的完整对话过程、关键技术决策与物理认识。
> 项目:水平卧式流化床空床流场仿真(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 → 毫秒级实时推理
---
*本文档汇总了从需求到交付的完整技术讨论,供后续迭代参考。*