乐于分享
好东西不私藏

技术分享 | .inp 关键字格式详细说明及abaqus求解器直接调用技术分享

技术分享 | .inp 关键字格式详细说明及abaqus求解器直接调用技术分享

一、引言

1.1 Abaqus 文件体系简述

Abaqus 作为通用的有限元分析软件,拥有完整的文件系统,不同后缀文件承担不同角色:

.cae模型数据库:含几何、网格、载荷等前处理信息,低版本软件无法打开高版本文件。.inp输入文件:求解器真正读取的文本文件,定义有限元模型。几乎所有版本可以兼容。.odb结果数据库:存储位移、应力、应变等计算结果.sta状态文件:记录求解过程中的收敛情况、迭代步数.msg消息文件:输出详细的报错与警告信息,用于调试.dat打印输出:保存用户请求的输出数据,如反力、模态频率.inp日志文件:求解器的计算输出日志

1.2 inp 文件的地位与作用

.inp 文件是整个分析流程的核心枢纽。无论是通过 Abaqus/CAE 建模,还是使用 HyperMesh、ANSA 等第三方前处理,最终都需要生成 .inp 文件才能提交给求解器计算。它采用关键字格式,从有限元层面(节点、单元、材料、载荷、边界)完整描述模型,不包含任何 CAD 几何信息。

二、INP 文件基础概述

2.1 什么是 INP 文件

  • 文本文件:可以使用任何文本编辑器(VS Code、Vim、记事本)打开与编辑。

  • 有限元描述:仅包含节点坐标、单元连接关系、材料参数、载荷与边界条件,无法恢复原始 CAD 几何。

  • 求解器直接执行:Abaqus/Standard 和 Abaqus/Explicit 均以 .inp 作为输入。

2.2 INP 文件的生成途径

  • Abaqus/CAE 导出:在 Job 模块中点击 Write Input,生成当前模型的 .inp 文件。

  • 第三方前处理导出:HyperMesh、ANSA、Patran、FEMAP 等均支持 Abaqus 格式输出。

  • 手动编写:对于简单模型(如悬臂梁),可直接用文本编辑器编写,有利于学习和调试。

2.3 INP 文件的基本结构

一个典型的 .inp 文件按以下顺序组织:

*HEADING** 模型描述*PART, NAME=Part-1*NODE*ELEMENT*NSET*ELSET*END PART*ASSEMBLY, NAME=Assembly*INSTANCE, NAME=Part-1-1, PART=Part-1*END INSTANCE*END ASSEMBLY*MATERIAL, NAME=Steel*ELASTIC*STEP, NAME=Step-1*STATIC*BOUNDARY*CLOAD*OUTPUT*END STEP

三、INP 关键字格式详细说明

3.1 关键字通用语法规则

  • 关键字行:以 * 开头,后跟关键字名称,参数以逗号分隔,例如:

*ELASTIC, TYPE=ISOTROPIC
  • 数据行:关键字之后跟随的数据,通常每个数据项用逗号或空格分隔,一行一个数据条目。

  • 注释行:以 **(两个星号)开头,求解器忽略该行。

** 模型描述(这是注释)
  • 换行与续行:若一行数据过长需要换行,必须在上一行的末尾添加逗号,表示下一行继续。

*NODE1, 0.0, 0.0, 0.0,2, 1.0, 0.0, 0.0
  • 大小写不敏感:*Node 与 *NODE 等效,但推荐使用大写以提高可读性。

  • 不允许空行:空行可能导致求解器误认为输入结束,应尽量避免。

3.2 模型定义关键字

3.2.1 *NODE — 节点坐标

*NODEnid, xy, z

nid:节点编号(整数,不要求连续)

x,y,z:全局直角坐标

示例:

*NODE1, 0, 0, 02, 10, 0, 010, 0, 5, 0

使用 *NGEN关键字可快速生成线性分布的节点(仅适用于简单模型)。

3.2.2 *ELEMENT — 单元定义

*ELEMENT, TYPE=单元类型eid, n1, n2, n3, ...

常用单元类型:

类型

含义

C3D8R

八节点六面体,减缩积分

S4R

四节点壳单元

B31

两节点梁单元

示例(C3D8R 六面体单元,需 8 个节点):

*ELEMENT, TYPE=C3D8R1011,2,3,4,5,6,7,8

3.2.3 *NSET / *ELSET — 集合定义

将节点或单元归类,便于后续设置边界、载荷或输出。

*NSETNSET=名称, GENERATE起始, 结束, 步长*ELSET, ELSET=名称eid1, eid2, eid3, ...

示例:

*NSETNSET=FIXED, GENERATE11001*ELSET, ELSET=SURF_LOAD12151822

3.3 材料与截面属性关键字

3.3.1 *MATERIAL — 定义材料

*MATERIAL, NAME=材料名称**后续跟随材料行为关键字(如弹性、塑性、密度等)。

3.3.2 *ELASTIC, *DENSITY, *PLASTIC

*ELASTIC弹性模量, 泊松比*DENSITY密度*PLASTIC屈服应力, 塑性应变

示例(钢材):

*MATERIAL, NAME=STEEL*ELASTIC210000, 0.3*DENSITY7.85e-9*PLASTIC400, 0.0500, 0.2

3.3.3 *SOLID SECTION, *SHELL SECTION — 截面指派

将材料属性赋予单元集。

  • 实体单元:

*SOLID SECTION, ELSET=名称, MATERIAL=材料名称
  • 壳单元(需指定厚度):

*SHELL SECTION, ELSET=名称, MATERIAL=材料名称厚度

3.4 分析步与过程控制关键字

3.4.1 *STEP / *END STEP

每个分析步以 *STEP 开始,以 *END STEP 结束。可指定步名称和参数。

*STEP, NAME=LoadStep, NLGEOM=YES...*END STEP

3.4.2 *STATIC, *DYNAMIC, *FREQUENCY — 分析类型

  • 静态分析:*STATIC

*STATIC初始增量步, 总时间, 最小增量步, 最大增量步
  • 隐式动态:*DYNAMIC

  • 模态分析:*FREQUENCY,需指定提取的模态数量。

3.4.3 非线性开关 NLGEOM

在 *STEP 行添加 NLGEOM=YES 开启几何非线性(大变形、大转动)。默认为 NO

3.5 载荷与边界条件关键字

3.5.1 *BOUNDARY — 固定/位移边界

*BOUNDARY节点集或节点编号, 自由度起点, 自由度终点, 位移值

自由度编号:1=x, 2=y, 3=z, 4=绕x转动, 5=绕y, 6=绕z。

示例(固定节点集 FIXED 的所有平动自由度):

*BOUNDARYFIXED, 1, 3, 0.0

3.5.2 *CLOAD — 集中力/力矩

*CLOAD节点编号, 自由度, 力大小

示例(节点 100,y 负方向加载 1000N):

*CLOAD1002-1000.0

3.5.3 *DLOAD — 分布载荷(压力、体力等)

*DLOAD单元集或单元面, 载荷类型, 大小

示例(单元集 BOTTOM 上施加均匀压力 10 MPa):

*DLOADBOTTOMP, -10.0

3.6 输出请求关键字

3.6.1 *OUTPUT, FIELD — 场输出

保存到 .odb,用于后处理云图、变形等。

*OUTPUT, FIELD*NODE OUTPUTU, RF*ELEMENT OUTPUTS, E

3.6.2 *OUTPUT, HISTORY — 历史输出

保存特定点或能量随时间的变化,通常用于绘制曲线。

*OUTPUT, HISTORY*NODE OUTPUT, NSET=LOAD_POINTU, RF

3.7 装配与实例关键字

  • 对于包含多个部件的模型,需使用部件与装配体结构。

  • *PART, NAME=名称 … *END PART:定义独立部件

  • *ASSEMBLY, NAME=Assembly

*INSTANCE, NAME=实例名, PART=部件名 … *END INSTANCE:将部件实例化

可在装配级别定义集合(*NSET,*ELSET

四、求解器直接调用求解的方法

4.1 调用前的准备工作

  • 确保 .inp 文件语法正确(建议先用 Abaqus/CAE 或命令行 abaqus datcheck 进行检查)

  • 配置好 Abaqus 环境变量(通常安装时已设置),在终端(CMD、PowerShell 或 Linux shell)中可直接输入 abaqus 命令

  • 将 .inp 文件放置在工作目录下,或使用完整路径

4.2 命令行直接调用

4.2.1 基本语法

abaqus job=<作业名> input=<输入文件名>
  • <作业名>:输出文件(.msg.sta.odb 等)的前缀

  • <输入文件名>:可以包含 .inp 后缀,也可省略(默认为 job 名称)

简写形式(若 .inp 文件名与作业名相同):

abaqus job=beam

4.2.2 常用参数说明

interactive前台运行,实时显示求解日志cpus=N使用 N 个 CPU 核心并行计算double启用双精度求解memory=“X GB”指定最大内存使用量user=*.for/*.obj指定用户子程序文件oldjob=旧作业名重启动分析时指定旧作业parallel=domain开启域级并行

参数

作用

interactive

前台运行,实时显示求解日志

cpus=N

使用 N 个 CPU 核心并行计算

double

启用双精度求解

memory=“X GB”

指定最大内存使用量

user=*.for/*.obj

指定用户子程序文件

oldjob=旧作业名

重启动分析时指定旧作业

parallel=domain

开启域级并行(显式分析常用)

4.2.3 提交示例

标准提交(后台运行):

abaqus job=bracket input=bracket_model.inp

前台运行 + 4 核 + 双精度:

abaqus job=bracket input=bracket_model.inp cpus=4 double interactive

4.3 批处理调用

4.3.1 单模型多参数批量计算

例如,对同一模型改变材料弹性模量,可生成多个 .inp 或使用参数化方式(但纯 .inp 不支持变量,需借助外部脚本)。这里演示对多个文件顺序计算。

4.3.2 多模型顺序计算脚本示例

Windows 批处理 (.bat):

@echo offcall abaqus job=model1 input=model1.inpcall abaqus job=model2 input=model2.inpcall abaqus job=model3 input=model3.inpecho All jobs completed.

4.4 通过 CAE 调用

在 Abaqus/CAE 中:

  • Job Module → Create Job → 选择 Source 为 Input File → 浏览选择 .inp → Submit

  • 优点:可监控分析进度、查看结果更方便;缺点:需要 CAE 许可证且自动化程度低。

4.5 求解过程中的监控与中断

4.5.1 实时查看 .sta / .msg / .dat 文件

  • .sta:显示当前分析步、增量步、收敛情况。推荐在提交时使用 interactive 或另外打开终端用 tail 命令查看。

  • .msg:包含详细的收敛信息与警告,出现不收敛时可优先检查。

  • .dat:输出用户指定的打印信息(如反力、模态频率)。

4.5.2 使用 abaqus suspend / resume 或终止

暂停:abaqus suspend job=<作业名>(仅 Standard 支持)

恢复:abaqus resume job=<作业名>

终止:直接关闭终端或使用任务管理器结束 standard.exe / explicit.exe 进程(不优雅,易产生不完整结果)。建议在 .inp 中设置 *TERMINATION 或使用 abaqus terminate job=<作业名>

五、工程应用示例

5.1 简单悬臂梁 .inp 文件完整示例

问题描述:长 100 mm、截面 10×10 mm 的钢悬臂梁,一端固定,另一端施加 y 负向集中力 100 N。采用线弹性材料,平面应力单元(CPS4R,此处改用 CPS4R 示意),单步静态分析。

*HEADINGCantilever beam analysis with B21 element** NODES (11 nodes along length)*NODE1, 0., 0.2, 10., 0.3, 20., 0.4, 30., 0.5, 40., 0.6, 50., 0.7, 60., 0.8, 70., 0.9, 80., 0.10, 90., 0.11, 100., 0.** ELEMENT (B21 beam element)*ELEMENT, TYPE=B21, ELSET=BEAM1, 1, 22, 2, 33, 3, 44, 4, 55, 5, 66, 6, 77, 7, 88, 8, 99, 9, 1010, 10, 11** BEAM SECTION (rectangular 10x10 mm)*BEAM SECTION, ELSET=BEAM, MATERIAL=STEEL, SECTION=RECT10., 10.0.,0.,-1.** MATERIAL*MATERIAL, NAME=STEEL*ELASTIC210000., 0.3** STEP 1: Apply load*STEP, NAME=LoadStep, NLGEOM=NO*STATIC0.01, 1.0, 1e-5, 0.1** BOUNDARY: fix left end (node 1)*BOUNDARY1, 1, 6, 0.0** LOAD: vertical downward force at right end (node 11)*CLOAD11, 2, -100.0** OUTPUT REQUESTS*OUTPUT, FIELD*NODE OUTPUTU, RF*ELEMENT OUTPUTS, E*END STEP

5.2 命令行提交该示例的计算步骤

将上述代码保存为 cantilever.inp。打开终端,进入该文件所在目录。执行:

abaqus job=cantilever input=cantilever.inp interactive

输出文件:cantilever.odb,cantilever.sta,cantilever.msg,cantilever.dat 等。

5.3 结果提取与验证

在 Abaqus/CAE 中打开 cantilever.odb 查看位移和应力云图。

六、常见注意事项与错误排查

6.1 关键字拼写错误与参数遗漏

错误示例:*ELASTC(少写 I) → 求解器报错 Unknown keyword

解决方法:对照关键字参考手册,注意拼写。

6.2 数据行与关键字行顺序错误

例如:将 *NODE 数据行写在 *NODE 关键字之前 → 求解器无法识别。

原则:关键字行必须在相关数据行之前。

6.3 空行导致解析提前终止

*某些老版本 Abaqus 遇到空行会认为输入结束,导致模型不完整。建议文件中不要出现空行。

6.4 单位制不一致(Abaqus 无固定单位,需自洽)

Abaqus 不规定单位,用户需自行保证单位一致。常用单位系统(选择一列进行单位全局一致):

  • 错误示例:长度用 mm,力用 N,弹性模量却用 Pa(应为 MPa)。

6.5 求解器调用时找不到文件或权限问题

  • 错误信息:The file 'xxx.inp' could not be opened.

  • 原因:文件名拼写错误、文件不在当前目录、权限不足(如系统盘只读)。

  • 解决:使用绝对路径或复制文件到工作目录。

6.6 常见报错简例

报错信息

可能原因

1 error(s), 0 warning(s)

语法错误,查看 .msg 或 .dat

Degree of freedom 4 is not active

对不存在转动自由度的单元施加了转动边界

Too many attempts made for this increment

收敛困难,需调整增量步或检查模型稳定性

七、总结

7.1 .inp 关键字格式的规范性与灵活性

.inp 文件采用严谨但灵活的关键字体系。用户不仅可以通过 CAE 生成,更能手动编辑以实现 CAE 无法直接支持的复杂功能(如多点数约束、自定义输出、非线性不稳定性分析等)。掌握关键字格式是进阶 Abaqus 应用的必备技能。

7.2 直接调用求解器的优势

  • 无需 CAE:可在没有图形界面的服务器或集群上运行。

  • 自动化:通过脚本批量提交多个计算任务,大大提高参数研究或优化设计的效率。

  • 轻量:.inp 文件通常比 .cae 小得多,便于存储和版本控制。

7.3 掌握 .inp 与命令行对提高分析效率的意义

从“按钮式”操作转向“文本+命令行”工作流,是有限元工程师实现高效、可重复、自动化分析的关键一步。建议读者在练习中多尝试手动编写简单 .inp,并经常使用命令行提交,逐步积累经验。

📞 联系我们如果您在三维建模、网格划分、仿真分析或工业软件开发方面有任何需求,或者希望探索AI+仿真的无限可能,欢迎联系我洽谈合作。

      QQ     :773611784

      邮箱    :773611784@qq.com

微信公众号:807仿真工坊(可在后台留言)