Files
admin 792daa6feb 初始化项目:规划文档 + FFU 洁净室流场实时仿真 Demo
- 规划文档 01-07:愿景 / 架构 / 路线图 / 数据与AI / 风险 / 参考 / FFU Demo
- 演示图:系统架构、数据流水线、里程碑路线图(SVG + PNG)
- FFU Demo:D2Q9 LBM 高保真(360x270, 76s)+ 粗网格快速代理(120x90, 7.3s, 16-27x 加速)
- 趋势验证:速度 r=0.95 / 粒子 r=0.83 / 温度 r=0.68
- 工具链:仿真脚本、快速代理、图表生成器、SVG->PNG 转换
2026-09-18 00:05:18 +08:00

121 lines
5.1 KiB
Markdown
Raw Permalink 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.
# 02 · 系统架构与技术选型
## 1. 分层架构
![系统架构](assets/architecture.png)
系统分为六层,自下而上:
### L0 高保真真值层(Ground Truth)
| 组件 | 说明 |
| --- | --- |
| Ansys Fluent | 高保真求解器:RANS(k-ε / k-ω SST)、URANS、LES/DES |
| PyFluent | Python 驱动 Fluent,实现参数化建模、求解、后处理全自动化 |
| 参数化几何 | 基于参数脚本的几何生成(翼型族、车体变体、管道变径) |
| 边界条件库 | 入口速度/湍流度、出口压力、壁面函数等工况模板 |
### L1 数据与训练层
| 组件 | 说明 |
| --- | --- |
| 数据湖 | HDF5(训练样本)/ VTK(可视化)/ Zarr(云原生分块) |
| 数据工程 | 网格插值统一、无量纲化、场归一化、增广(旋转/镜像/缩放) |
| 训练框架 | PyTorch + AMP + DDP/FSDP,支持多卡与梯度检查点 |
| 主动学习 | 基于预测不确定性挑选高价值工况回灌 Fluent 重算 |
### L2 AI 模型层
| 模型 | 定位 | 适用场景 |
| --- | --- | --- |
| FNO(傅里叶神经算子) | 主力基线 | 规则网格、2D/3D 流场、分辨率无关 |
| DeepONet | 算子学习备选 | 低维参数空间、传感器布局优化 |
| PINN | 物理约束补充 | 少数据/无数据工况、反问题 |
| MeshGraphNet | 非结构网格 | 复杂几何、工业网格 |
| Transformer 算子 | 长程依赖 | 大尺度湍流结构、长时推演 |
### L3 推理服务层
| 组件 | 说明 |
| --- | --- |
| 推理引擎 | TensorRT / ONNX Runtime,FP16/INT8 量化 |
| 时间推进 | 自回归推演 + 潜空间动力学,支持变时间步 |
| 后处理 | 散度修正(投影法)、守恒律校正、平滑滤波 |
| 不确定性 | 深度集成(Deep Ensemble)/ MC-Dropout,输出置信区间 |
| 服务接口 | gRPC(内部)+ WebSocket(前端流式推送) |
### L4 交互与渲染层
| 组件 | 说明 |
| --- | --- |
| 前端渲染 | WebGPU(three.js / VTK.js),支持体渲染、流线、矢量场 |
| 参数控制 | 实时拖拽 Re/攻角/几何参数,防抖 + 插值过渡 |
| 场景管理 | 视角预设、剖切面、等值面、动画时间轴 |
### L5 应用层
数字孪生监控、工程设计优化、教学演示、实时决策支持。
## 2. 数据流
```
参数采样 ──► PyFluent 批量仿真 ──► 原始结果(VTK/CAS) ──► 数据工程(HDF5)
▲ │
│ ▼
主动学习回灌 ◄── 不确定性评估 ◄── 模型评估 ◄── 训练(PyTorch) ◄── 训练集构建
│
▼
导出 ONNX ──► TensorRT 引擎 ──► 推理服务
│
▼
WebSocket ──► WebGPU 前端实时渲染
```
**关键数据契约:**
| 阶段 | 格式 | 内容 |
| --- | --- | --- |
| 仿真输出 | .cas/.dat + .vtk | 网格 + 稳态/瞬态场(U, p, k, ω) |
| 训练样本 | HDF5 | 输入参数 + 网格坐标 + 场量张量 + 元数据 |
| 模型产物 | .pt → .onnx → .engine | 权重 + 归一化统计 + 版本信息 |
| 服务响应 | 二进制帧 | 场量数组 + 时间戳 + 不确定性 |
## 3. 技术选型对比
### 3.1 模型路线
| 方案 | 精度潜力 | 推理速度 | 数据需求 | 复杂几何 | 结论 |
| --- | --- | --- | --- | --- | --- |
| 传统降阶(POD-Galerkin) | 中 | 极快 | 中 | 差 | 作为基线对照 |
| FNO | 高 | 快 | 中高 | 差(需规则网格) | **主力** |
| DeepONet | 中高 | 快 | 中 | 中 | 备选 |
| PINN | 中 | 慢(需重训) | 极低 | 中 | 物理约束模块 |
| MeshGraphNet | 高 | 中 | 高 | **优** | 复杂几何阶段主力 |
| Transformer 算子 | 高 | 中 | 极高 | 中 | 探索性 |
### 3.2 加速与部署
| 选项 | 收益 | 成本 | 结论 |
| --- | --- | --- | --- |
| ONNX Runtime | 跨平台、易部署 | 加速有限 | 开发期默认 |
| TensorRT FP16 | 2-4x | 绑定 NVIDIA | **生产环境** |
| TensorRT INT8 | 4-8x | 精度损失需校准 | 边缘部署评估 |
| CUDA Graphs | 消除启动开销 | 实现复杂 | 小模型场景启用 |
### 3.3 可视化
| 选项 | 优势 | 劣势 | 结论 |
| --- | --- | --- | --- |
| VTK.js + WebGPU | 科学可视化生态完整 | 学习曲线陡 | **首选** |
| three.js | 生态活跃、上手快 | 科学可视化组件少 | 轻量场景 |
| ParaView Web | 功能最强 | 部署重 | 内部调试 |
| Unity/UE | 渲染效果最好 | 工程链路重 | 演示视频 |
## 4. 工程规范
- **数据版本**:DVC 或 Git-LFS 管理数据集与模型产物;
- **实验追踪**:MLflow / Weights & Biases 记录全部训练配置与指标;
- **配置管理**:Hydra 管理实验配置,保证可复现;
- **测试**:单元测试(数据管道、归一化、守恒校正)+ 回归测试(固定工况误差阈值);
- **CI/CD**:模型训练与评估流水线化,指标不达标自动阻断发布。