跳转至

输出与重启

分析结果本身存在于内存中,因此若要进行后处理、可视化、恢复或继续分析,需要将其输出为适当的文件。由于不同用途所需的文件格式、输出项目和输出频率各不相同,FrontISTR 会区分使用多个输出系统。

FrontISTR 的输出由三类组成:保存分析值的结果文件(!WRITE,RESULT)、用于可视化的可视化文件(!WRITE,VISUAL),以及保存分析状态的重启文件(!RESTART)。结果文件和可视化文件中包含的物理量分别通过 !OUTPUT_RES!OUTPUT_VIS 选择。

功能概览

将输出设置分为以下三个维度考虑会更容易整理。

维度 主要输入 作用
输出目标 !WRITE,RESULT!WRITE,VISUAL!RESTART 决定以何种用途的文件保存结果。
输出变量 !OUTPUT_RES!OUTPUT_VIS 决定结果文件或可视化文件中包含哪些物理量。
输出频率 FREQUENCY 决定每隔多少个step写入文件。

!WRITE,RESULT 启用结果文件,并通过 !OUTPUT_RES 指定输出变量。!WRITE,VISUAL 启用可视化文件,并通过 !OUTPUT_VIS 指定传递给可视化的变量。两者都可以通过 FREQUENCY 控制输出间隔。!WRITE 是单一卡片,RESULT / VISUAL / FEMAP 可作为选择输出目标的参数共存。

!OUTPUT_RES!OUTPUT_VIS 的数据行中,列出输出变量名以及 ON / OFF。指定 GROUP 后,可将输出对象限制为指定组。具体输入格式和可指定的数据行请参见关键字参考。

!RESTART 与结果文件、可视化文件不同,用于保存分析状态本身。重启文件用于在中断分析后,从相同状态继续分析。

如何选择输出

选择输出时,首先从需要确认的目的出发。如果要将数值用于后处理或其他分析,应选择结果文件;如果要用可视化工具确认形状或分布,应选择可视化文件。如果需要从分析中途继续,则应在普通结果输出之外启用重启文件。

目的 选择的输出 主要指定
保存分析值,用于后处理、比较或其他分析 结果文件 !WRITE,RESULT!OUTPUT_RES
使用 ParaView 等确认分布或变形形状 可视化文件 !WRITE,VISUAL!OUTPUT_VIS!VISUAL
从中途继续长时间分析 重启文件 !RESTART
减少输出容量 仅输出所需变量 !OUTPUT_RES / !OUTPUT_VISON / OFFFREQUENCY

在大规模分析中,如果保持默认输出并保存所有step,结果文件和可视化文件的容量可能会很大。应只将所需物理量设为 ON,将不需要确认的量设为 OFF。如果不需要精细跟踪时程,可增大 FREQUENCY,降低输出频率。

可以按照“需要确认的物理量”“保存目标”“频率”的顺序决定输出变量。例如,如果要在 ParaView 中确认应力分布,则启用可视化文件,并在 !OUTPUT_VIS 中选择 NSTRESSNMISES。如果要将接触力作为数值进行后处理,则启用结果文件,并在 !OUTPUT_RES 中选择 CONTACT_NFORCE 等。

可输出的物理量

输出变量可分为结构分析、动态分析、热分析、接触分析、单元特有结果以及用于识别的元信息。下表整理了主要变量名、类型及其适用的分析类型。完整的变量名列表和数据行格式请参见 !OUTPUT_RES!OUTPUT_VIS

分类 变量名 类型 主要分析类型 内容
结构分析基本量 DISPROTREACTION 向量 静力分析、动态分析 位移、转动、节点反力。ROT 对具有转动自由度的单元有效。
应力 NSTRESSESTRESSISTRESS 对称张量 结构分析 节点平均应力、单元应力、积分点应力。
Mises 应力、主应力 NMISESEMISESPRINC_NSTRESSPRINC_ESTRESSPRINCV_NSTRESSPRINCV_ESTRESS 标量、向量 结构分析 Mises 应力、主应力值、主应力方向。
应变 NSTRAINESTRAINISTRAIN 对称张量 结构分析 节点应变、单元应变、积分点应变。
塑性、热应变 PL_ISTRAINPL_ESTRAINTH_NSTRAINTH_ESTRAINTH_ISTRAIN 标量、对称张量 非线性结构分析、热应力分析 等效塑性应变、热应变。
主应变 PRINC_NSTRAINPRINC_ESTRAINPRINCV_NSTRAINPRINCV_ESTRAIN 标量、向量 结构分析 主应变值、主应变方向。
动态分析 VELACC 向量 动态分析 节点速度、节点加速度。
热分析 TEMP 标量 热传导分析 节点温度。在热分析的结果文件和可视化文件中作为温度场输出。
接触 CONTACT_NFORCECONTACT_FRICTIONCONTACT_RELVELCONTACT_STATECONTACT_NTRACTIONCONTACT_FTRACTION 向量、标量 接触分析 接触法向力、摩擦力、相对滑移速度、接触状态、单位面积上的接触力。
梁单元 BEAM_NQM 12 分量值 含梁单元的结构分析 梁单元的截面内力。
识别、状态 NODE_IDELEM_IDSECTION_IDMATERIAL_IDELEMACTYIELD_RATIO 标量 结构分析、可视化 节点、单元、截面、材料的识别信息,单元激活状态,屈服比。ELEMACT 对有效单元输出 1,对无效(失活)单元输出 0。
壳辅助信息 SHELL_LAYERSHELL_SURFACE 标量 含壳单元的结构分析 分层壳各层输出以及用于识别壳表面的辅助信息。

默认情况下,DISPROTNSTRESSNMISESON。但是,是否实际输出有意义的值取决于分析类型、单元类型、材料模型和接触设置。例如,VELACC 用于动态分析,CONTACT_* 用于接触分析中生成接触信息的情况。

壳分层输出

壳单元沿厚度方向具有多个积分点或层,因此同一单元内不同层和表面的应力、应变值也可能不同。仅使用普通节点平均值或单元值时,不容易区分属于哪一层或哪一面。

SHELL_LAYER 设为 ON 后,可针对分层壳的各层区分 + 侧和 - 侧输出。输出的应力、应变分量会附带表示层号和面侧的标识,因此可用于厚度方向应力分布或各层损伤评估。

SHELL_SURFACE 是用于识别壳上表面/下表面等表面的辅助信息。可视化壳分层结果时,应启用 SHELL_LAYER 和所需的应力、应变变量,并在可视化工具中选择对应目标层或表面的结果分量。

壳分层输出会增加输出分量数量,因此在层数较多的模型中会增大文件容量。建议只输出所需的应力、应变变量。

输出目标

结果文件与可视化文件的用途和保存格式不同。在同一分析中,可以同时输出两者,也可以只输出其中一种。

结果文件

结果文件通过 !WRITE,RESULT 启用。它将分析结果保存为 FrontISTR / HEC-MW 的结果数据,用于数值后处理或其他分析中的读取。输出变量通过 !OUTPUT_RES 选择。

!WRITE,RESULT 也是作为 !WRITE 卡片的 RESULT 参数实现的,与可视化和 FEMAP 输出并列,属于输出目标选项。

结果文件中,结构分析可保存位移、应力、应变、反力、接触信息等,热分析可保存温度场。各step的输出间隔通过 FREQUENCY 指定。具体文件名、位置和运行后的确认方法请参见运行指南。

结果文件(扩展名 .res)为具有以下结构的文本数据。开头是格式版本和注释,随后是全局变量,最后依次列出各节点、单元的输出变量。

*fstrresult 2.0
*comment
<注释行>
*global
<全局变量数量>
<全局变量自由度>
<全局变量名称>
<全局变量值>
...
*data
<节点数> <单元数>
<节点数据数量> <单元数据数量>
<节点数据自由度> ...
<节点数据名称>
...
<节点数据值>
...
<单元数据自由度> ...
<单元数据名称>
...
<单元数据值>
...

日志文件

日志文件(扩展名 .log)是分析后始终输出的摘要文件。除各节点、单元的物理量外,还会输出位移、应变、应力分量的最大值/最小值。在模态分析中,还会输出特征值和特征向量的值。可通过 !WRITELOG 参数控制输出内容。文件名和位置请参见运行指南。

可视化文件

可视化文件通过 !WRITE,VISUAL 启用。网格与结果数据会转换为适合可视化工具的格式后输出。输出变量通过 !OUTPUT_VIS 选择,格式和可视化条件通过 !VISUAL 指定。

!WRITE,VISUAL 不是独立关键字,而是作为 !WRITE 卡片的 VISUAL 参数实现,与 !WRITE,RESULT / !WRITE,FEMAP 同级,用于切换输出目标(fistr1/src/common/fstr_ctrl_common.f90 中的 fstr_ctrl_get_WRITE)。

要启用可视化,至少需要在 !VISUAL 卡中指定可视化surface和输出格式。以下是最小数据集。

!WRITE,VISUAL
!VISUAL,method=PSR
!surface_num=1
!surface 1
!output_type=VTK

surface_num!surface 不可省略。详细格式及可用选项请参见 !VISUAL

主要可视化格式如下。

格式 用途
VTK 用于 ParaView 等的可视化。
AVS(UCD) 用于 AVS / UCD 格式的可视化与数据交换。
BMP 将可视化结果输出为图像。
NEU 用于 FEMAP neutral 格式的数据交换。

与结果文件相比,可视化文件更便于可视化工具直接处理,但根据所选格式和变量数量,容量也会增加。对于大规模模型,应只在 !OUTPUT_VIS 中启用显示所需的变量。

重启

重启功能用于保存分析中断时的内部状态,并在下次运行时从相同状态继续计算。普通结果文件是用于后处理的输出,而重启文件则用于保存求解器继续计算所需的状态。

!RESTART, FREQUENCY=n 中的 n 为正数时,会按指定的step间隔写出重启文件。当 n 为负数时,运行开始时读取已有重启文件,之后以绝对值 |n| 作为写出间隔继续写出重启文件。

结构分析的重启会保存当前step、substep、累计step、时刻、时间增量、载荷历程、位移、外力、各 Gauss 点的应力、应变、材料内部状态变量、接触状态等。动态分析除位移外,还保存速度、加速度、应变能、当前时刻、时间增量等继续时间积分所需的动态状态。热分析保存step编号、时刻和温度场,并在读取时将温度场恢复为初始状态。

静力分析重启的写出时机与继续行为

静力分析(fstr_solve_NLGEOM)的重启有两条写出路径,其继续行为不同。

  • 在substep中途写出:在substep循环中,当 step_countFREQUENCY 的倍数时写出。记录的时刻信息作为“当前step的开始时刻”保存,并附带前一个step的载荷列表。
  • 在step结束时写出:每个载荷step的substep循环结束后,无论是否为 FREQUENCY 的倍数,都始终写出。记录的时刻信息作为“step结束时刻”保存,并附带当前step的载荷列表。

读取时,FrontISTR 根据所记录的“当前时刻”与“基准时刻”是否一致来判断step是否完成(fstr_Restart.f90 中的 fstr_read_restart)。

写出时状态 继续时行为
substep中途 从同一step的下一个substep继续。继承写出时的substep位置,并执行剩余的substep循环。
step结束 从下一个step的首个substep开始。将 cstep 前进 1,并将 substep=1 重置后继续分析。

因此,即使 FREQUENCY 设置相同,根据发生写出的时机(substep中途/step结束),继续后的step编号和时刻基准也会不同,需要注意。尤其是step结束时的写出与 FREQUENCY 设置无关,每个step结束时都会执行。

动态分析重启的写出时机与继续行为

时程动态分析的重启也区分substep中途写出与step结束写出。substep中途,当累计substep数 step_countFREQUENCY 的倍数时写出;step结束时则无论 FREQUENCY 如何,都会在该step最后写出。

读取时,根据保存的step编号、substep编号和累计substep数恢复继续位置。现行格式(restart_version >= 5)使用与静力分析共通的header,并保存当前时刻、时间增量、Newton迭代统计以及自动增量状态。因此,即使动态分析使用多个 !STEP 和自动增量、cutback,也可以在继续后继承时间基准和时间增量。旧格式的动态分析重启文件也保留部分读取兼容性,但新分析应使用现行格式。

重启时 !STEP 卡的写法

重启继续时,FrontISTR 将 cnt 文件中的 !STEP 卡视为“继续后要执行的step序列”,始终从开头(tot_step=1)依次处理。所读取重启信息中的step编号用于与屏幕显示的累计step编号对齐,不影响 cnt 中 !STEP 的索引。此外,在现行格式中,cnt 中各 !STEPstarttime 会在读取重启时统一加上基准时刻,使时间线以继续时刻为基点。

因此,应按以下方针准备重启继续用的 cnt。

中断方式 cnt 中保留的 !STEP 范围
substep中途写出(step未完成) 将中断的step 保留在开头,随后继续排列尚未执行的step。
step结束写出(step已完成) 删除已完成的step,从下一步要执行的step开始排列。

无论哪种情况,原则上都应从 cnt 中删除已经完成的step。由于重启时刻会自动加到 starttime 上,因此 cnt 侧可以从 0 起点(或相对step开始时刻)书写。边界条件、载荷等引用只需在 cnt 中保留与所保留 !STEP 卡对应的部分。该方针同样适用于使用多个 !STEP 的动态分析重启。

使用重启的典型流程如下。

  1. 首次运行时指定 !RESTART, FREQUENCY=n,写出重启文件。
  2. 继续分析的运行中指定 !RESTART, FREQUENCY=-n
  3. FrontISTR 在启动时读取重启文件,此后每隔 n 个step写出新的状态。

重启文件的命名、位置以及运行时的指定方法请参见运行指南。对旧版格式的读取也保留部分兼容性,但新分析应使用现行版本格式。

相关项目

  • 串行运行 — 分析运行时文件位置与输出确认的基本方法。
  • !OUTPUT_RES!OUTPUT_VIS — 指定输出到结果文件、可视化文件中的变量。
  • !WRITE — 启用结果文件、可视化文件、日志输出并指定输出频率(RESULT / VISUAL / LOG / FEMAP 参数)。
  • !VISUAL — 指定可视化surface和输出格式(含最小数据集示例)。
  • !RESTART — 指定重启文件的读取与写出。
  • 分析类型 — 各分析类型的主要结果项目。
  • 接触与嵌入 — 接触输出的含义与接触状态的处理。
  • step控制 — 与输出step和时间点的关系。