ansys-读写格式

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

经过实验,对*vread用法总结如下:*VREAD,ParR,Fname,Ext,--,Label,n1,n2,n3,NSKIP其中:ParR是要将外部数据写入的参数或数组变量名,如是数组,必须已经定义(用*DIM),且指出写入的开始位置,即包含下标(I,J,K)(默认首行首列首区),然后写入从(I,J,K)开始到结尾的所有数组元素;如是参数,只输入一个值。Fname是存放数据的外部文件名,Ext是扩展名,Label可为IJK,IKJ,JIK,JKI,KIJ,KJI,或blank(默认为IJK),表示对数组ParR写入的顺序。如IJK表示先写列再写行(先K,再J,再I;对于二维数组,先写列,下标J改变最快),JIK表示先写行再写列(先K,再I,再J;对于二维数组,先写行,下标I改变最快)n1,n2,n3表示按上面的顺序,各下标分别要写入的数据个数,如JIK,5,6表示对ParR按行写入,共写5列(对应J)6行(对应I),即三个数按顺序分别对应Label中的三个标识符(例如:KIJ–n1对应K、n2对应I、n3对应J,n2、n3默认为1)NSKIP:从文件中读取数据时,首先跳过文件开头的NSKIP行(如:说明部分等,非数据内容),默认为0.注意:*VREAD命令只能用于3维(含)及以下的数组。紧跟*VREAD命令的下一行是带括号的指定格式,描述从数据文件中读取数据时,每行读取的数据个数及其格式,如(2F3.0,3F11.0)表示每行读5个数,前两个含3个字符,后3个含11个字符宽度。该格式与Fortran语言相同,但不能使用I格式–整数格式。如《APDL参数化有限元分析技术及其应用实例》中P40的例子:数据文件data.txt内容如下(2行,每行3个数据,为了便于分析,对数据已做修改,注意以逗号分隔,如以空格分隔,有时会出问题):1.1,2.2,3.34.4,5.5,6.6执行命令流*DIM,AA,,2,3!数组AA有2行3列。*VREAD,AA(1,1),DATA,TXT,,JIK,3,2!3对应J,2对应I(3F6.1)*STATUS,AA对不同输入方式的读取结果分析如下:(nF6.1)AA数组的读取结果对数据文件的读取方式,每行读n个数据,格式都是F6.1JIK,3,2(f6.1)行1:1.14.40每行读1个数据,按行写入,共3列2行。需读取6行。Warning:end-of-fileindataread[1]行2:000JIK,3,2(2f6.1)行1:1.12.24.4每行读2个数据,按行写入,共3列2行。需读取3行。Warning:end-of-fileindataread[1]行2:5.500JIK,3,2(3f6.1)行1:1.12.23.3每行读3个数据,按行写入,共3列2行。需读取2行。行2:4.45.56.6JIK,3,2(4f6.1)行1:1.12.23.3每行读4个数据,按行写入,共读取2行(第二行读2个数据)。[2]行2:04.45.5注:[1]数据文件中每行有3个数据,由于每行读入的数据不到3个,后面的多余数据将不被读入,最终导致数据不够的警告。未读取的数组元素,默认值为0.[2]数据文件中每行有3个数据,每行要求读入4个数据,超过3个的以0补足。IJK,n1,n2对目标数组写入方式:IJK表示下标变化的顺序,默认按列写入。IJK:数组AA要写入的行数,列数;按列逐个值写入,写满要写的行列为止。JIK:数组AA要写入的列数,行数,按行将单个值写入(FORTRAN默认先写列,JIK表示先写行)AA数组中的读取结果IJK,2,3(3f6.1)行1:1.13.35.5每行全读,按列写,共2行3列。行2:2.24.46.6IJK,1,2(3f6.1)行1:1.12.20每行全读,按列写,共1行2列。行2:000JIK,2,1(3f6.1)行1:1.12.20每行全读,按行写,共2列1行。行2:000JIK,3,1(3f6.1)行1:1.12.23.3每行全读,按行写,共3列1行。行2:000JIK,3,1(2f6.1)行1:1.12.24.4每行读2个值,按行写,共3列1行行2:000JIK,3,1(f6.1)行1:1.14.40每行读1个,只读到2个,少1个。Warning:end-of-fileindataread行2:000IJK,2,2行1:1.12.20每行读2个值,按列(2f6.1)行2:4.45.50写,共2行2列。IJK,2,5(3f6.1)行1:000Waring:AAdoesnothaveenoughcolumns-数5超过AA定义的列数。行2:000上述方法仅对Array有效,如果是对表(Table),由于*VREAD不能直接对表的0行、0列读入数据,因此上述方法受到限制。向Table中读入数据时,可以参考如下命令流或改用*Tread命令:!如何向array或table中读入数据fini/clear/prep7*del,alln=10!数据行数!!方法1*dim,aa,array,n,2,1*cfopen,test,dat!打开数据文件test.dat*vread,aa,test,dat,,jik,2,10,1!对于array,使用*vread读入数据,需要格式说明(f12.0,f12.4)*cfclos!关闭数据文件!可以正确读入数据*dim,cc,table,n,1,1!table下标从0开始,!这样定义实际为(n+1)行*2列*do,i,1,n!将aa的数据传送到cccc(i-1,0)=aa(i,1)cc(i-1,1)=aa(i,2)*enddo!结果正确!方法2*dim,bb,table,n,1,1!table下标从0开始,!这样定义实际为(n+1)行*2列*cfopen,test,dat*tread,bb,test,dat,,0!实际读入n行数据,存放在到第1到n行!对于表,用*tread读入数据,不要格式说明*cfclos!可以正确读入数据到下标大于0的各表项中!方法1,需要多用一个Array,但是定义表的0行、0列可以使用;!方法2,表的第0行和第0列不能使用,如要使用,需单独赋值。数据文件test.dat中的数据:0,0.011,10.112,20.223,30.334,40.445,50.556,60.667,70.778,80.889,90.99

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功