让 AI 替你跑 FDTD 仿真:编程 Agent 全自动设计优化实战
让 AI 替你跑 FDTD 仿真:编程 Agent 全自动设计优化实战
引言
FDTD 仿真广泛应用于光子学器件的设计与验证。在传统工作流程中,研究者需在 Lumerical 中手动构建结构、配置光源与监视器、设置网格精度,并在仿真结果不理想时反复调整参数。若涉及参数扫描或设计优化,这一过程往往需要大量人工值守。
近期,”找寻归宿的流浪猫”分享了一篇文章及配套视频,展示了利用编程 Agent(Vibe Coding)对 Lumerical FDTD、Ansys HFSS、CST 等仿真软件实施全自动建模与优化的方法。作者表示,在掌握该方法后,已不再需要手动执行仿真。
本文基于上述资料整理为一份实战教程:首先介绍 Vibe Coding 的基本概念,随后以 Codex 全自动完成 1×2 MMI 分束器设计与仿真为例说明完整流程,并提供可直接复用的 Prompt 模板。
Vibe Coding 概述
Vibe Coding 指以自然语言描述目标,由 AI 自动生成代码并完成执行。其较高级的应用形态已超越”对话生成代码”的范畴,而是:
以自然语言描述目标,由 Agent 负责拆解、执行、调试与交付,人类负责定义问题、设定边界并审核结果。
按工具形态,可大致分为三个层次:
| 层次 | 工具 | 特点 |
|---|---|---|
| 网页对话 | ChatGPT、DeepSeek 等网页端 | 门槛最低,但需人工复制粘贴传递信息,效率较低 |
| IDE 内 AI | VS Code 插件、Trae、AntiGravity、Cursor | 支持代码补全与修改,但难以独立完成完整流程 |
| 纯 Agent 编程 | Claude Code、Codex | 可调用终端、读写文件、运行脚本、读取报错并反复迭代,实现全流程自动化 |
纯 Agent 编程的代表工具为 Claude Code 与 Codex。Claude Code 目前以官方订阅为主,成本较高;Codex 支持自行注册账户,订阅价格相对较低。Cursor、Trae 国际版、Kimi Code、智谱 ZCode 等亦可用于此类任务,但部分模型能力较弱,较易出错。本文以 Codex Windows 桌面端为例进行演示。
FDTD 自动化适配性分析
并非所有任务都适合直接交由 Agent 执行,但 Lumerical 仿真属于典型的适用场景,主要原因如下:
| 原因 | 说明 |
|---|---|
| 任务目标明确 | 仿真对象、波段、工艺平台等参数均可明确定义 |
| 反馈链路完整 | 脚本报错、仿真结果与监视器数据均为机器可读信息,Agent 可自行读取结果并调试 |
| 验收条件可量化 | 损耗、透射率、分束比等指标具有明确数值,可直接写入验收标准 |
| 交付物可核查 | 仿真文件、报告及图像均可打开验证,结果可追溯 |
换言之,该流程天然构成”编写代码 → 运行仿真 → 读取报错 → 修改代码”的闭环,与编程 Agent 的核心能力高度契合。只要需求描述足够清晰,整个迭代过程即可交由 Agent 独立完成。
实战:Codex 全自动完成 1×2 MMI 分束器设计
本节以 Lumerical FDTD(2025 R1 版本)为例,演示一个完整案例:设计一个 3D 的 1×2 MMI 分束器,在 1550nm 波段实现等功率分束。整个过程无需手动操作 Lumerical。
第一步:环境准备
- 创建独立的工作文件夹;
- 启动 Codex,将上述文件夹设置为 Workspace;
- 建议在权限设置中开启”完全访问权限”,以避免 Agent 在执行脚本、读写文件时频繁进行手动确认。目前仿真场景下该权限的风险较低,如对此有所顾虑,亦可保留手动确认机制。
第二步:Prompt 设计(核心环节)
Prompt 的质量直接决定 Agent 能否完成任务,是该方法中最关键的环节。一份完整的仿真 Prompt 至少应包含以下四类要素:
| 要素 | 内容 |
|---|---|
| ① 解释器路径 | Lumerical 自带 Python 解释器的完整路径,用于指定脚本运行环境 |
| ② 器件与工艺参数 | 结构组成、材料、工艺平台、波段、模式、网格精度等,描述越详细越好 |
| ③ 可量化验收条件 | 例如”损耗 < 0.5dB、分束不均衡度 < 5%”,用于明确完成标准 |
| ④ 交付物要求 | 保存 .fsp 文件、生成仿真报告等,便于后续验收 |
针对本案例,可直接使用以下 Prompt(基于原作者版本整理):
1 | 你需要完成 Lumerical FDTD 仿真任务,具体细节如下: |
Prompt 设计的三点建议:
- 解释器路径的获取:该路径通常位于 Lumerical 安装目录下,格式与上述示例类似;若无法直接定位,可使用 Everything 搜索
python.exe,并确保将路径提供给 Agent。 - 验收条件应可量化且可实现:应避免使用”性能较好”等模糊表述,同时需确认指标在物理设计上可达;若无法确定,可增加”若达不到条件,请在迭代 X 次后结束”的说明,X 可根据场景设定为十几次至数十次。
- 常见问题应预先提示:例如使用固定文件名自动保存以避免交互弹窗、确保监视器不与波导重叠等。此类问题均为实践中 Agent 易犯的错误,预先提示可显著减少无效迭代,并可将其固化于后续所有 Lumerical 仿真 Prompt 中复用。
第三步:自动迭代执行
将 Prompt 发送至 Codex 后,Agent 将自动完成以下循环:
1 | 建模 → 运行仿真 → 读取结果 → 发现问题 → 修改参数 → 重新仿真 → 直至满足验收条件 |
整个过程无需人工值守。根据原作者的演示,约半小时后 Codex 即自动完成了全部仿真、优化与报告生成,并在工作目录中创建相应文件。若未开启完全访问权限,期间可能需要手动确认部分操作。
第四步:结果验收
仿真完成后,应按以下步骤进行验收:
- 打开生成的 .fsp 文件,检查模型结构是否合理;
- 查看仿真报告中的器件结构图、光场传输图、损耗及分束功率;
- 核对是否满足验收条件(分束不均衡度 < 5%、传输损耗 < 0.5dB);
- 若未达标,可补充反馈并继续迭代。
进阶应用
该方法不仅适用于参数优化,还可扩展至以下场景:
- 论文复现:可直接提供文献,要求 Agent 复现其中的结构。在 Prompt 充分明确的前提下,可一键复现论文中的仿真。
- MCP 直接控制:进一步可通过 MCP 将 Lumerical 作为工具暴露给 AI 客户端。社区已有 lumerical-fdtd-mcp 等开源项目,支持在 Codex 中通过工具调用直接控制 Lumerical 会话、运行脚本并读取变量,实现自然语言驱动的仿真工作流。
- 底层 API:如需了解 Agent 实际调用的接口,可参阅 Lumerical Python API 官方文档。Lumerical 提供完整的 Python 会话与对象接口(如
lumapi.FDTD()),构成自动化仿真的基础。
注意事项与边界
- 工具选择:模型能力直接影响任务成功率,建议优先选用 Claude Code、Codex 或性能足够强的模型。
- 物理正确性核验:Agent 可确保脚本正常运行并满足指标,但边界条件、材料模型与监视器设置是否物理合理,仍需人工核验。AI 的作用在于减少重复劳动,而非替代专业判断。
- 权限管理:开启完全访问权限后,Agent 可执行任意命令,工作环境中应避免存放敏感数据。
- 迭代上限:应为验收条件设定迭代次数上限,避免在无法达成的目标上持续消耗计算资源。
总结
整个流程可概括为四个步骤:
| 步骤 | 内容 |
|---|---|
| 1. 环境准备 | 创建工作文件夹,将 Codex 设为 Workspace |
| 2. Prompt 编写 | 包含解释器路径、器件参数、量化验收条件与交付物要求 |
| 3. 自动执行 | Agent 自主完成建模、仿真、调试与优化,直至满足条件 |
| 4. 结果验收 | 检查 .fsp 文件与报告,未达标时补充反馈继续迭代 |
概括而言:人类负责定义问题与验收标准,Agent 负责其余全部执行环节。
“工具从来不是为了取代思考,而是为了把思考者从重复劳动中解放出来。当年 MATLAB 替我们算矩阵,FDTD 替我们解麦克斯韦方程,今天 Agent 开始替我们操作这些求解器本身。”
参考来源:
视频:AI 编程实现 Lumerical FDTD 仿真全自动设计优化 公众号原文:让 AI 替你跑仿真