

导读:大家好,我是仿真秀专栏作者——梁松月,博士毕业于西北工业大学、现担任企业高级工程师,连续2年荣获仿真秀“年度仿真秀优秀讲师”。在过去3年我在仿真秀累计创作 94 套课程,从气动、传热、声学等传统 CFD 场景一路走到 AI 驱动仿真。今年我在仿真秀官网集中推出的多门AI仿真课,获得了工程师朋友的好评。
例如《AI 驱动叶轮机械 CFD 仿真》,把图神经网络 GNN 作为代理模型嵌入 STAR-CCM 流程,针对风扇变几何、变工况三维流场实现"一次建模、万级工况秒级预测";《基于 POD 与 LSTM 的三维圆柱绕流非稳态流场预测》,用深度学习降阶模型替代高耗时瞬态仿真,绕开传统 CFD 的算力瓶颈。我希望用这一类"AI for Engineering"课程,把工业级流体仿真从业者从"软件操作者"升级为"AI 增强型工程师",让每次建模都跑得更快、每个工况都看得更全。
众所周知,CFD 自动化的难点不在于把一串 GUI 操作改写成脚本,而在于让输入语义、版本、边界条件、质量门禁、检查点和输出结果形成一条可审计的执行链。Fluent-automation Skill 将 Codex 的任务理解、YAML 任务契约、PyFluent 的状态控制和 Fluent 的数值计算分成四层,并以阶段状态、硬/软门禁和有界恢复约束运行。本文先解释这一架构,再给出从任务派生到独立验收的流程,最后用汽车外流场案例展示网格质量、残差、场变量图和“自动化完成但严格残差目标未满足”这一结果边界。更多内容请查看我在仿真秀官网原创的视频教程《从零开始教学Codex结合自编Skill实现Fluent全自动智能仿真》,详情见后文。

Fluent 的 GUI 操作通常是连续的:导入几何、生成表面网格、创建区域、设置物理模型、初始化、迭代、导出图片。若只把这些动作录制为宏,脚本仍然缺少输入语义、版本约束和失败判据。一个可复核的自动化任务应当描述“在什么输入上,以什么物理定义,经过哪些阶段,产生哪些可验证输出”。因此,自动化对象应从“按钮序列”提升为有状态的执行契约:validate → preflight → launch → mesh/load → setup → initialize → smoke → solve → export → verify。每个阶段都有输入、输出和硬完成条件。阶段状态写入 run-state.json,日志写入 automation.jsonl。
Codex 负责从自然语言中提取任务目标、选择适用能力并组织工作流;Skill 把工程规则写成触发条件、能力边界、阶段契约和恢复策略;PyFluent 负责通过版本相关的生成式 API 控制会话、设置参数、读取状态和执行迭代;Fluent 负责网格、离散、求解和场变量输出。四层是协作关系,不是相互替代关系。

图 1 Codex、Skill、PyFluent 与 Fluent 的四层协作关系(项目资料)
Skill 本身也需要分层。项目目录把规则写在 SKILL.md,把执行脚本放入 scripts/,用 schemas/ 约束任务结构,用 references/ 保存阶段契约、质量门禁、恢复和安全策略,并用 tests/ 验证脚本行为。这种结构把“应该怎么做”与“具体怎么调用 API”分开,便于版本适配和审计。

图 1 Fluent Skill 的目录结构及职责划分(项目资料)
用户基线只应包含不能安全猜测的物理事实,例如输入文件、三维/二维、几何单位、区域与边界语义、入口速度、出口压力和非默认物理模型。项目中的汽车外流场基线包含 car.x_t、长度单位 m、CAR 区域、inlet/outlet、车身和对称面列表,以及入口速度 33.33 m/s。
基线文件是只读事实源。运行前,工具把缺失的模式版本、输入哈希、不可变标记、输出策略、运行模式、预期产物和版本相关的 PyFluent 操作写入独立的派生任务,例如 fluent-task.car-external-aero.live-run.yaml,并在 task-derivation.json 中记录来源哈希、派生哈希和字段级变更。这样既保留用户输入,又避免在原始配置上悄悄“修正”。

质量门禁至少分为两类。硬门禁包括输入不一致、几何语义未解析、负体积、非有限残差、致命 Fluent 错误和缺失必需产物;软门禁用于保留警告,例如达到最大步数但严格残差目标仍未满足。运行状态 completed 只表示自动化链路和必需交付物通过独立验收,不等价于工程意义上的严格收敛。项目记录使用 strict、basic 和 unconverged 表示收敛成熟度。案例中最大步数停止且残差有限,因此自动化状态为 completed、收敛成熟度为 basic,同时保留 residualTargetPass: false。这种双层状态比把所有问题压缩成一个“成功/失败”更适合工程复核。
自动修复只处理任务明确允许的技术问题,例如适配当前 PyFluent 生成 API 的参数键,或在初始化方法失败时尝试一次配置中的备用方法。修复次数由 recovery.maxRepairs 限制;不能为了得到 completed 而删除错误证据、修改物理模型、放宽硬门禁或无限重试。在 Windows 上,如果服务令牌无法写入已登录用户的 ANSYS 握手文件,Skill 使用受控的交互用户桥执行正式端到端会话;这是一条身份边界修复路径,不是通过修改许可证服务、放宽用户目录权限或启用不安全远程 gRPC 来绕过问题。正常情况下,准备和静态校验先完成,获得运行授权后只使用一次端到端 Fluent 会话;只有失败证据指向明确假设时才进行有界诊断。
第一步读取用户的 fluent-task.yaml 并计算原始字节哈希,确认输入文件存在且路径解析不越界。随后执行 baseline 校验,检查物理上不能猜测的字段;再生成独立的派生任务,补齐 schema、不可变输入、运行模式、输出策略、默认质量门禁和预期产物。派生文件必须再次做 static 校验,且之后的 preflight、run、resume 和 verify 都引用同一精确路径。
预检不启动 Fluent 时完成环境检查:任务契约、输入文件、显式的 Fluent/Python/PyFluent 路径、请求版本、处理器限制、输出目录和 PyYAML 引导解释器。若任务指定 Fluent 2026 R1,就要求所选安装、服务器版本和 PyFluent 版本形成一致组合;显式路径错误时停止,不扫描其他安装来“碰运气”。实时运行需要当次明确授权。启动后记录实际 Fluent 版本、PyFluent 版本、进程参数和会话身份。默认使用可见 GUI 会话,只有任务明确声明时才使用 no_gui。
CAD 任务采用版本固定的 Watertight Meshing 契约。汽车外流场的典型顺序是:导入几何 → 生成表面网格 → 描述几何语义 → 创建流体区域 → 更新边界/区域 → 生成体网格。每一个 generated task 都要保留执行结果和读回状态,不把名称相似的边界自动当成正确语义。进入 Solver 后设置压力基稳态求解器、湍流模型、入口速度和出口压力,随后用 hybrid 初始化;若明确的初始化失败,才在修复预算内尝试 standard 备用方法。先运行有限步数的 smoke 阶段,检查残差是否有限、日志是否出现致命错误,再进入正式迭代。
按残差检查间隔检查残差,若到达 最大步数 仍未满足严格目标,默认仍可导出结果,但必须把它标记为 basic,并保留未满足目标的软警告。案例把 checkpointInterval 设为 100,因此在 100 和 200 步各保存一对 .cas.h5/.dat.h5,导出阶段再保存 final.cas.h5 和 final.dat.h5。检查点索引包含阶段、迭代数、文件大小,恢复时先逐一验证这些信息,不满足就阻断续算。
后处理按照任务中的声明导出场变量图,而不是在运行结束后临时猜测显示对象。独立验收脚本检查任务身份、输入身份、实际版本、阶段门禁、检查点、指标文件和 PNG 文件;最终生成 manifest.json,把硬失败和软失败分开列出。一个可审计的结果包至少包含:任务快照、派生记录、预检、运行状态、日志、检查点、results/metrics.json、场变量图和 manifest。
下表概括阶段、主要证据和硬条件。
阶段 | 主要输入 | 关键证据 | 硬完成条件 |
validate | 基线/派生任务 | 校验报告、任务哈希 | 无错误和阻断项 |
preflight | 任务、主机环境 | 版本与路径、输入哈希 | 任务和环境就绪 |
mesh/load | CAD/网格/case | 工作流日志、网格检查点 | 输入加载或网格工作流读回成功 |
setup/initialize | Solver 会话 | 设置读回、初始化检查点 | 关键设置与初始化成功 |
smoke/solve | 检查点、迭代策略 | 残差、门禁、100 步检查点 | 无致命错误,硬门禁通过 |
export/verify | 最佳状态 | 指标、PNG、manifest | 必需文件存在且身份一致 |
案例输入是 Parasolid 文件 car.x_t。几何设置采用 3D、米制,创建 1 个流体体积;边界按 inlet、outlet、body、down、wheel-head、wheel-tail 以及 side、symmetry、up 组织。物理模型是压力基、稳态、k-omega SST;入口速度为 33.33 m/s,出口表压为 0 Pa。

图2 汽车外流场几何与包围流体域
类别 | 设置 |
输入 | car.x_t,CAD,3D,长度单位 m |
网格 | 表面尺寸 0.02–0.10 m,增长率 1.2,曲率法向角 18°,每间隙 2 个单元 |
体网格 | Polyhedra,增长率 1.2 |
物理 | 压力基、稳态、k-omega SST |
求解 | 4 个处理器;smoke 10 步;最大 200 步;残差检查间隔 50 步 |
检查点 | 每 100 步保存 case-data;导出最终 case-data |
图像 | 对称面速度幅值;车身及车轮静压 |

图 3 汽车外流场任务配置的 YAML 片段
派生任务把表面网格、几何描述、区域创建、边界/区域更新和体网格生成固化为 Watertight 工作流。运行日志显示,这些任务在同一 Fluent 会话中依次完成;Solver 设置阶段执行了 setup.models.viscous.k_omega_model = sst,并通过读回确认。预检报告显示任务和环境均就绪,请求版本与所选安装一致,实际运行记录为 Ansys Fluent 2026 R1、PyFluent 0.37.1,有效处理器数为 4。没有记录到修复尝试或恢复续算。
网格门禁通过的两个硬指标为:负体积单元数 0,最小正交质量 0.132719,高于任务阈值 0.10;最小单元体积为 8.8511×10^-8,因此没有以负体积证据触发阻断。需要注意,单次网格门禁通过不代表网格无关性已经证明;网格加密、局部质量分布和边界层 y+ 仍需按工程目标补充。求解执行到 200 步,连续性残差由第 60 步的 1.5858×10^-1 降至第 200 步的 6.2333×10^-2;三个速度残差降至 10^-6 量级。任务为连续性设置的严格目标是 1.0×10^-3,因此第 200 步仍未通过严格残差策略。

汽车外流场案例残差趋势(由 results/metrics.json 重绘;纵轴为对数坐
该结果的正确表述是:运行状态为 completed,收敛成熟度为 basic,停止原因是 max-steps,residualTargetPass 为 false。这表示自动化流程、硬门禁、检查点和必需导出物均通过独立验收,不表示已经获得可直接用于工程定案的严格收敛解。若继续使用该模型,应增加迭代或调整网格、离散和监控策略,但任何调整都应先修改任务契约并留下新的派生记录,而不是在旧结果上覆盖。

codex运行结果
速度幅值图显示了车辆前缘、车顶和车尾附近的速度梯度,以及车后方的尾迹区域;图例范围约为 0–53.5 m/s。这类图适合检查流场是否出现明显的非物理空洞、断裂或异常高值,也可以帮助定位尾迹和局部加速区。

对称面上的速度幅值分布;图像由运行任务直接导出
压力图显示车辆前部的高压区、车轮和局部曲率变化处的压力梯度,以及车身后部的低压区域;图例范围约为 -1.79×10^3–8.18×10^2 Pa。

车身及车轮表面的静压分布;图像由运行任务直接导出
案例最终生成 results/metrics.json、两张 PNG、final.cas.h5 和 final.dat.h5,并在 manifest.json 中记录硬门禁、软警告、任务身份和文件哈希。最终 case 文件大小约为 59.5 MiB 和 47.0 MiB;运行还保留了网格、初始化、烟雾求解、100 步和 200 步检查点,可从最后一个有效检查点继续,而无需重新网格和初始化。
交付物 | 作用 | 案例状态 |
task.snapshot.yaml | 固化本次精确执行任务 | 存在,哈希一致 |
run-state.json | 阶段、版本、迭代、检查点索引 | verify/completed |
results/metrics.json | 残差、网格指标、门禁和图像清单 | 存在 |
results/images/*.png | 速度幅值、车辆压力场 | 2 张,均通过文件门禁 |
checkpoints/*.cas.h5/*.dat.h5 | 网格、初始化、分步和最终状态 | 逐文件记录 SHA-256 |
manifest.json | 独立验收结果 | 无硬失败;残差目标为软失败 |
Fluent 自动仿真的核心不是“让 AI 替人点击界面”,而是把 CFD 工程师的判断写成输入契约、版本适配、阶段状态、质量门禁、检查点和独立验收。Codex 适合组织任务与证据,Skill 负责把边界与策略固化,PyFluent 提供可读回的控制接口,Fluent 完成数值计算。
汽车外流场案例表明:只要任务身份、输入、网格门禁、残差历史和结果文件被同时保存,就可以清楚地区分“流程完成”“基础收敛”和“严格工程收敛”,并为后续续算、复核和模型扩展保留可靠入口。
如果您希望掌握这种能力,欢迎关注我在仿真秀官网原创首发的视频课程《从零开始教学Codex结合自编Skill实现Fluent全自动智能仿真》,并提供VIP群答疑和配套资料,请识别下方二维码试看。
本课程面向汽车、电子散热、风机、换热器、旋转机械等 CFD 工程场景,聚焦无人值守自动仿真、批量工况扫描、企业仿真标准化流程搭建。
课程把 Codex 大模型智能编排、自定义 Skill 技能封装、PyFluent 接口、Fluent 求解器串联成完整闭环。学员不再只停留在 AI 生成代码片段,学会构建带校验、容错、结果核验的自动化体系,既能大幅减少工程师重复手工操作,释放精力聚焦方案分析;又能统一团队仿真输入规则,实现仿真任务契约化、过程可追溯、结果可核验,满足企业研发质量管控需求。不管是个人提升仿真效率,还是团队搭建内部自动化仿真平台,课程提供可直接复用的框架思路与实战案例。
以下是课程大纲:
第 1 讲:Codex 结合自编 Skill 实现 Fluent 全自动仿真介绍
课程整体目标、技术路线、应用价值、学习路径介绍
第 2 讲:Codex 安装
Codex 环境部署、基础配置,完成运行前置准备
第 3 讲:Codex 驱动 Fluent 自动仿真的总体架构
四层协作链拆解,讲解控制流、数据流、证据流三流合一架构设计
第 4 讲:Fluent 自动仿真 Skill 的设计与实现
Skill 模块全流程开发:任务契约、静态校验、环境管理、求解控制、容错恢复、质量门禁、结果核验
第 5 讲:汽车外流场的自动执行流程
汽车外流场业务拆解,梳理自动化仿真完整业务执行链路
第 6 讲:Fluent‑task.yaml 自动仿真配置文件
编写学习任务契约 YAML 语法,把物理条件、网格策略、求解设置转为机器可执行配置
第 7 讲:codex 结合 skill 驱动 Fluent 进行汽车外流场仿真实践
完整端到端实战:配置加载‑Skill 调度‑自动求解‑断点续算‑结果验收全流程跑通工程案例
2026研发仿真开学季是仿真秀面向研发工程师推出的主题活动月,9月1日至10月31日以"从工具到智能——让AI接入仿真研发"为主线,覆盖结构、流体、电磁、AI四大方向。仿真秀力邀企业资深研发工程师,围绕LS-DYNA、Workbench、Abaqus、Star-CCM+、HyperWorks、Maxwell、Fluent、CST、Flotherm、SolidWorks、ANSYS等主流软件,演示如何用LLM、Agent、Codex、Claude、DeepSeek等大模型能力打通建模、求解、后处理与优化全流程,让仿真从"手工操作"升级为"AI驱动";
此外仿真秀精选100余门研发仿真精品视频课限时秒杀1元起售,并叠加专属券,秒杀课程覆盖从基础到前沿的完整学习路径;活动期间,仿真秀还发起案例征集,以"我的研发仿真故事——从工具到智能的进阶之路"为题,面向工程师征集攻坚实录、工具进化、AI接入、成长与团队四类真实故事,图文或视频,通过即获300-500元现金稿酬并入选"百人千万"内容扶持计划,优秀作品将在仿真秀APP、官网、公众 号、视频号四端专题展示并邀请连麦直播。整个主题月既是一场系统化的技术充电,也是工程师用AI重塑研发工作流的一次集中练兵。

