跳转至

错误消息一览

本页按类别整理 FrontISTR 输出的典型错误消息,并以参考表形式给出可能原因和处理方向。本页并不涵盖所有内部消息,主要针对使用 hecmw_part1fistr1 时较常遇到的消息。

出现消息时,首先确认是否有代码以及其前缀,然后根据相应类别的表格判断应检查输入文件、网格、单元、求解器、接触、收敛还是内存。

消息的阅读方法

FrontISTR 的消息包括来自 HEC-MW 库的带代码消息,以及由 fistr1 本体直接输出的不带代码消息。对于带代码消息,可根据前缀判断输出模块及严重程度。

格式 示例 阅读方法
HECMW-XXX-EYYYY HECMW-IO-E1014 来自 HEC-MW 库的错误。XXX 表示子模块,E 表示 Error,YYYY 表示消息编号。
HECMW-XXX-WYYYY HECMW-PART-W0401 来自 HEC-MW 库的警告。W 表示 Warning。
无代码 Number of substeps reached max number 主要由 fistr1 本体通过 STOPcall hecmw_abortwrite(*,*) 等直接输出。

消息末尾显示的数值或字符串有时是运行时信息,例如文件名、材料编号、单元编号、子步编号或内部标志。即使是同一种典型消息,末尾的值也会随分析案例而变化。

输入解析错误

输入解析错误发生在读取控制文件、网格数据、材料定义、重启动设置等阶段。遇到此类错误时,应确认错误发生前正在读取的文件名、关键字名、材料名和组名。

消息或代码 主要原因 处理方向
Cannot open FSTR control file 无法打开控制文件或由 !INCLUDE 指定的输入文件。 检查执行目录、文件名、相对路径和访问权限。
material property not defined! 分析所引用的材料未用 !MATERIAL 定义。 使 !SECTION 引用的材料名与控制文件或网格数据中的 !MATERIAL 名一致。
Error in material property definition! 材料 ID、材料定义数量或引用关系不一致。 检查材料编号、材料定义数量以及来自 !SECTION 的引用。
ERROR: Material type not supported 材料关键字指定了不支持的 TYPE 检查 !ELASTIC!HYPERELASTIC!PLASTIC!VISCOELASTIC 对应的 TYPE
We cannot deal with incompressible material currently 指定了 Poisson 比为 0.5 的完全不可压缩材料。 将 Poisson 比改为小于 0.5,并按需要重新检查单元公式。
Mohr-Coulomb and Drucker-Prager do not support temperature dependency 为 Mohr-Coulomb 或 Drucker-Prager 指定了温度相关表。 改用不含温度相关性的定义,或选择支持温度相关性的材料模型。
Multilinear hardening: Error in plastic strain definition 多线性硬化的塑性应变未按单调方式定义。 将第一个塑性应变设为 0,并修改表格使塑性应变递增。
HECMW-IO-E1012 Element doesn't have section 单元没有对应的截面信息。 检查 !SECTION 的单元组指定以及网格中的单元组。
HECMW-IO-E1013 Cannot set section 无法将截面分配给单元。 检查截面类型、材料名和单元组名是否一致。
HECMW-IO-E1014 No nodes defined 未定义节点。 检查网格数据中是否存在节点块。
HECMW-IO-E1015 No elements defined 未定义单元。 检查网格数据中是否存在单元块。
HECMW-UTIL-E0040 !RESTART: Invalid token in control file !RESTART 语法无效。 检查 !RESTART 行的分隔符、参数名和值。
HECMW-UTIL-E0041 !RESTART: Missing NAME !RESTART 中没有 NAME 指定重启动数据名。
HECMW-UTIL-E0042 !RESTART: Missing IO !RESTART 中没有 IO 添加读取/写出指定。

网格与单元错误

网格与单元错误会在单元类型与功能组合、参考节点、局部坐标系或接触面的单元类型不合适时发生。除输入语法外,还应检查单元形状质量和节点顺序。

消息 主要原因 处理方向
##Error: This element type is not supported in contact analysis !!! 接触面指定了接触分析不支持的单元类型。 重新检查接触面所用单元类型和表面定义,并确认是否在接触面使用了高阶单元或特殊单元。
Bad reference for beam element! 梁单元的参考节点或参考方向无效。 检查梁单元的参考节点、局部坐标系和节点重合情况。
Fail to setup local coordinate 无法构造单元的局部坐标系。 检查单元形状是否退化、节点顺序、重复节点以及参考坐标系。

局部坐标系设置失败不仅取决于输入值,也取决于网格质量。尤其要检查是否存在极小单元、面积或体积接近 0 的单元,以及节点顺序反转的单元。

求解器相关错误

求解器相关错误可能由线性求解器设置无效、直接法分解失败、矩阵奇异、未链接外部库等原因引起。应检查分析停止前的日志中是否输出了迭代法、直接法、接触自由度、MPC 等相关信息。

消息 主要原因 处理方向
ERROR ordering option for direct solver out of range 直接法的排序设置超出范围。 检查 !SOLVER 中的直接法排序设置。
ERROR in symb. fact. flag: Should be 1 or 0 符号分解标志不是 0 或 1。 检查直接法内部标志的指定值。通常不通过用户输入直接修改该设置。
ERROR in numer. fact. flag: Should be 1 or 0 数值分解标志不是 0 或 1。 检查直接法内部标志的指定值。
ERROR in nufct0. ir = 直接法的数值分解失败。 检查约束不足、刚体模态、材料常数异常、接触条件和 MPC 条件。
error in nusol0. irr = 直接法的回代失败。 与数值分解失败时相同,检查线性系统是否奇异或不一致。
METIS not available 指定了使用 METIS 的排序,但构建时未启用 METIS 支持。 改用不使用 METIS 的设置,或启用 METIS 支持后重新构建。依赖库参见必需与可选依赖库

直接法分解失败不仅可能来自求解器设置,也可能由模型刚体运动、约束不足、重复约束、极端材料常数或接触条件不一致引起。将约束条件和载荷条件恢复为简单案例,并检查最小配置下线性系统能否求解,有助于定位原因。

接触分析错误

接触分析错误可能由接触对与表面组对应关系不一致、接触搜索时出现几何奇异、表面单元类型不匹配或接触搜索内存不足引起。遇到接触错误时,应检查从属侧和主控侧的组名、接触面单元类型、初始穿透以及接触面法向。

消息 主要原因 处理方向
Inconsistence in contact and surface definition !CONTACT!EMBED 引用的表面组或接触对不一致。 检查接触对名称、表面组名称以及节点组和面组是否存在。
error in contact state 接触状态数据没有引用有效的接触面。 检查接触面定义、初始接触状态以及接触对被激活的步骤。
Math error in contact searching 接触点投影计算出现奇异状态。 检查接触面形状、节点配置、初始穿透和极端变形。
Error in calculate DispIncreMatrix 无法计算接触面上的位移增量矩阵。 检查接触面单元形状是否退化以及节点顺序是否正确。
Error: cal_node_normal: invalid isin / Error: cal_node_normal: invalid isin_n 在节点法向计算中,节点不位于预期的接触面位置。 检查表面定义、接触面方向以及从属/主控指定。
type of surface element not defined 无法确定表面单元类型。 检查指定为接触面的单元类型和面编号。
Allocation error: bktdb%buckets 接触搜索所用桶数组的内存分配失败。 重新检查接触面数量、网格密度、区域划分数和可用内存。

若接触相关错误在读取输入后立即出现,接触对或表面组名称不一致是主要候选原因。若在非线性迭代过程中出现,则可能是变形导致接触面严重畸变、初始穿透过大,或时间增量过大。

关于接触类型和接触算法的选择,参见接触与嵌入

收敛与 cutback 错误

收敛与 cutback 错误发生在非线性静力分析中无法推进子步时。常见原因包括接触开始或分离、屈服快速发展、大变形、约束条件不一致以及载荷增量设置过大。

消息 主要原因 处理方向
Number of successive cutback reached max number 因收敛失败反复执行 cutback,连续失败次数达到上限。 减小初始时间增量。重新检查 AUTOINC_PARAM 中的 cutback 缩减率和连续失败上限,并确认接触、材料和边界条件是否合理。
Number of substeps reached max number 在步骤结束前已达到子步数上限。 增加 SUBSTEPS。减小载荷或时间增量。在非线性发生突变的时刻增加输出时刻或划分步骤。

发生收敛失败时,仅增加求解器最大迭代次数有时并不能消除根本原因。将载荷分阶段施加,并使用简化接触条件或材料非线性的案例确认可重复性,有助于定位原因。

边界条件错误

边界条件错误发生在控制文件中的指定不符合功能约束时。对于转动边界条件,若像位移约束一样使用总量指定会产生错误。

消息 主要原因 处理方向
Error: rotational boundary cannot be specified with total value 对转动约束指定了总量(TOTAL=YES)。 转动约束应使用增量指定。修改边界条件定义,去掉 TOTAL=YES
fstr control file error : !BOUNDARY : rotational boundary cannot be specified with total value 在读取控制文件阶段检测到同一约束违规。 检查 !BOUNDARY 中的转动约束行和 TOTAL 指定。

转动约束和转动载荷还取决于单元类型和自由度构成。使用梁、壳等具有转动自由度的单元时,应同时检查边界条件的自由度编号和目标节点组。

区域划分(hecmw_part1)错误

hecmw_part1 的错误以 HECMW-PART 开头的代码输出。对于区域划分,应依次检查输入文件是否存在、!PARTITION 的必需参数、划分方法与区域数的约束,以及用户指定 part 文件的一致性。

代码范围或典型代码 主要原因 处理方向
HECMW-PART-E0001~E0006 与文件操作、文件名、EOF、参数有关的基本错误。 检查指定文件是否存在、文件名长度、输入文件结尾以及命令参数。
HECMW-PART-E0101 控制文件中存在无效 token。 检查 !PARTITION 行和划分方向指定行的语法。
HECMW-PART-E0111 'TYPE' must not be omitted 未指定 TYPE 指定划分类型,例如 !PARTITION, TYPE=NODE-BASED
HECMW-PART-E0121 'METHOD' must not be omitted 未指定 METHOD 指定 METHOD=RCBMETHOD=PMETISMETHOD=KMETIS 等。
HECMW-PART-E0131 'DOMAIN' must not be omitted 未指定区域数。 DOMAIN 指定为与 MPI 进程数对应的正整数。
HECMW-PART-E0134 'METHOD' is 'RCB', but 'DOMAIN' is not n-th power of 2 RCB 法中的区域数不是 \(2^n\) 使用 RCB 时将区域数设为 \(2^n\)。若需要任意区域数,可考虑 METIS 系方法。
HECMW-PART-E0201~E0206 划分类型、划分方法、单元类型、划分方向、区域数或重叠深度无效。 检查 TYPEMETHODDOMAINDEPTH 以及划分方向指定。
HECMW-PART-E0301~E0331 划分后数据中的区域编号、节点数、单元数或相邻区域数超出范围。 检查输入网格、用户指定 part 文件与划分数之间的一致性。
HECMW-PART-E0601~E0606 用户指定 part 文件中存在空区域、格式错误,或节点数、单元数、区域数不一致。 检查 part 文件格式及其与网格的一致性。
HECMW-PART-W0401 EQUATION_BLOCK not found 警告:未找到 EQUATION_BLOCK 若使用 MPC 的分析需要该块,请检查相应块;若不需要,则可继续执行。
HECMW-PART-W0502 Log file for partitioner already initialized 日志初始化被重复调用。 通常按警告处理,并检查其后是否立即出现致命错误。

区域划分的概念及划分方法的选择参见区域划分。并行执行的具体步骤参见执行指南。

内存分配错误

当无法分配数组或工作区时会输出内存分配错误。大型网格、接触面很多的模型、直接法以及输出变量较多的分析都会增加内存使用量。

消息 主要原因 处理方向
stop due to allocation error <FSTR_SOLID, TEMPERATURE> 温度数组分配失败。 检查节点数、温度自由度、热应力设置和可用内存。
stop due to allocation error <FSTR_SOLID, GL> 结构分析用全局数组分配失败。 重新检查模型规模、区域划分数、分析类型和输出项目。
Allocation error: bktdb%buckets 无法分配接触搜索用桶数组。 重新检查接触面数量、网格密度、接触对数量和区域划分。
ALLOCATION ERROR, ... 无法分配直接法或排序处理所需的工作数组。 考虑从直接法切换到迭代法、调整区域划分数或增加分配内存。

若怀疑内存不足,首先确认能否将直接法改为迭代法。若必须使用直接法,可考虑减小模型规模、减少输出变量、调整区域划分数或增加作业内存分配。

重启动错误

重启动错误可能由 !RESTART 语法错误、缺少必需参数,或读取文件与当前分析条件不一致引起。使用重启动时,写出重启动数据的分析与读取该数据的分析之间,网格、区域划分数、分析类型和步骤信息必须保持一致。

代码 主要原因 处理方向
HECMW-UTIL-E0040 !RESTART: Invalid token in control file !RESTART 行语法无效。 检查参数名、分隔符和值的格式。
HECMW-UTIL-E0041 !RESTART: Missing NAME 未指定 NAME 指定重启动数据名。
HECMW-UTIL-E0042 !RESTART: Missing IO 未指定 IO 添加读取/写出指定。

若读取重启动数据失败,不仅要检查重启动文件名,还要检查写出和读取时的网格、MPI 区域数、步骤设置以及重启动版本。重启动功能概览参见输出与重启动

相关内容