dsh-abaqus: 驱动 Abaqus/CalculiX 建模的 DeepSeek Harness 插件

前言

在 DeepSeek Harness (DSH) 的插件生态中,控制 CAE 软件通常是构建自动化工作流的关键环节。传统的有限元分析往往依赖图形界面操作或手工编写输入文件,不仅繁琐,而且难以被 AI 代理标准化。

dsh-abaqus 插件旨在解决这一问题。它允许通过声明式的 JSON 规格来定义模型,进而驱动 Abaqus 或 CalculiX 进行建模、求解与结果提取。

插件介绍

这是一个 DSH Host 插件,核心价值在于将复杂的 CAE 建模流程抽象为单一的数据结构(JSON Spec)。它支持两种后端:Abaqus CAE 和 CalculiX。通过该插件,代理可以完成从模型构建、网格划分、求解提交到结果读取的全流程。

  • 维护者: feihong-li
  • 许可证: MIT

核心功能

插件提供了一套工具集,覆盖建模到分析的全周期:

  • 声明式建模:通过 JSON Spec 定义几何、材料、边界条件和载荷。
  • 双后端支持:
    • Abaqus CAE:支持 CAE 内核几何、CAE 网格划分及 .odb 结果读取(需商业许可证)。
    • CalculiX:支持内置几何体(box/cylinder)、结构化网格(六面体/楔形核心),直接生成 .inp 并通过 ccx 求解,结果解析为 .frd(已验证可用)。
  • 工具链:
    • abaqus_env:检测环境配置。
    • abaqus_spec:提供 DSL 参考与示例。
    • abaqus_build:将 Spec 编译为求解器输入文件或 CAE 脚本。
    • abaqus_run:提交作业、运行脚本或命令。
    • abaqus_status:查询作业状态、错误警告及增量信息。
    • abaqus_results:读取 .frd 文件,提取位移、应力等数据并导出 CSV。

安装与配置

在使用前,确保环境满足要求:Node.js >= 20。

安装

在命令行执行以下命令安装插件:

dsh plugin --profile <profile> add <this-repo-url>

安装后重启 DSH,工具链将随启动加载。

配置

插件依赖求解器路径,支持自动检测或手动配置。在 DSH 的配置文件中,可以通过 config 字段设置:

- insert:
    - id: dsh-abaqus
      name: '@local/dsh-abaqus'
      config:
        abaqusCommand: 'C:\SIMULIA\Commands\abq2023.bat'  # 可选,用于 Abaqus
        ccxPath: 'F:\tools\calculix\bin\ccx.exe'          # 可选,用于 CalculiX
        pythonPath: 'D:\Python39\python.exe'              # 可选,语法检查用

求解器发现顺序:
* Abaqus:配置路径 -> ABAQUS_COMMAND 环境变量 -> ABAQUS_HOME 目录 -> where abaqus -> 注册表 -> 常见目录。
* CalculiX:配置路径 -> CCX_PATH 环境变量 -> where ccx -> 常见安装根目录。

典型用法

一次典型的分析流程如下:

abaqus_env                                       # 检查安装的求解器与工具
abaqus_spec                                      # 查阅 DSL 语法规范
abaqus_build   { spec: {...}, backend: "both" }   # 生成 .inp 文件和 CAE 脚本
abaqus_run     { caseDir: "...", backend: "calculix" }
abaqus_status  { caseDir: "..." }
abaqus_results { caseDir: "...", set: "beam_xmax", writeCsv: true }

Spec 示例(定义一个悬臂梁):

{
  "name": "cantilever",
  "materials": { "steel": { "E": 210000, "nu": 0.3, "rho": 7.85e-9 } },
  "parts": [{ "name": "beam", "material": "steel",
              "geometry": { "kind": "box", "size": [100, 10, 10] },
              "section": { "type": "solid" } }],
  "steps": [{ "name": "Load", "type": "static",
              "increments": { "initial": 0.1, "period": 1, "min": 1e-5, "max": 0.1 } }],
  "boundaries": [{ "name": "FIX", "step": "Load", "region": { "plane": "x=min" }, "dof": [1, 2, 3] }],
  "loads": [{ "name": "TIP", "step": "Load", "type": "concentrated",
              "region": { "plane": "x=max" }, "vector": [0, -100, 0], "total": true }],
  "mesh": { "size": 2.5, "element": "C3D8" },
  "output": { "fields": ["S", "U"] }
}

注意事项

  1. 后端可用性:
    • CalculiX 后端经过验证,是当前唯一可用的免费开源后端(GPL 协议)。
    • Abaqus CAE 后端代码存在,但根据项目说明,该后端从未在实际环境中执行(因缺乏 Abaqus 安装或许可证)。目前不建议用于生产环境。
  2. 命名集一致性:内置网格生成器生成的节点/单元集与求解器输入文件中的命名集(*NSET / *ELSET)完全一致。abaqus_results 工具支持通过简单的平面定义(如 {"plane": "x=max"})直接引用这些集。
  3. 权限检查:插件运行在 DSH 进程上下文中,请确保安装前检查源码与许可证,并确认对求解器目录和输出目录的读写权限。

结语

dsh-abaqus 提供了将结构化数据转化为有限元分析流程的标准化路径。对于需要集成 CAE 能力的 DeepSeek Harness 智能体开发,它提供了一个以 JSON 为中心的、可验证的起点。源码与详细文档可参考项目仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜