Communitygithub.com

test1card/femis-skill

一个 Claude Agent 技能,可将 AI 编码代理转变为严谨的 FEM/CAE 分析师:通过执行模式门控、GCI 网格无关性以及在 Ansys、Abaqus、Nastran、OpenFOAM、COMSOL 上的 V&V 来管理工程声明。治理层,而非求解器驱动。

femis-skill 是什么?

FEM / CAE 技能是一个治理层 AI 代理技能,旨在将 AI 编码代理(如 Claude Code、Cursor、Codex)转变为一名能严格执行专业实践的有限元分析/CAE 分析师。它与求解器驱动/MCP 配对(后者负责执行),而此技能负责裁决是否允许提出工程结果、结果处于何种可靠级别,以及在何时需要人类做出判断。它强制执行一系列核心原则:没有解决离散化误差的结果不被信任;必须收敛关注量 (QoI) 而非峰值;大部分误差源自前处理;校准不等于验证。该技能通过清晰的执行模式(SMOKE、DEBUG、ENGINEERING、SIGNOFF)和严格的“声明前自检”来指导代理,确保在提出任何工程数值之前,代理必须验证单位、离散化误差、奇异性和平衡,否则将结果降级。此技能跨平台运行,支持 Ansys、Abaqus、Nastran、OpenFOAM、COMSOL 等众多求解器,主要关注结构、热、CFD 和多物理场分析。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add test1card/femis-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

FEM / CAE — 结构 · 热 · CFD · 多物理场

此技能治理工程声明 — 它不驱动求解器或批准设计。 它与求解器驱动 / MCP(PyMAPDL、PyMechanical、Abaqus / OpenFOAM 驱动、OASiS、CAE MCP)配对,后者执行;此技能决定结果是否可以被断言、在什么可靠级别,以及何时必须由人类决定。

概述

治理全程有限元与 CAE 分析。与执行器配对(PyMAPDL、PyMechanical、PyFluent、Abaqus/OpenFOAM 驱动、CAE MCP — 见下方“治理层,非执行器”) 执行器定位已安装的求解器、构建脚本/命令流、并启动无头/批处理;此技能指导和审计理想化、读取日志以检查收敛、检查/解析结果,并在每次运行中强制实施专业实践(理想化 → 网格划分 → 连接 → 求解控制 → 收敛 → 网格无关性 → V&V)。方法论与求解器无关;此处深究适用于 Ansys / Simcenter / Thermal Desktop,广度覆盖 Abaqus、LS-DYNA、MSC/Simcenter Nastran、COMSOL、OpenFOAM、Fluent、CFX、STAR-CCM+、CalculiX、Code_Aster(见 references/software-landscape.md)。

核心原则(作为门控强制实施):

  1. 除非其离散化(网格/时间步)误差已被处理(在 ENGINEERING 级别限定并说明,例如最后一级细化的 QoI 变化,或单网格 ZZ/SPR 估计),或在 SIGNOFF 级别通过渐近范围内的 GCI 研究充分证明,否则任何结果都不被信任;未经任何误差说明而报告的单网格数值永远不是结果。外加下方的收敛检查。
  2. 收敛关注量 (QoI),而非峰值 — 尖角、点载荷、裂纹尖端的峰值是永不收敛的奇异点。
  3. 大多数误差源于前处理(理想化、边界条件、连接)— 将这些决策前置。
  4. 验证先于确认;校准 ≠ 确认 — 没有运行证据,代理不得声称获批。

此 SKILL.md 是路由器。 深度内容位于 references/ 中 — 仅当相关主题出现时才加载参考文件。

何时使用

  • 结构(静力/模态/屈曲/非线性/显式)、热(稳态/瞬态/辐射)、CFD(RANS/LES、CHT)、电磁学(低/高频)、振动声学/NVH、多体 以及 耦合多物理场(热-力、FSI、电磁-热)。
  • 失效与耐久性: 断裂 / 损伤容限、疲劳(包括振动/频谱)、复合材料、塑性 / 安定 / 棘轮效应、屈曲与稳定性、碰撞 / 冲击 / 跌落。
  • 接触、热接触电阻、螺栓/焊接/刚性连接件;网格划分与网格无关性 (GCI);单元/求解器/单位选择。
  • 无头/批处理求解与结果解析;优化、校准、逆参数识别 / 模型更新。
  • V&V / UQ;子结构化 / ROM;低温 / 真空 / 航天器热。
  • 决定代理可以自动化无头执行的内容 vs 必须由人类完成的内容(下一节)。

不适用于: 纯粹的 CAD 建模或更适合手算封闭解的问题。

★ 代理能力与无头-vs-人类契约

精确界定谁做什么。分类:AGENT-HEADLESS(完全可脚本化/批处理,无 GUI)· AGENT-VIA-API(Python/日志 API,需要会话 + 许可证)· HUMAN-GUI(必须至少交互一次)· HUMAN-JUDGMENT(代理不得单独做出的工程决策)· LICENSE-GATED。各平台完整细节:references/agent-automation-boundary.md。

操作分类如何 / 为什么
CAD 导入AGENT-VIA-APIPyMAPDL/PyMechanical/run_journal 导入 STEP/Parasolid
几何清理 / 大量特征抑制AGENT-VIA-API + HUMAN-JUDGMENT可脚本化的特征抑制/收缩;杂乱的修复 + 抑制什么 是判断
网格划分AGENT-HEADLESS (Ansys) · SEED-IN-GUI (NX)PyMAPDL/PyMechanical 完全无头网格划分;NX .fem/.sim 模板在批处理中无法解析 → 在 GUI 中创建一次种子
材料创建/赋值AGENT-HEADLESS所有平台均可脚本化;提供随温度变化的数据
接触 / 连接AGENT-HEADLESS (构建) + HUMAN-JUDGMENT (类型)定义是可脚本化的;绑定 vs 摩擦 / RBE2 vs RBE3 是工程选择
边界条件与载荷AGENT-HEADLESS可脚本化;代理不得自行发明载荷工况
暴露优化参数AGENT-HEADLESS (PyMAPDL *SET) · HUMAN-GUI (Workbench P#、NX 表达式、HEEDS 标签)只有 PyMAPDL 对参数化是无 GUI 的
求解(稳态/瞬态/非线性)AGENT-HEADLESS + LICENSE-GATEDansys -b, nastran.exe, tmgnx, abaqus job=, fluent -g, OpenFOAM, cfx5solve -batch, starccm+ -batch
电磁求解(电机/RF/涡流)AGENT-VIA-API + LICENSE-GATEDPyAEDT (import ansys.aedt.core, non_graphical=True)、COMSOL/getDP 批处理;端口/激励/扫频是工程设置
优化 / DOE / 校准AGENT-HEADLESS (PyMAPDL+SciPy, optiSLang -b, HEEDS CLI) + GUI-AUTHOR-ONCE在 GUI 中创建一次研究/标签,然后无头运行
结果提取AGENT-HEADLESSPyDPF, pyNastran (.op2/.f06), .odb, SINDA .out, CGNS/VTK
后处理图像/绘图AGENT-HEADLESSpyvista 离屏渲染, ParaView pvbatch
关联 / 模型更新 (MAC, 节点配对)HUMAN-GUI交互式测试↔分析节点配对是 GUI 工作
模板 / .sim / 项目创建 (NX)HUMAN-GUI模板注册未在无头模式下初始化 → 预先创建种子,然后驱动它
许可LICENSE-GATED每个并行求解器实例消耗自己的席位

代理绝不可自动执行: 单独选择理想化 / 单元 / 接触类型 / 边界条件 (HUMAN-JUDGMENT) · 接受固定在物理边界上的校准旋钮 · 将奇异峰值或未收敛的结果报告为结果 · 宣称验证 / 网格无关性 / 批准而缺少运行证据 · 未经授权执行不可逆的推送/覆盖。

配对与执行器契约

此技能是治理层,而非执行器。 与任何驱动求解器的工具配对 (PyMAPDL, PyMechanical, Abaqus / OpenFOAM 驱动, OASiS, CAE MCP):执行器运行;此技能治理声明。 不相信没有来源的求解器输出 — 只有在执行器返回以下内容时,结果才是可信的:

  • 运行清单 (run_manifest.json,模板 scripts/run_manifest_template.json) — 可追溯性主干 (NAFEMS R0033)。
  • 求解器名称 + 确切版本 — 从检测到的安装的横幅/-help 中读取,绝不假设。
  • 输入命令流哈希 + 结果文件哈希(例如 .inp/.dat/.cdb 和 .rst/.rth/.op2 的 SHA-256)— 将数值与产生它的确切命令流和结果绑定。
  • 命令 + 标志证据 — 实际的启动行,根据该版本验证的标志(版本对齐命令规则,步骤 0)。
  • 隔离的工作空间 — 一个干净的工作目录;输出写入其中,从不覆盖先前的“最终”文件而不带有 superseded_by 指针。

缺少此来源的结果最多是 SMOKE/DEBUG 伪影 — 按此措辞(references/claim-templates.md)。

执行模式(每项任务选择一种 — 设定强制门控与可声明的范围)

模式使用时机强制门控绝不
SMOKE证明环境/命令流/求解/解析能运行步骤 0;求解完成;结果文件已写入且可读声明任何工程数值;调整任何参数
DEBUG查找故障原因针对症状的一个决定性测试;如果是热分析则加上连通性门控将诊断性求解呈现为结果
ENGINEERING可用结果 + 合理性检查单位;连通性;反力/热/质量平衡;收敛;QoI 提取;奇异性检查声称批准;报告奇异峰值
SIGNOFF可辩护的交付物所有 ENGINEERING + 网格与时间步无关性 (GCI, 渐近范围) + 可追溯报告 + 误差界限跳过任何门控;对不确定性含糊其辞

SMOKE/DEBUG 结果是流程/物理检查,绝不是工程结论 — 请标记。

★ 声明前自检 — 在陈述任何工程数值之前回答所有问题

这是使此技能值得信赖的门控。在你输入应力、温度、频率、裕度、阻力或“通过”之前, 回答这些问题。如果任何一个答案是否 / 未知,你没有结果 — 你只有 SMOKE/DEBUG 输出:说出来并停止。

  1. 模式? 我处于哪个执行模式,且其强制门控是否已通过?(SMOKE/DEBUG ⇒ 不是工程结论。)
  2. 单位? 是否验证了统一的单位系统 (1g-质量 / 手算检查)?密度是否未被单位污染?
  3. 离散化误差是否被处理? 网格和时间步误差是否已被限定并说明(SIGNOFF 为 GCI;ENGINEERING 为单网格 ZZ/SPR 估计)?一个孤立的单网格数值永远不是结果。
  4. 是否排除了奇异性? QoI 是否位于拐角 / 点载荷 / 裂纹尖端伪影处?在引用之前应读取远离的值或线性化。
  5. 平衡是否已检查? 反力 = 施加的力;热/质量/能量平衡在容差内;收敛基于残差历史,而非退出代码?
  6. 是否指明了许用值? 是否存在相对于命名准则 / 设计规范的裕度 — 而非裸数值?
  7. 是否越过了人类判断门控? 我是否暗自选择了载荷工况、接触类型、许用值、特征抑制或批准?如果是 — 停止并上报 (references/escalation-examples.md)。

然后使用 references/claim-templates.md 中的匹配模板表述结果。代理没有运行证据绝不声称批准,并且绝不自行授权工程决策。 精确的求解器标志 / API 调用本身就是一个声明 — 根据步骤 0 中的版本对齐命令规则确认。

步骤 0 — 始终首先执行:环境发现

永远不要假设版本或路径。查找已安装/许可的内容,然后确认平台 + 物理场 + QoI。

Get-ChildItem "C:\Program Files\ANSYS Inc" -Recurse -Filter "ANSYS*.exe" -ErrorAction SilentlyContinue | Select FullName   # MAPDL/Mechanical/Fluent/CFX
Get-ChildItem "C:\Program Files\Siemens" -Recurse -Include "nastran.exe","run_journal.exe","tmgnx.cmd","ugraf.exe" -ErrorAction SilentlyContinue
Get-ChildItem "C:\Program Files" -Recurse -Filter "abq*.bat" -ErrorAction SilentlyContinue   # Abaqus; also `which icem`, OpenFOAM `foamVersion`
$env:ANSYSLMD_LICENSE_FILE; $env:LM_LICENSE_FILE
(Get-CimInstance Win32_Processor | Measure-Object NumberOfCores -Sum).Sum   # 物理核心

Linux:ansysNNN -b, nastran, abaqus, simpleFoam, fluent -g;检查 $LM_LICENSE_FILE, nproc。

版本对齐命令(规则): 永远不要发出你未验证存在于检测到的版本中的求解器命令、标志或 API 调用 — 版本会重命名标志并改变 API。在依赖它之前,请针对已安装版本的 -help/文档进行确认,尤其是在 ENGINEERING/SIGNOFF 时。

规范工作流(按顺序运行)

  1. 目标 + QoI — 驱动决策的标量(裕度、挠度、频率、峰值温度、阻力)。不是“运行模型”。
  2. 分析类型 — 静力/模态/屈曲/热/CFD/耦合;线性 vs 非线性(材料?大变形?接触?湍流?)。
  3. 理想化 (影响最大) — 1D/2D/3D;仅当几何和载荷和边界条件对称时才使用对称;抑制无关特征。 → references/meshing-convergence.md。
  4. 材料 — 正确的本构模型;随温度变化的属性;低温时使用 ∫α(T)dT。 → references/material-modeling.md。
  5. 网格 — 单元阶次/族、关注区域加密、质量标准。 → references/meshing-convergence.md。
  6. 连接与接触。 → references/mechanical-connections.md, references/thermal-contact-resistance.md。
  7. 边界条件与载荷 — 仅移除适合模型维度/类型的刚体模式(未约束的3D 实体有 6 个;2D、轴对称、纯壳和循环对称模型不同);载荷施加于真实区域(绝无点载荷/约束 → 奇异性);自由体的惯性释放。 → references/advanced-methods.md。
  8. 求解控制 — 求解器类型、核心数、子步 + 容差。 → references/solver-numerics.md。
  9. 验证 — 平衡、网格/时间步无关性、收敛历史。 → references/vv-uq.md。
  10. 确认 — 与测试 / 手算 / NAFEMS 基准对比(校准 ≠ 确认)。
  11. 后处理与报告 — 正确的度量、平均值与未平均值检查、裕度、说明的假设。

一致的单位(选择一个系统;求解器是无单位的)

系统长度力应力/E质量密度(钢)g
SI (m)mNPakg7850 kg/m³9.81 m/s²
mm-t-s(常见 CAE)mmNMPa吨7.85e-9 t/mm³9810 mm/s²

密度是默默的破坏者: 错误单位的密度在静力分析中可能通过,但会破坏所有动力学/显式/瞬态热结果。MAPDL 的 /UNITS 只是元数据。通过 1g 质量检查或手算固有频率来验证。

单元选择与网格质量(深度:references/meshing-convergence.md)

  • 二次单元(边中点)用于应力/弯曲几何,尤其是四面体 — 避免对压力使用线性 TET4(常应变 → 过刚、应力收敛慢;仅作为远离 QoI 的填充单元可接受)。显式/大变形使用线性。(剪切自锁 实际影响弯曲中的完全积分线性四边形/六面体 — 寄生剪切;通过减缩积分、非协调模式或二次单元修复 — 与 TET4 的常应变刚度缺陷不同。)现代二次实体对于轻度弯曲,以约 1 个单元贯穿厚度作为起点(曲率驱动 — 通过收敛确认);线性单元需要多个,且精度关键的弯曲希望 ≥2 个二次单元。
  • 壳单元如果厚度/长度 ≲ 1/10–1/20;三维应力/贯穿厚度使用实体;细长件使用梁。考虑 sh

…

[为翻译截断]

相关技能