一个可挂载到 AI 编程助手(Claude / Copilot / Cursor 等支持 Agent Skill 的智能体)的领域技能包。 挂载后,智能体获得为 OpenFOAM 双版本生成、修改、静态校验 CFD 算例配置文件与自定义模型编译脚手架的专业能力, 并以内置的两套完整官方源码为“反幻觉背板”,禁止凭记忆杜撰字典键名与 C++ API。
- Foundation 版 OpenFOAM-10(
.org,经典simpleFoam/interFoam独立求解器) - ESI 版 OpenFOAM-v2306(
.com,与 v2406 同系)
本技能只生成配置与代码(system/ + constant/ + 0/ + 自定义模型源码 + 编译脚手架)。
blockMesh/snappyHexMesh/ 求解器 /wmake的实际运行交给你本机安装的 OpenFOAM。
| 场景 | 产出 |
|---|---|
| 从零搭建标准算例 | 完整 system/ constant/ 0.orig/,可直接 blockMesh → 求解器 |
| 绕流 / 内流 / 多相 / 传热 / 自然对流 / 反应 | 匹配求解器 + 湍流模型 + 边界条件的一整套字典 |
| 修改已有算例 | 定位求解器与字段,按需最小改动,BC 改在 0.orig/ |
| 论文算法植入 | 核对量纲后落地 BC/IC/常数/时间步,写进 constant/ 字典 |
| 自定义模型(dragModel / turbulence / fvOptions) | Foo.H/Foo.C + Make/files + Make/options,照官方源码骨架写 wmake libso |
每次交付都附三份总览:MANIFEST.md(文件清单)、ALGORITHM.md(物理/数值方案+官方源码依据)、TUNING.md(问题与调优)。
到本仓库 Releases 下载 CFDriver_skill.zip(约 147 MB,已内置 OpenFOAM-10 + v2306 完整 applications/solvers + src + tutorials),解压后把 openfoam-case-builder/ 目录挂载为智能体的 Skill。
CFDriver_skill/
├── openfoam-case-builder/ ← 挂载这个目录
│ ├── SKILL.md
│ ├── reference/
│ ├── templates/
│ └── backplane/
│ ├── SOURCE_MAP.md
│ └── vendor/
│ ├── OpenFOAM-10/ ← 完整官方源码(背板)
│ └── OpenFOAM-v2306/ ← 完整官方源码(背板)
└── _shared/
git clone https://github.com/LZF1111/CFDriver_skill.git
cd CFDriver_skill/openfoam-case-builder/backplane
# 按需拉官方源码到 vendor/(联网)或登记本机 OpenFOAM 安装(离线)
bash fetch_sources.sh clone # 或 pwsh ./fetch_sources.ps1 clone智能体写字典或 C++ 模型最容易犯的错就是凭记忆猜键名和 API(OpenFOAM 两版差异大、字段检查严,少一个 scalar 就 FOAM exiting)。本技能用三层背板消除这一点:
① SOURCE_MAP.md(指针索引,随包)
每类任务 → 官方源码里的具体文件/类/宏/tutorial
│
▼
② fetch_sources.*(按需获取)
git 稀疏/浅克隆官方源码 → vendor/ 或 登记本机安装路径(离线)
│
▼
③ vendor/ 完整官方源码(本包已内置实拷)
OpenFOAM-10 + OpenFOAM-v2306 的 applications/solvers + src + tutorials
强制流程:写任何字典/模型前 → 查 SOURCE_MAP.md 定位官方参考 → read_file 打开对齐类结构/注册宏/字段 → 照骨架改数 → 在 ALGORITHM.md 标注参照的源码路径可回溯。
| OpenFOAM-10 (Foundation) | v2306 (ESI) | |
|---|---|---|
| 湍流模型根目录 | src/MomentumTransportModels/ |
src/TurbulenceModels/ |
| 湍流字典 | constant/momentumTransport |
constant/turbulenceProperties |
| 粘度字典 | physicalProperties |
transportProperties |
| RAS 键 | RAS { model kOmegaSST; } |
RAS { RASModel kOmegaSST; } |
| 源项框架 | src/fvModels + src/fvConstraints |
src/fvOptions |
选定版本后全程一致,并写在 MANIFEST.md 顶部。
openfoam-case-builder/
├── SKILL.md # 技能入口:纪律 + 工作流 + 交付契约
├── reference/ # 按需读取的领域细节
│ ├── dictionaries.md # 字典字段/量纲表/离散格式/线性求解器
│ ├── boundary-conditions.md # inlet/outlet/wall/atmosphere 各场 BC 速查
│ ├── solvers.md # 求解器选型
│ ├── custom-model-compile.md # wmake 脚手架 + runTimeSelection 注册 + 论文植入
│ └── error-patterns.md # 高频报错与修法
├── templates/ # 可直接拷贝改数的骨架
│ ├── system/ constant/ 0.orig/ # 不可压稳态 + 单相水 kOmegaSST
│ └── overviews/ # MANIFEST/ALGORITHM/TUNING 模板
└── backplane/
├── SOURCE_MAP.md # 官方源码指针索引 + 双版本差异表
├── fetch_sources.sh / .ps1 # status / clone / link 三模式
└── vendor/ # 官方源码落地处(完整包在 Release 内)
- 不凭记忆手写复杂字典;优先克隆
vendor/<版本>/tutorials/里最贴近的官方算例做骨架。 - 一个 case =
system/+constant/+0/三目录,判据是有没有system/controlDict。 - 永远先建
0.orig/再cp -r 0.orig 0,绝不直接编辑0/。 - 量纲必须对:
k=[0 2 -2 0 0 0 0]、epsilon=[0 2 -3 …]、omega=[0 0 -1 …]、nu=[0 2 -1 …]。 - 每个 patch 的每个场独立写 BC,不合并。
- 论文植入先核对单位量纲(cm/s vs m/s、K vs °C、bar vs Pa),有歧义先问。
MIT(本技能脚手架)。backplane/vendor/ 内为 OpenFOAM 官方源码,版权归各自项目所有(OpenFOAM-10: GPL-3.0 / OpenFOAM Foundation;v2306: GPL-3.0 / OpenCFD-ESI),仅作为查询背板内置,请遵循其原始许可。