ANSYS计算后处理时经常需要将得到的结果进行输出,输出时需要采用一定的输出格式指定输出方式。数据输出一般配合*CFOPEN和*VWRITE完成,*CFOPEN用于打开文件,*VWRITE用于写数据。
APDL的输出格式和Fortran一致其中F格式为:Fw.d。这个用的比较多,用于输出浮点数据。
其中,w表示数据的总字符宽度,d表示小数部分所占的宽度,不够的补零。例如F10.5表示输出数据一共占10个宽度,其中小数部分占5个宽度,需要注意点号也占一个字符宽度,不够10位的在数据的前面补空格。
图1
图1是一个数组,采用以下APDL命令输出数据:
x=25
*cfopen,vector
*vwrite,SEQU,mydata(1,1,1),mydata(1,2,1),mydata(1,3,1),10.2,x,mydata(1,1,1)+3
(F3.0,' ',F8.4,' ',F8.1,' 'F8.6,' ',F4.1,' 'F4.0,' 'F8.1)
*cfclos
最终输出数据如下所示:
1. 2.1522 3.9 5.286370 10.2 25. 5.2
2. 2.3049 4.0 5.409196 10.2 25. 5.2
3. 2.0105 3.4 5.936638 10.2 25. 5.2
4. 2.3683 3.3 5.632203 10.2 25. 5.2
5. 2.8491 4.8 5.978024 10.2 25. 5.2
6. 2.2280 3.5 5.546851 10.2 25. 5.2
第一列对于于SEQU,表示序列
第二列对于于mydata(1,1,1),输出格式为F8.4
第三列对应于mydata(1,2,1),输出格式为F8.1
第四列对应于mydata(1,3,1),输出格式为F8.6
第五列对应于10.2,输出格式为F4.1
第六列对应于x,输出格式为F4.0
第七列对应于mydata(1,1,1)+3,输出格式为F8.1
下面是另外一个例子:
图2
采用如下的APDL语句输出:
*vwrite,SEQU,mydata(1,1),mydata(1,2),(mydata(1,1)+mydata(1,2))
(' Row',F3.0,' contains ',2F7.3,'. Is their sum ',F7.3,' ?')
最终的结果如下:
Row 1. contains 10.000 50.000. Is their sum 60.000 ?
Row 2. contains 20.000 70.000. Is their sum 60.000 ?
Row 3. contains 30.000 80.000. Is their sum 60.000 ?
输出夹带了字符串,输出字符串的时候需要加引号,并且采用了2F7.3表示连着输出两个F7.3格式的数据。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删