3. LS-DYNA关键字文件结构解析与手动修改

LS-DYNA关键字文件结构解析与手动修改 学习卡片

K 文件不是“黑盒”:先看清它的块结构

LS-DYNA 的输入文件(通常称 K 文件)由一系列关键字块顺序拼接而成。每个块以 *KEYWORD 开头,后跟若干数据行,直到下一个 * 开头的行为止。理解这个“块—行—字段”的三级结构,是手动修改 K 文件的前提。

一个典型的显式分析 K 文件,其块的出现顺序通常遵循:控制卡 → 部件/单元 → 材料 → 接触 → 边界与载荷 → 输出控制 → 终止卡。下面这张图给出一个可运行的拉伸试样 K 文件的真实块骨架与字段定位方式。

K 文件块结构与字段定位(以拉伸试样为例) 每个 * 开头行为块起点;数据行按固定列宽(通常 8 或 10 字符)划分字段 *KEYWORD 文件标识,必须首行 *CONTROL_TERMINATION ENDTIM 终止时间 *CONTROL_TIMESTEP DTINIT / TSSFAC 时间步控制 *PART PID / SECID / MID 部件绑定 *SECTION_SOLID ELFORM 单元公式 *MAT_PLASTIC_KINEMATIC RO / E / PR / SIGY / ETAN *BOUNDARY_PRESCRIBED_MOTION DOF / LCID 位移加载 *DEFINE_CURVE LCID / 时间-位移点对 *DATABASE_BINARY_D3PLOT DT 输出间隔 字段列宽定位(*DEFINE_CURVE 数据行) A1 A2 A3 A4 A5 A6 A7 A8 ↑ 每列 10 字符,共 8 列;数值可右对齐或左对齐,但列位置不能错 0,0.0,0.0 1,0.5,0.5 2,1.0,1.0 ↑ 逗号分隔也可,但列宽方式更稳妥;LCID=1 的曲线点 手动修改点 ① 改 *DEFINE_CURVE 的位移值 ② 改 *CONTROL_TERMINATION 的 ENDTIM ③ 改 *DATABASE_BINARY_D3PLOT 的 DT ④ 保持 LCID 与引用一致 ⚠ 改后必须重新提交计算 验证判据 ✓ d3plot 帧数 = ENDTIM/DT ✓ 位移-时间曲线与修改一致 ✓ 应力-应变曲线趋势不变 ✓ 无 error termination → 对比修改前后曲线差异 关键原则:块顺序可调整,但引用关系(PID→MID/SECID、LCID→曲线)必须闭合;修改后重新提交是唯一可靠的验证方式。

识别关键块的实操方法

拿到一个 K 文件后,不要逐行通读。用文本编辑器的搜索功能,按 * 定位块头,快速建立“块清单”。以下是一个拉伸试样 K 文件中必须确认的块及其作用:

块名作用必须检查的字段
*CONTROL_TERMINATION控制求解终止时间ENDTIM(总时长)
*CONTROL_TIMESTEP控制时间步长DTINIT、TSSFAC
*PART定义部件并绑定材料/截面PID、SECID、MID
*SECTION_SOLID定义实体单元属性ELFORM(单元公式)
*MAT_PLASTIC_KINEMATIC弹塑性材料模型RO、E、PR、SIGY、ETAN
*BOUNDARY_PRESCRIBED_MOTION施加位移/速度边界DOF、LCID、SF
*DEFINE_CURVE定义时间-载荷曲线LCID、点对数据
*DATABASE_BINARY_D3PLOT控制结果输出频率DT

手动修改加载曲线并重新提交

假设原 K 文件中 *DEFINE_CURVE 定义了一条位移加载曲线,LCID=1,原数据为:

*DEFINE_CURVE
1,0,1.0,1.0,0.0,0.0,0,0
0.0,0.0
0.5,0.5
1.0,1.0

现在需要把加载速率提高一倍,即同样在 1.0 时间内位移达到 2.0。修改后的曲线数据行变为:

*DEFINE_CURVE
1,0,1.0,1.0,0.0,0.0,0,0
0.0,0.0
0.5,1.0
1.0,2.0

同时,如果希望输出更多帧以观察变形过程,把 *DATABASE_BINARY_D3PLOT 的 DT 从 0.1 改为 0.05:

*DATABASE_BINARY_D3PLOT
0.05

修改完成后,用 LS-DYNA 重新提交计算。验证时重点看三件事:

  • 求解日志中是否出现 error termination,若出现则说明关键字格式或引用有误。
  • d3plot 的帧数是否约为 ENDTIM/DT,本例中 1.0/0.05 = 20 帧左右。
  • 后处理中提取加载端位移-时间曲线,确认斜率是原来的两倍。
修改 K 文件时,最容易出错的地方是列宽错位和引用 ID 不匹配。例如把 LCID 从 1 改成 2,但 *DEFINE_CURVE 里没有 LCID=2 的曲线,求解器会直接报错。每次修改后,建议用文本编辑器的“查找”功能确认所有引用 ID 都存在对应定义。
如果手头没有完整的 K 文件,可以用 LS-PrePost 导出一个简单拉伸试样的 K 文件作为练习对象。导出后先用搜索功能列出所有 * 开头的行,再按上表逐块核对字段,最后尝试修改曲线并重新提交,观察结果变化。