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可以记录的内置变量
如果有什么问题大家可以在下方留言或者在留言板留言
Comments | 17 条评论
你好,我想问一下我导出的数据,是以时间为横坐标,我想改为以计算步数为横坐标应该是什么命令呢
该评论为私密评论
@287057038 经过测试,UDEC确实只能导出单个hist,所以导出多个的命令会报错,分批导出是没问题的,如:hist write 7 test.dat;hist write 8 test1.dat…
该评论为私密评论
@506435567 在File→Print plot可以打开导出图片的设置或者快捷键Ctrl+P,在打开的窗口中点击Set up可以设置导出的格式。默认的Model窗口貌似不能导出,其他都可以
你好,请问我导出用history记录的某点位移数据时,txt文本是空的,这个是哪里出了问题?
@1509560942 请附上导出的命令
该评论为私密评论
@1369605689 不好意思,没用过7.0
博主 ,要是想记录udec里面的时间是用thtime这个嘛 udec里面的history没有time这个变量啊,
如果我想导出时间应力曲线的数据那应该是 hist time hist syy x,y ;hist write 1 vs 2 tset.dat 嘛 跪求博主大佬解释
@庄佳鑫 thtime是thermal time,平常用不到。记录时间直接hist time就行了,在帮助文档的UDEC -Specific Scalar Variables中可以找到time变量。你写的导出的命令应该是对的
请问博主,用history监测点的位移数据,命令流中的监测点是均匀的(例如0,1,0、0,2,0、0,3,0),但是软件上用history locations去看每个监测点的位置却发现并不是均匀的,请问该用什么方式去解决呢
@五花肉丶片 命令里写的hist x,y,z中的x,y,z坐标是指最接近此坐标的节点,除非你的网格节点坐标恰好是这个点,那监测的就是这个点
博主,请问UDEC怎么导出图片呀?就是模拟过程中的一些图片,我用movie记录的图片清晰度很差。
@莫不静好 建议写个FISH函数,里面使用循环体,每隔你想要的时间就使用set plot filename jpg size iw ih来指定图片的大小和格式输出,具体的用法可以看set命令
请问一下,如何对一个切面进行位移监测
@哈喽 对面的监测貌似不能实现吧,可以多选取一些点监测