前言
之前的文章讲了DEFORM文本模式下的前处理以及计算部分(点击下面的链接可以查看之前的文章),那后处理又怎么办呢?
往期文章
DEFORM提供了两种方式来提取后处理结果:文本模式的前处理器和文本模式的后处理器。最粗暴直接的方式就是打开前处理器的文本模式,然后加载DB文件的最后一步,再导出KEY文件,KEY文件中的关键字包括了所有需要的数据。
对应的脚本如下:
DBREAD 100
DEFORM_DEMO.DB
KFWRIT
OUTPUT.KEY
其中:DBREAD 100表示读取DEFORM_DEMO.DB第一百步的结果;KFWRIT表示将结果保存为名为OUTPUT.KEY的KEY文件。输出的KEY文件长这样,前面的大写英文字母就是关键字,找到对应的关键字就可以找到你想要的结果。
应力的关键字是STRESS,应变的关键字是STRAIN,温度的关键字是NDTMP,密度的关键字是DENSTY,等等。
这里还涉及到从KEY文件中提取所需变量问题,毕竟一个KEY文件中这么多变量。那面对这么多的变量,最好的处理方式当然是写脚本了。以密度为例,密度的关键字是DENSTY,在KEY文件中它长这样。
前面的1,2,3...这些数字表示单元编号,后面的就是每个单元的密度值。
具体的提取脚本由Python编写:
import re
import pandas as pd
from io import StringIO
with open("200_110_15000c.key","r") as density: #打开KEY文件
density = density.read()
density = re.findall("DENSTY[\d\D]*S",density)[0] #正则匹配DENSTY部分
density = StringIO(re.sub(" +","",density)) #正则替换空格
df = pd.read_csv(density,sep=",") #读入Pandas
df.to_csv(r"E:\DEFORM_EXAMPLE\post\1.csv") #保存成CSV文件
提取完后,在EXCEL中打开:
那提取出对应的结果之后,就可方便进行后续的处理。