

导读:在 STAR-CCM+ 中,一个完整的 CFD 仿真通常包含几何导入、区域划分、网格生成、物理模型设置、边界条件定义、求解器配置、监视器建立和结果后处理等多个环节。这些操作可以通过 Java 宏录制下来,但能够录制与能够承担工程任务并不是同一件事。录制宏往往包含大量界面操作、重复保存、镜头调整和对象切换,几何名称、边界名称或软件版本发生变化后,原有脚本就可能失效。
自动化还需要回答更具体的问题:当前问题应采用稳态还是瞬态模型?旋转区域应使用 MRF 还是 Sliding Mesh?自由液面问题是否需要 VOF、重力和波浪模型?时间步长是否能够解析运动特征?计算何时可以认为已经收敛?结果是否满足质量守恒和工程合理性?因此,自动化的核心不是让软件脱离工程师独立决策,而是把重复、明确、可验证的步骤转化为稳定的程序流程。
当前,笔者已经把 Codex 的代码协作能力、自编 Skill 中的 STAR-CCM+ 领域规则,以及 STAR-CCM+ Java Macro 结合起来,形成一条可复用、可检查、可追溯的自动仿真工作流。并在仿真秀官网的视频课程《CFD Agent:Codex 结合自编Skill驱动STAR-CCM完成汽车/无人机/船舶自动仿真》,详情见后文:

图1 Codex + 自编 Skill 驱动STAR-CCM+完成 汽车、无人机、船舶自动仿真
这套流程可以分为需求层、知识与代码层、求解与数据层。
(1)需求层接收工程师对工况、几何、物理现象和输出量的描述,例如计算不同转速下的压力升与扭矩,或者对船体进行带波浪的六自由度运动计算。
(2)知识与代码层由 Codex 和自编 Skill 共同组成。Codex 负责拆解需求、检查项目文件、生成或修改 Java 宏、分析运行日志,并将转速、速度、时间步长等数值集中管理。
(3)Skill 则固化 STAR-CCM+ 的对象结构、物理模型依赖、单位规范、命名约束和结果验收规则。求解与数据层由 STAR-CCM+ 执行具体的导入、网格、求解和后处理操作,并输出仿真文件、日志、报告数据、图片和动画。
这个过程可以概括为:工程描述经过 Codex 结构化后,由 Skill 提供建模规则,生成 Java Macro,再由 STAR-CCM+ 执行,最后通过监控数据和检查文件完成闭环。三层之间的边界需要保持清晰。Codex 不应凭空替代物理判断,Skill 不应只堆积未经解释的代码片段,STAR-CCM+ 也不应被当成一个无法追踪内部状态的黑盒。每一步都应有明确输入、输出和检查条件。

图2 汽车外流场压力与速度场,可作为自动化流程的典型后处理输出
普通提示词通常只能描述一次任务,难以长期保持一致性。例如,“建立一个旋转机械仿真”并没有说明这是稳态还是瞬态问题,也没有说明旋转区域如何与静止区域连接、壁面是否需要相对运动、结果应监控压力还是扭矩。
自编 Skill 的作用,是把这些隐含知识显式化。面向 STAR-CCM+ 的 Skill 应说明软件版本和 API 范围,列出常用 Java 类及对象获取方式,规定物理模型的启用顺序,解释 MRF、Sliding Mesh、DFBI 和 Overset Mesh 的适用条件,并给出 VOF 相、波浪初始化、网格质量和收敛判断的规则。
Skill 还应包含失败路径。例如,模型名称与界面语言不一致时如何定位对象;区域或边界不存在时如何报告;导入网格失败时保存哪个中间状态;计算发散时优先检查哪些参数。这样,Skill 提供的是可执行的工程约束,而不是一组脱离上下文的 API 摘抄。
STAR-CCM+ Java Macro 通常继承自 StarMacro,在 execute() 中获得当前 Simulation 对象,并按顺序完成各阶段操作。为便于维护,可以把几何导入、区域创建、连续体配置、运动模型、网格、边界条件、求解器、报告和运行过程拆成独立方法。
工程化组织的重点是让每个阶段具有清晰的责任边界。导入阶段只负责几何或已有网格,物理阶段只负责模型组合,网格阶段只负责网格操作和局部控制,求解阶段只负责时间步长、内迭代和停止准则。
每个阶段完成后保存一次状态,便于调试和恢复。录制宏完成后,通常需要删除重复的 saveState()、无关的相机命令、重复的 setObjects() 以及创建后又立即删除的对象。转速、速度、网格尺寸和时间步长应提取为参数。对于可能重复执行的脚本,还要检查同名对象是否已经存在,避免重复创建报告、接口或坐标系。
稳态模型适合研究平均流动状态,例如固定转速下的风机性能;瞬态模型则用于解析随时间变化的流动现象,例如叶片通过、波浪传播、自由液面冲击和物体运动。模型选择应由问题的特征时间决定,而不能只由计算成本决定。
常见的不可压缩湍流组合包括三维模型、单组分流体模型、分离流模型、常密度模型、RANS 湍流模型、k-ε 湍流模型和两层壁面处理。模型之间存在依赖关系,启用顺序错误会导致宏无法执行,或者生成形式完整但物理关系不完整的连续体。MRF 通过旋转参考系近似旋转部件的平均影响,适合稳态计算;Sliding Mesh 则让网格区域真实转动,适合研究叶片通过、转静干涉和周期性压力脉动。两种方法在宏中的配置路径不同,MRF 使用 setReferenceFrame(),真实网格运动则使用 setMotion()。
对船舶、浮体或水面物体,需要将 Eulerian Multi-Phase、Segregated VOF、Gravity、VOF Wave 与 DFBI 等模型组合起来。DFBI 还必须定义物体质量、转动惯量、质心位置、初始速度、释放时间以及允许的平移和转动自由度。运动幅度较大或网格拓扑变化明显时,则需要进一步考虑 Overset Mesh。

图3 无人机外流场结果,体现几何、边界条件与场景导出的连接
网格自动化至少包含几何或已有网格导入、网格操作创建、全局与局部尺寸设置、网格生成和质量检查五个环节。
以 Trimmer 为例,需要配置基准尺寸、增长率、局部加密区和网格对齐方向;对于运动问题,还要关注背景网格、运动区域和重叠区域的分辨率关系。局部加密通常针对叶片前缘和尾缘、壁面边界层、尾迹区域、自由液面、物体运动路径以及 Overset 重叠区。局部尺寸不能只按几何尺寸设置,还要结合速度梯度、涡结构、波长、边界层尺度和时间步长共同判断。自动生成网格后不应直接进入求解。脚本应检查单元数量、极小体积单元、高长宽比、边界层连续性、重叠网格的有效插值区域以及自由液面附近的分辨率。
如果网格失败,应保存失败前的状态并输出具体阶段和对象名称,使问题能够定位到几何、网格控制或局部尺寸。
自动化的实际价值通常体现在多个工况的重复计算上。转速、入口速度、时间步长、总物理时间、基准网格尺寸和局部加密比例应集中管理,而不是散落在宏的各个方法中。参数可以来自宏内配置对象,也可以来自 CSV、JSON 或 STAR-CCM+ 全局参数。每个工况应建立独立目录,并保存输入参数、sim 文件、运行日志、网格统计、报告数据、场景图片、计算状态和错误信息。目录名应包含工况编号或关键参数,避免批量运行时相互覆盖。对于长时间瞬态计算,还应定期保存中间状态,使中断恢复和失败工况重试成为可控操作。
稳态计算可以通过最大迭代步数、残差和工程量监控来判断状态。速度和压力求解器可以采用线性渐增,使计算从较保守的初始值逐步过渡到目标状态。瞬态计算则需要设置时间步长、每个时间步的最大内迭代次数、最大物理时间以及时间离散格式。时间步长需要同时考虑流动速度、网格尺度、旋转速度和波浪周期。旋转机械可以根据每个时间步对应的转角控制时间分辨率;自由液面冲击问题则需要更小的时间步长捕捉界面变化和压力峰值。时间步长过大时,即使残差下降,也可能已经丢失关键的瞬态信息。
残差下降不等于工程量稳定。自动判断可以结合连续性和动量残差、压差、流量、力、力矩、质量流量平衡以及时间窗口内的波动幅度。周期性问题还可以比较相邻周期的平均值和峰值差异,避免把尚未稳定的周期信号误判为收敛。
报告是连接求解结果与工程判断的主要接口。常见报告包括面平均压力、质量流量、体积流量、轴向力、侧向力、扭矩、功率、DFBI 位移、DFBI 速度和姿态角。每一个报告都应明确输入部件、场函数、单位和更新频率。稳态问题可以按迭代更新监视器,瞬态问题通常按时间步更新。曲线横坐标应使用物理时间,而不是简单的迭代编号。压力标量场、速度标量场、速度矢量场、自由液面等值面和 DFBI 物体显示也可以通过宏配置,并自动输出图片或动画。
后处理的目标不只是生成一张图片,而是形成可追溯的数据链。输入参数、计算状态、监控曲线和最终图片之间应能够相互对应,文件名和目录结构应支持后续复核和批量比较。

图4 船体自由液面附近的压力场结果,适用于 VOF 与运动问题的结果展示
以旋转机械为例,工程师可以提出这样的任务:计算不同转速和入口速度下的压力升、流量和扭矩,先使用稳态 MRF 获取平均性能,再对一个代表工况使用 Sliding Mesh 计算瞬态波动。
Codex 首先将任务拆分为物理判断、对象定位、网格、边界条件、报告、运行和结果导出几个阶段。随后,Skill 根据稳态或瞬态的选择规则生成连续体和运动对象,统一处理 rpm、m/s、s 等单位,并把转速和入口速度写入参数区。宏运行后,STAR-CCM+ 输出压力升、流量和扭矩报告;Codex 再读取日志与结果文件,检查报告是否存在、质量流量是否守恒,以及监控量是否达到稳定状态。如果代表工况需要进一步解析叶片通过效应,流程可以在保留稳态结果的基础上切换到 Sliding Mesh,重新设置时间步长、内迭代和物理时间,并追加瞬态压力和扭矩监控。对于船舶或浮体问题,流程会增加 VOF 相、重力、波浪、DFBI、Overset Interface 和自由度设置,但阶段化组织方式保持一致。
自动化脚本中的错误通常分为语法与 API 错误、对象关系错误以及物理和数值错误。类名变化、方法签名不匹配或导入包缺失属于第一类问题;把 Boundary 当作 Region 使用、Overset 区域没有创建接口、报告没有输入部件,则属于第二类问题。
第三类问题往往更难判断,例如入口和出口条件不匹配、时间步长过大、自由液面初始化不完整、运动区域网格质量恶化,或者计算虽然收敛但压力、流量和力矩不合理。调试时应保存每个主要阶段的仿真状态,并在日志中记录当前阶段、工况、关键参数、对象名称和异常信息。
这样可以确定错误发生在模型配置、网格生成、求解器设置还是后处理阶段。对于重复出现的问题,应将诊断路径回写到 Skill 中,形成下一次自动检查的规则。
宏通过编译只能说明代码形式上正确,不能证明物理模型、边界条件和结果都正确。建议建立分层验证机制:首先检查 Region、Boundary、运动对象、报告和输入部件是否完整;其次检查转速、速度、时间步长、转动惯量和体积分数数组的单位与量纲;再次检查网格质量、残差、质量流量和监控量;最后检查压力升、扭矩、自由液面和物体运动是否符合工程趋势。
自动化流程还应明确哪些判断可以由程序完成,哪些必须由工程师确认。程序可以发现残差异常、质量不平衡和文件缺失,但不能替代对湍流模型、波浪模型、网格尺度和结果物理意义的判断。
自编 Skill、Java 宏和仿真文件都应纳入版本管理。每次运行应记录 STAR-CCM+ 版本、Skill 版本、宏版本、输入参数、几何和网格来源、计算资源、输出文件位置以及验证结果。这样,出现结果差异时,能够区分软件版本、输入参数、网格和代码变化带来的影响。
对于基准算例,应定期执行回归测试。如果软件版本、宏结构或 Skill 规则发生变化,需要检查生成对象、网格规模、监控曲线、关键工程量和输出文件结构是否仍在允许范围内。脚本还能运行但结果已经变化,是自动化项目中需要重点防范的隐性问题。
本文所述技术体系覆盖 STAR-CCM+ Java Macro 的生成、重构和调试,自编 Skill 的组织、更新和版本管理,稳态、瞬态、湍流、多相流和自由液面模型,以及 MRF、Sliding Mesh、DFBI 和 Overset Mesh 等运动方法。它还包括自动网格、参数化计算、批量工况管理、报告、监视器、场景、结果导出、日志分析、异常处理和计算验证。
使用这些方法前,建议具备基本 CFD 概念,了解 STAR-CCM+ 的常规操作,并能够阅读基础 Java 代码。自动化可以减少重复操作、统一设置和提高批量计算的一致性,但不能替代物理模型适用性判断、边界条件评估、网格与时间步长选择,以及对异常流动现象和计算结果的工程审查。因此,自动仿真的边界应被明确写入 Skill 和宏的设计中:哪些步骤自动执行,哪些步骤自动检查,哪些步骤必须由工程师确认。只有把边界写清楚,自动化才不会从工具便利变成判断风险。
Java 宏解决的是操作重复问题,Skill 解决的是知识复用问题,Codex 解决的是需求理解、代码组织和错误诊断问题。三者结合后,STAR-CCM+ 自动化不再局限于录制一段宏并运行,而可以发展为包含模型选择、网格生成、参数管理、求解控制、结果输出和质量验证的完整工作流。
真正值得沉淀的不是某一个工况的脚本,而是能够跨项目复用、能够被检查、能够被追溯,并且在软件和模型发生变化时仍然容易维护的仿真流程。
为此,笔者在仿真秀官网原创首发了视频课程《CFD Agent:Codex 结合自编Skill驱动STAR-CCM完成汽车/无人机/船舶自动仿真》课程基于 Codex 智能体自定义 Skill,搭建 AI 驱动全自动仿真流水线,后台无 界面批量调度计算,自动监控收敛、校验结果、输出标准化报告,单套仿真人力耗时压缩至分钟级,批量工况无需人工值守,适配车企气动优化、无人机旋翼气动仿真、船舶螺旋桨自航多相流、工业管道换热内流等高频研发需求,同时可用于高校研究生课题批量算例运算、企业仿真团队数字化流程搭建,实现仿真经验代码化、可沉淀、可复用、可交付。请识别下方二维码试看:

第1讲:Codex 自编 Skill 驱动 STAR-CCM 全行业自动仿真课程介绍
课程整体目标、AI 自动化仿真行业价值、四大实战案例介绍、学习路径与最终交付成果讲解
第2讲:Codex 完整安装部署
环境配置、依赖安装、与 STAR-CCM 联动环境调试、常见报错排查
第3讲:Codex 自编 Skill 整体架构与项目目标
CFD Agent 整体工作流、Skill/Java 宏 / 配置文件 / 调度脚本协同逻辑、标准化仿真目录设计
第4讲:STAR-CCM 标准完整仿真流程
CAD 导入、几何修复、网格、物理模型、边界、求解、后处理全流程拆解,为自动化做铺垫
第5讲:STAR-CCM Java Macro 自动化模式
录制宏底层缺陷、参数化 Java API 基础、可维护脚本重构思路
第6讲:Codex Skill 核心设计原理
Skill 本质、指令解析逻辑、任务调度规则、仿真流程封装思路
第7讲:从零编写 STAR-CCM 自动化自定义 Skill
完整实操:创建 Skill、绑定 STAR-CCM 操作、参数传递、报错捕获、流程分支控制(课程核心重难点)
第8讲:配置驱动仿真任务体系设计
YAML/properties 配置文件规范、参数映射、多工况批量配置模板制作
第9讲:STAR-CCM 批处理后台运行与仿真进度监控
无 GUI 启动命令、日志读取、JSON 实时进度文件生成、异常自动捕获
第10讲:仿真结果自动导出、校验与标准化报告生成
云图、数据报表自动输出、双维度仿真成功校验、summary.md 报告自动生成
第11讲:Codex 驱动 STAR-CCM 管道内流全自动仿真
工业管道换热内流完整自动化案例,全套 Skill 配置文件实操
第12讲:Codex 驱动 STAR-CCM 汽车外流场自动仿真
整车气动外流、阻力系数批量计算、多造型参数扫描自动化流程
第13讲:Codex 驱动 STAR-CCM 四旋翼无人机气动自动仿真
旋翼旋转域、动网格、气动载荷批量仿真 AI 自动化全流程
第14讲:Codex 驱动 STAR-CCM 带螺旋桨船舶自航自动仿真
船舶多相流、螺旋桨旋转、自航工况批量自动化完整实战案例

