Abaqus 材料定义,那些不会报错的错误
单位填错了不报错,塑性应变多减一项不报错,比热少乘一百万也不报错 —— 它们只是让结果悄悄错掉。这里每篇讲一个具体问题:怎么判断中招了、怎么改、 以及为什么会这样。写给用 Abaqus 做结构、热和显式动力学分析的人。
目前 15 篇,每天更新。全文公开可读,无需注册登录。
2026-09-08 更新
把材料搬到新模型有三条路,代价完全不同:复制整个 model 会连几何、分析步、载荷一起带走, 清场之后材料还在但 Section 全断;导出成 JSON 只搬材料,但读不出来的块会丢, 而丢了之后导回去不报错 —— 判据是导出时那份「没进去」清单必须是空的; 写脚本最灵活,代价是列顺序和常量全归自己负责。 文中把往返的形态归一规则、默认值省略、覆盖同名材料的暂存名模式、
建材料只要两个调用:Material 拿对象,剩下每种属性各是它身上的一个方法。 这篇给一个真正能跑的最小例子,再把四个 Abaqus 不会替你查的地方点出来: 单行表格末尾那个逗号漏了就变成两个数、ISOTROPIC 这类符号常量不能写成字符串、 各向异性弹性的温度依赖标志必须显式声明(六个常数被当成五个加一个温度,没有任何报错)、
Abaqus 不吃 xlsx 也不吃 csv,中间要转成 JSON。难的不是转,是 Excel 特有的三个坑: 另存编码不对时报的是「不是合法的 JSON」,一个字没提编码,而且只在你写了中文说明时才踩到; 数字带引号其实能过,真正过不去的是千分位逗号、带单位后缀、空单元格、公式错误值; 按屈服应力点一下排序,塑性应变递增这条就断了。
2026-09-07 更新
韧性损伤最高频的坑不是数值错,是结构缺:损伤起始和损伤演化在 Abaqus 里是两个独立对象, 只写起始不写 evolution,导入不报错、材料编辑器里也看得见,但单元一个不删。 这篇把 fractureStrain / stressTriaxiality / strainRate 三列的顺序和含义讲清楚,
Johnson-Cook 在 Abaqus 里指两样东西:塑性硬化(A、B、n、m)和失效准则(d1 到 d5), 它们是两个独立的块,可以只用一个。麻烦在于两边都要熔点和转变温度, 于是把 d1~d5 塞进 plastic 会当场报 missing key,两处温度写得不一致则不报错、结果没意义。 这篇画清边界,解释为什么 d1 是 -0.77 却没人拦(插件对这 8 列一个校验都没做,因为它…
damage 块剩下的两个模型各有一个结构性坑:剪切损伤的 ks 是标量而不是表的一列, 当成列写进去会得到一条指向表宽的报错、根因却是它; 成形极限图的两列是 minorStrain 在前 majorStrain 在后,写反了不报错但曲线整个镜像翻转。 文中给出一条一眼自查法(FLD 第 1 列必须有负值),
2026-09-06 更新
热分析要填的材料属性只有导热系数、比热、密度三样,数值查手册都查得到,出事的是换算。 这篇当场推两条:导热系数从 W/(m·K) 换成 mJ/(s·mm·K) 数值一个字不用改, 因为能量的一千和长度的一千正好抵消;比热从 J/(kg·K) 换成 mJ/(tonne·K) 要乘 1e6, 因为两个因子同向叠加 —— 钢的 460 变成 4.6e8。
给材料加温度相关性不用勾任何选项,在每行末尾多加一列温度就行 —— 反过来,多出来的那一列一律被当成温度,哪怕你想填的是别的。 这篇给出十种属性的固定列数速查表,讲清楚温度相关的塑性表为什么要按温度分组、 每组的第一行塑性应变为什么必须回到 0,以及显式写 temperatureDependency 的实际价值:
材料管理器里明明有,参数也对,结果却像它不存在 —— 问题几乎从来不在材料本身, 而在材料到单元之间那条链子。这篇按从近到远的顺序排五个断点: 导进了另一个 model(多 model 时按名字排序取第一个)、同名材料被跳过没覆盖、 某些属性块这个版本建不出来(报告里有 WARNING 但材料编辑器看不出差别)、
2026-09-06 更新
Abaqus 的等向弹性只有两个数,却是导入时唯一一处会做物理检查的地方:模量必须为正,泊松比必须落在 −1 到 0.5 之间且两端不含。 这篇用体积模量 K = E/[3(1−2ν)] 和剪切模量 G = E/[2(1+ν)] 两行代数把区间推出来, 说明 0.5 是发散点而不是「太大了」、为什么退一步填 0.4999 会导致体积自锁且不报错、以及负泊松比为什么合法。
纯静力分析里密度完全不参与,模态分析里没有密度就提取不出特征值,显式分析里密度直接决定作业算多久。 这篇按工况把分界划清楚:哪些分析不填也对、哪些会被拦下、哪些不报错但结果整体偏。 重点推导显式的稳定时间增量 Δt ∝ √ρ —— 密度小写一百倍,增量步数就多十倍,而结果自洽、没有任何警告; 并说明质量缩放为什么必须写在 Step 里而不是偷偷改材料密度。附一张八种分析类型的对照表、密度为什么允…
Abaqus 的热应变是 α(T)(T−T⁰) 减去 α(Tᴵ)(Tᴵ−T⁰),带一个扣除初始状态的项。 把 α 当常数代进去,参考温度 T⁰ 会完全抵消 —— 也就是说常数膨胀系数下 ZERO 填多少都一样, 改它去调试热应力是在改一个不参与计算的量。这篇当场把这一步推完, 再讲清楚 ZERO 真正起作用的场合(α 给成温度表,附一个 0.75% 差值的算例)、
2026-09-05 更新
Abaqus 不带单位系统,量纲一致性完全由建模的人负责。这篇把工程上最常用的两套逐项对照: SI 的 m-kg-s-N-Pa,和 CAE 里更常见的 mm 制 mm-tonne-s-N-MPa, 长度、力、应力、密度、能量、热导率、比热、热膨胀系数、温度、应变共十项换算系数一次列全。 重点解释三件反直觉的事:钢的密度在 mm 制里为什么是 7.85e-9、比热为什么要乘 1e6、热导率为什么数…
材料报告上的拉伸曲线是工程应力-工程应变,Abaqus 的 *PLASTIC 要的是真应力-真塑性应变,两者不是一回事。 这篇给出完整换算链:σ_true = σ_eng(1+ε_eng)、ε_true = ln(1+ε_eng)、ε_pl = ε_true − σ_true/E, 逐步说明为什么表的第一行塑性应变必须正好是 0、为什么减掉的那一项是弹性应变而不能省,
Abaqus 的 *PLASTIC 表有三条硬规则,违反哪一条都会被拦下:每条硬化曲线的第一行塑性应变必须是 0、 塑性应变必须沿表严格递增、所有行的列数必须一致(多出来的那一列是温度,不能只给一部分行加)。 这篇逐条给出报错原文、触发它的表长什么样、改完之后长什么样, 并说明温度相关材料为什么要按温度分组、每组各自从 0 起算,以及屈服应力为什么不允许出现 0 和负数。
这些步骤,插件替你做掉大半
单位换算、塑性表校验、温度分组、损伤参数的列序,这几件事每换一种材料就要重做一遍, 而且做错了求解器不会拦。Abaqus 材料导入插件把它们放在写进模型之前完成, 报错带行号和具体数值,一条数据有问题就跳过它、不影响其余材料。
在线材料库需要 Abaqus 2023 或更高版本;2022 及更早只能用本地 JSON 材料库。