三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

ANSYS Electronic运行3D报错:Unable to create child process: 3dedy. Please contact Ansys technical...如何解决?

ANSYS Electronic运行3D报错:Unable to create child process: 3dedy. Please contact Ansys technical...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

📌特别说明:
文中问题案例来源于真实生产环境与公开技术社区,并结合多位一线资深工程师与架构师的长期实践经验,经过人工筛选与AI系统化智能整理后输出。文中的解决方案并非唯一“标准答案”,而是兼顾可行性、可复现性与思路启发性的实践参考,供你在实际项目中灵活运用与演进。

欢迎订阅本专栏,一次订阅后,专栏内所有文章可永久免费阅读,后续更新内容皆不用再次订阅,持续更新中。

📢 问题描述

详细问题描述如下:ANSYS Electronic运行3D报错,具体报错如下图所示:

全文目录:

    • 📢 问题描述
    • 📣 请知悉:如下方案不保证一定适配你的问题!
      • ✅️问题理解
      • ✅️问题解决方案
        • 🟢方案 A:先把 AEDT 改成“最小本地求解配置”,排除 HPC / MPI / 防火墙 / VPN 干扰
        • 🟢方案 B:重置“临时目录 / 工程目录 / 结果目录”,排查路径与权限问题
        • 🟢方案 C:检查 `3dedy` 求解器文件是否真实存在,排查安装损坏/被杀软隔离
        • 🟡方案 D:把问题当成“许可证 / 并发 / 参数扫描”问题来收敛
        • 🟡方案 E:查看 Solution Profile,判断失败发生在“网格后”还是“求解前”
        • 🟡方案 F:从“最小可复现模型”入手,验证是不是工程文件本身坏了
        • 🔴方案 G:高级排障——用 ProcMon 抓 `3dedy` 启动失败的底层原因
      • ✅️问题延伸
        • 1)为什么我说这更像“系统层问题”而不是“仿真设置问题”?
        • 2)截图里的 `gRPC server running on port: 50051` 要不要管?
        • 3)为什么“路径纯英文、路径短、本地盘”这么重要?
        • 4)为什么要先改单核?
        • 5)为什么最小模型测试很关键?
      • ✅️问题预测
        • 预测 1:最可能根因
        • 预测 2:第二可能根因
        • 预测 3:第三可能根因
        • 预测 4:第四可能根因
        • 预测 5:较低概率但不能忽视
      • ✅️小结
    • 🌹 结语 & 互动说明
    • 🧧 文末福利:技术成长加速包 🧧
    • 🫵 Who am I?

📣 请知悉:如下方案不保证一定适配你的问题!

如下是针对上述问题进行专业角度剖析答疑,不喜勿喷,仅供参考:

✅️问题理解

从所给出的截图来看,真正的核心报错不是上面的Left-alt shift...也不是gRPC server running on port: 50051,而是下面这两句:

  • Unable to create child process: 3dedy. Please contact Ansys technical support.
  • Simulation completed with execution error on server: Local Machine.

这说明ANSYS Electronics Desktop(AEDT)已经进入到调用 Maxwell 3D Eddy Current 求解器的阶段,但在本机启动子求解进程3dedy时失败了3dedy对应的就是 Maxwell 3D Eddy Current(频域/谐波)求解器这一类求解进程,所以这类错误首先应当被归类为:“求解器子进程创建/启动失败”,而不是优先归类为“模型物理设置错误”。官方帮助中也明确有 3D Eddy Current solver 这一求解器类型;AEDT 的 HPC 与分析配置、临时目录、求解 Profile 也都是可单独检查的系统层入口。

软件工程/需求分析视角看,这个问题可以拆成 6 个层次:

  1. GUI 层:你点击 Analyze,界面能正常响应,说明不是纯 UI 卡死。
  2. 调度层:AEDT/MaxwellComEngine 开始组织求解任务。
  3. 子进程层:需要创建3dedy子进程,这一步失败。
  4. 系统层:Windows 权限、路径、临时目录、杀软、防火墙、VPN、运行库、环境变量都可能影响CreateProcess
  5. 并行/HPC 层:AEDT 的求解配置、MPI、本地并行、队列、GPU 都可能参与子进程拉起。官方也说明 HPC/Analysis 配置是单独管理的;Ansys 论坛里对类似 “Unable to create child process” 问题,官方员工首先建议检查防火墙,以及是否在使用 VPN。
  6. 模型层:几何、网格、激励、材料、内存消耗过大,会导致求解过程后续失败;但你这个报错文本本身更像“求解器启动失败”而不是“求解器算崩了”。这是基于报错位置做出的工程判断。

所以我先给你一个高可信结论

👉这类报错优先排查“环境/权限/HPC/路径/安装完整性”,不要一上来就陷入边界条件、材料参数、网格细节。💡

✅️问题解决方案

🟢方案 A:先把 AEDT 改成“最小本地求解配置”,排除 HPC / MPI / 防火墙 / VPN 干扰

这是我最推荐你先做的方案,命中率通常最高。

因为官方帮助里说明,AEDT 的求解是通过Tools > Options > HPC and Analysis Options统一配置的,默认是本地单机解算;而官方论坛对类似Unable to create child process的案例,直接建议先排查firewallVPN

具体操作:

  1. 打开
    Tools > Options > HPC and Analysis Options

  2. 找到当前设计类型对应的配置,把Local配置设为 Active。

  3. 把求解改成最保守模式:

    • 只用Local Machine
    • CPU cores = 1 或 2
    • 关闭Distributed / MPI
    • 关闭Queue
    • 关闭GPU
    • 不要并行跑参数扫描 / Optimetrics
  4. 完全退出 AEDT。

  5. 断开 VPN后重新启动 AEDT。

  6. 临时关闭 Windows 防火墙测试一次;如果不方便全关,至少把这些程序加入白名单:

    • ansysedt.exe
    • maxwellcomengine.exe
    • 3dedy.exe
    • 以及可能的 MPI 相关可执行文件
  7. 用“管理员身份运行” AEDT 再试一次。

为什么这个方案优先级最高?

因为你现在的报错不是“模型无效”,而是“子进程没起来”。
而子进程起不来,最常见的几类就是:

  • 并行配置不匹配
  • MPI / 本地通信被拦
  • VPN 把本地回环或授权通信干扰了
  • 防火墙/安全软件阻止求解器拉起

判定标准:

  • 如果改成单核本地后能跑,说明根因大概率就在HPC/MPI/防火墙/VPN这一层。
  • 如果仍然失败,继续做方案 B 和方案 C。
🟢方案 B:重置“临时目录 / 工程目录 / 结果目录”,排查路径与权限问题

官方帮助明确写了:AEDT 的临时目录可以在Tools > Options > General Options > Directories里设置,而且 Windows 下用户级配置默认会落到%UserProfile%\Documents\Ansoft\...这一类路径。项目结果也会写到project_name.aedtresultsdesign_name.results下面。

这点非常关键,因为很多人项目路径虽然是英文,比如你图里是D:/fangzhen/,但真正用来解算的 temp 路径未必是这里,而可能仍然在:

  • 用户文档目录
  • OneDrive 同步目录
  • 带中文用户名的用户目录
  • 被安全策略限制的目录

具体操作:

  1. 手动创建两个新目录,必须满足这几个要求:

    • 本地磁盘
    • 纯英文
    • 路径短
    • 非网盘/非同步目录
    • 当前用户有完全读写权限

    例如:

    • D:\AnsysTemp
    • D:\AnsysWork
  2. 在 AEDT 中设置:

    • Tools > Options > General Options > Directories
    • 勾选 Temp Override
    • 把 Temp 改到D:\AnsysTemp
  3. 把当前工程另存为到:

    • D:\AnsysWork\test_case.aedt
  4. 关闭 AEDT 后,清理旧缓存:

    • 删除或重命名原来的.aedtresults
    • 清空D:\AnsysTemp旧内容
    • 确保磁盘剩余空间充足,建议至少预留 20GB 以上
  5. 再重新打开工程求解。

这一方案为什么有效?

因为Unable to create child process很多时候不是“程序不存在”,而是:

  • 子进程启动后无法写临时文件
  • 结果目录无权限
  • 路径中字符/长度/同步锁导致求解器异常退出
  • Windows 安全策略对文档目录或同步目录限制较多

特别提醒:

如果你的 Windows 用户名、文档路径、OneDrive 路径里有中文或特殊字符,这个方案优先级还要再上升一级。
虽然图里的工程路径是英文,但temp 路径才是最容易被忽略的隐藏坑。这个判断是基于 AEDT 临时目录机制与 Windows 用户路径实际行为做出的工程推断。

🟢方案 C:检查3dedy求解器文件是否真实存在,排查安装损坏/被杀软隔离

如果连子进程都创建不了,就必须确认3dedy对应的求解器文件是不是还在安装目录里。这一步非常务实。

你可以这样查:

  1. 打开 CMD,执行:
where /r "C:\Program Files\ANSYS Inc" 3dedy*

如果你装在别的盘,就把根目录换掉。

  1. 观察结果:
  • 查得到:说明文件大概率存在,继续排查权限/依赖/拦截。
  • 查不到:说明安装不完整、文件被删、或被杀软隔离了。
  1. 再检查这些位置:

    • Windows Defender 隔离区
    • 第三方杀毒软件日志
    • 企业安全软件拦截记录
  2. 如果发现被拦截:

    • 恢复文件
    • 给 ANSYS 安装目录做白名单
  3. 如果文件缺失或可执行文件损坏:

    • 用安装器执行Repair
    • 或直接重装 AEDT / Maxwell 模块
    • 重装时避免和旧版本路径混装
    • 安装后第一次启动尽量用管理员权限

进阶排查:

还可以看 Windows 事件查看器:

  • 打开eventvwr.msc

  • 看:

    • Windows Logs > Application
    • Windows Logs > System

重点搜:

  • ansysedt
  • maxwell
  • 3dedy
  • Application Error
  • SideBySide
  • Faulting module

如果这里能看到 DLL 缺失、运行库错误、访问拒绝,那就基本能锁定根因。

这个方案适用于什么症状?

  • 一直报同样错误
  • 换项目也不行
  • 本地单核也不行
  • 之前能跑,后来突然不行
  • 安装目录动过、升级过、杀软最近更新过
🟡方案 D:把问题当成“许可证 / 并发 / 参数扫描”问题来收敛

这个错误文本不像典型 license checkout failed,所以我不把它排第一。
但从工程实践看,错误的 HPC 配置、并发参数、参数扫描并行、授权类型不匹配,确实会在“求解子进程拉起”这一步制造连锁故障。官方文档说明 AEDT 的 HPC 许可证类型、分布式设置都在同一个 HPC and Analysis Options 里管理;Ansys Licensing Guide 也说明 Maxwell 支持 HPC 核心/Pack 授权,并且不能把不兼容的 HPC 许可混在同一次解算里

建议操作:

  1. 把求解线程数固定到1 核

  2. 不开参数并行,不开多设计并发。

  3. 如果你是学校版/网络授权/VPN 授权:

    • 先确认许可证服务可用
    • 再确认本地机器能稳定访问 license server
  4. 如果是 Optimetrics:

    • 暂时关闭并行 variation
    • 单个 variation 单独跑
  5. 如果同一台机器上同时开了多个 AEDT 工程:

    • 全部关掉,只留一个

为什么要这样做?

因为官方许可文档明确指出:

  • HPC 许可类型有约束
  • 同类并发求解会受单会话/并发规则影响
  • Maxwell 属于支持 HPC 的应用之一

所以即使根因最终不是授权本身,这一步也能把变量降到最低,便于快速定位。

🟡方案 E:查看 Solution Profile,判断失败发生在“网格后”还是“求解前”

官方帮助说明,右击 Setup > Profile可以查看求解过程日志,包括每个任务耗时、内存、磁盘使用等信息。

这一步很有价值,因为它能回答两个关键问题:

  1. 3dedy是根本没启动,还是启动后立刻挂了?
  2. 失败前是否已经出现内存、磁盘、网格异常?

操作:

  1. 在 Project Manager 中右键你的求解 Setup

  2. 选择Profile

  3. 看失败前最后一个成功阶段:

    • 是 Validation
    • 是 Mesh
    • 是 Adaptive Pass
    • 还是 Solver Start

如何解读:

  • 如果在 Solver Start 前就失败
    更像环境/路径/HPC/权限问题。
  • 如果在网格后、矩阵求解前失败
    可能是资源不足,或者求解器被系统杀掉。
  • 如果内存飙高、磁盘写满
    就要开始考虑模型规模、网格密度、涡流区域设置。

另外,官方文档也提到在某些 3D Eddy Current 相关设置里,启用位移电流等会增加未知量、占用更多内存。

🟡方案 F:从“最小可复现模型”入手,验证是不是工程文件本身坏了

这是典型的软件工程式排障方法 👍

操作建议:

  1. 新建一个最简单的 Maxwell 3D Eddy Current 工程:

    • 一个空气盒
    • 一个导体
    • 一个最基本激励
    • 默认材料
    • 默认求解设置
  2. 同一台机器、同一版本、同一用户、同一路径规则跑一次。

结果分两类:

  • 最小模型都跑不起来
    根因几乎肯定在环境层,不在你的业务模型。

  • 最小模型能跑,原模型不能跑
    那么再收敛到:

    • 原工程文件损坏
    • 原工程路径/缓存有问题
    • 原工程网格/材料/设置太重
    • 参数扫描配置异常

这一步虽然“土”,但在工程里非常有效,因为它把“系统问题”和“模型问题”硬切开了。

🔴方案 G:高级排障——用 ProcMon 抓3dedy启动失败的底层原因

当前面方案都没打中时,用这个最狠、最准确。
这是系统工程师/开发排查的办法。

工具:

  • Sysinternals Process Monitor(ProcMon)

抓法:

  1. 以管理员身份运行 ProcMon

  2. 过滤条件加:

    • Process Name containsansys
    • Path contains3dedy
    • Result isACCESS DENIED/NAME NOT FOUND/PATH NOT FOUND
  3. 回到 AEDT 点 Analyze

  4. 观察3dedy启动前后的事件

你最想看到的线索是:

  • NAME NOT FOUND
    → 可执行文件或依赖 DLL 没找到
  • ACCESS DENIED
    → 权限或安全软件拦截
  • PATH NOT FOUND
    → 临时目录/结果目录配置错误
  • SHARING VIOLATION
    → 目录被同步工具、杀软、其他进程占用

这一招通常能把“模糊的 ANSYS 报错”变成“明确的 Windows 根因”。

✅️问题延伸

这个问题还可以顺手延伸出几个非常重要的认识:

1)为什么我说这更像“系统层问题”而不是“仿真设置问题”?

因为报错文本是Unable to create child process
这种措辞指向的是“求解器进程未被成功创建”,不是“求解器已经计算后发现模型不收敛”。如果是边界条件冲突、材料非法、激励不合法、网格失败,通常日志会更直接体现为 validation、mesh、matrix、solver convergence 一类错误。

2)截图里的gRPC server running on port: 50051要不要管?

通常先不用。
这更像 AEDT 内部服务启动日志,不是你的主错误。你当前要抓的是3dedy子进程创建失败。

3)为什么“路径纯英文、路径短、本地盘”这么重要?

因为官方说明 temp 目录、结果目录、用户配置都依赖本地路径体系;而很多工程上难以解释的问题,最终都是:

  • 用户目录太深
  • 文档目录被同步
  • 中文路径
  • 权限继承不一致
  • 杀软对文档目录管得更严

这些对 GUI 打开工程没问题,但对后台子求解器很容易出问题。

4)为什么要先改单核?

因为改单核不是为了“省资源”这么简单,而是为了切断并行、MPI、授权、GPU、调度器这些额外变量。
从需求分析角度,这叫缩小故障边界;从软件工程角度,这叫最小化复现条件。一旦单核能跑,你就知道问题不在模型本体,而在运行环境扩展项。

5)为什么最小模型测试很关键?

因为它能把问题分成两类:

  • 平台型问题:任何模型都跑不起来
  • 项目型问题:只有这个工程跑不起来

这是所有工程排障里性价比最高的一刀切方法。

✅️问题预测

基于你这个报错形态,我给你一个概率排序预测,便于你排障时有方向感:

预测 1:最可能根因

HPC / MPI / 防火墙 / VPN / 本地通信配置问题

理由:
类似 “Unable to create child process” 的 AEDT 问题,官方论坛首先就让用户检查 firewall 和 VPN;再加上这是在本机 Local Machine 上发生的子进程创建失败,非常符合这一类特征。

预测 2:第二可能根因

Temp 路径 / 结果目录 / 用户目录权限或路径字符问题

理由:
AEDT 的 temp 路径是独立配置的,而且默认和用户目录强相关。你工程路径虽然是D:/fangzhen/,但真正的 temp 未必在那里。

预测 3:第三可能根因

安装损坏、求解器可执行文件缺失、被杀软隔离

理由:
如果3dedy文件本身不存在或依赖损坏,AEDT 就会在“创建子进程”这一步直接挂。

预测 4:第四可能根因

参数并行 / 许可证 / HPC 类型不匹配

理由:
许可证问题未必直接显示成 license checkout failed,尤其在复杂的 HPC 配置下,有时会表现为求解启动链条异常。官方许可文档也强调 HPC 类型、并发和核数存在严格约束。

预测 5:较低概率但不能忽视

模型太大导致资源耗尽

如果你的 Profile 里显示在网格后内存暴涨、磁盘写满,那就要开始收缩模型规模、网格密度、涡流区域范围、位移电流设置。官方文档也明确说某些 Eddy Current 设置会增加未知量和内存需求。

✅️小结

我帮你把结论收一下,方便你直接动手:

你这个错误的本质:
不是“仿真结果不对”,而是AEDT 在本机启动 Maxwell 3D Eddy Current 子求解器3dedy失败

最优先排障顺序:

  1. HPC 改 Local 单核,关 MPI / GPU / Queue
  2. 断 VPN,放行防火墙/杀软
  3. 把 Temp 改到D:\AnsysTemp这类纯英文本地目录
  4. 工程另存到纯英文短路径,删旧.aedtresults
  5. 检查安装目录是否存在3dedy
  6. 跑一个最小模型,区分系统问题还是项目问题
  7. 看 Setup > Profile
  8. 还不行就上Event Viewer + ProcMon

一句话判断优先级:
👉先查环境,再查路径,再查安装,最后才查模型。

你这类问题,按我上面的顺序排,通常能很快缩到根因。

🌹 结语 & 互动说明

希望以上分析与解决思路,能为你当前的问题提供一些有效线索或直接可用的操作路径

若你按文中步骤执行后仍未解决:

  • 不必焦虑或抱怨,这很常见——复杂问题往往由多重因素叠加引起;
  • 欢迎你将最新报错信息、关键代码片段、环境说明等补充到评论区;
  • 我会在力所能及的范围内,结合大家的反馈一起帮你继续定位 👀

💡如果你有更优或更通用的解法:

  • 非常欢迎在评论区分享你的实践经验或改进方案;
  • 你的这份补充,可能正好帮到更多正在被类似问题困扰的同学;
  • 正所谓「赠人玫瑰,手有余香」,也算是为技术社区持续注入正向循环

🧧 文末福利:技术成长加速包 🧧

文中部分问题来自本人项目实践,部分来自读者反馈与公开社区案例,也有少量经由全网社区与智能问答平台整理而来。

若你尝试后仍没完全解决问题,还请多一点理解、少一点苛责——技术问题本就复杂多变,没有任何人能给出对所有场景都 100% 套用的方案。

如果你已经找到更适合自己项目现场的做法,非常建议你沉淀成文档或教程,这不仅是对他人的帮助,更是对自己认知的再升级。

如果你还在持续查 Bug、找方案,可以顺便逛逛我专门整理的 Bug 专栏👉《全栈 Bug 调优(实战版)》👈️

这里收录的都是在真实场景中踩过的坑,希望能帮你少走弯路,节省更多宝贵时间。

✍️如果这篇文章对你有一点点帮助:

  • 欢迎给 bug菌 来个一键三连:关注 + 点赞 + 收藏
  • 你的支持,是我持续输出高质量实战内容的最大动力。

同时也欢迎关注我的硬核公众号 「猿圈奇妙屋」:

获取第一时间更新的技术干货、BAT 等互联网公司最新面试真题、4000G+ 技术 PDF 电子书、简历 / PPT 模板、技术文章 Markdown 模板等资料,通通免费领取
你能想到的绝大部分学习资料,我都尽量帮你准备齐全,剩下的只需要你愿意迈出那一步来拿。

🫵 Who am I?

我是 bug菌:

  • 热活跃于 CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等技术社区;
  • CSDN 博客之星 Top30、华为云多年度十佳博主/卓越贡献者、掘金多年度人气作者 Top40;
  • 掘金、InfoQ、51CTO 等平台签约及优质作者;
  • 全网粉丝累计30w+

更多高质量技术内容及成长资料,可查看这个合集入口 👉 点击查看 👈️

硬核技术公众号「猿圈奇妙屋」期待你的加入,一起进阶、一起打怪升级。

- End -

← 返回列表