3DEC或者UDEC在计算完成后,通常需要导出记录的数据进行后处理
记录数据的命令我们都知道是 history
,导出记录的数据还是使用history
命令。先说一下3DEC的如何导出数据,后面UDEC的导出方法和命令跟3DEC几乎一样
在3DEC中,可以使用 hist dump
来导出数据,后面还可以跟一些关键字,具体关键字可以看下面的图(图片较宽,如果看不清楚可以鼠标右键在新标签页打开查看)
假如一共计算了10000步,那么 begin
和 end
可以指定导出数据的范围,即从哪一步到哪一步的数据导出来,skip
则可以指定每次跳过多少导出。按下面的命令,如果记录的数据一共有1000个,skip 10 则意味着两个数据之间间隔为9,即将原数据每隔10个导出到名为 test_1.dat 的文件中,如下图所示(图一为导出的原数据,hist命令默认每10步记录一次,图二为 skip 10 之后导出的数据)。skip 一般在数据量太大时使用,如果记录的数据本身就不多,可以不用跳过导出。
hist dump 35 skip 10 file test_1.dat
当然,我们还可以不以计算的步数(step)作为横坐标,如果想以自己记录的另一个变量作为横坐标导出也是可以的,这里就要用到 vs
关键字
注意,如果不指定 vs
,则默认以计算的步数为横坐标,还是拿上面的为例,上面导出来的是我记录的一个FISH变量,默认是以计算步数为横坐标,现在我要将记录的求解时间作为横坐标导出,可以这样做:
hist dump 35 vs 10 skip 10 file test_2.dat
通过上面的例子也可以看到 file
关键字的作用,就是指定要导出到哪个文件中,名字自己取一个,最后加上一般文本格式的后缀(.dat 或者 .txt等),如果不指定后缀则会以 .his 为默认后缀。
知道了这些以后,每次还可以导出多个记录的变量到同一个文件中
举个例子来说,假如我们记录了一些变量,应力,位移,速度,求解时间,自定义的FISH变量:
hist id 5 szz 1,1,1
hist id 6 disp 1,1,1
hist id 7 vel 1,1,1
hist id 8 time
hist id 9 @myVariable1
hist id 10 @myVariable2
可以将记录的变量随时间变化的数据一起导出来到 test.txt 中:
hist dump 5 6 7 9 10 vs 8 skip 5 file test.txt
或者将两个FISH变量的记录作为横纵坐标导出来:
hist dump 9 vs 10 skip 1 file test.dat
下面是3DEC可以记录的一些内置变量,有些稍作翻译了。(图片较大,如果看不清楚可以鼠标右键在新标签页打开查看高清图)
UDEC导出数据的过程也是一样的,下图是UDEC导出数据的关键字,使用 hist write
,后面接的关键字可以参考3DEC的用法。
在UDEC6.0中,无法像3DEC一样一次导出多个Hist,只能一个一个导出,同时,指定的导出文件不需要使用 file
关键字,而是直接在后面指定文件名即可。使用类似下面的命令:
hist write 1 test1.dat
hist write 2 test2.dat
...
下图是UDEC可以记录的内置变量
如果有什么问题大家可以在下方留言或者在留言板留言