ansys读写格式(可编辑修改word版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
经过实验,对*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.3
4.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
对目标数组写入方式:IJK 表示下标变化的顺序,默认按列写入。
IJK :数组 AA 要写入的行数,列数;按列逐个值写入,写满要写的行列为止。
JIK :数组 AA 要写入的列数,行数,按行将单个值写入(FORTRAN 默认先写列,JIK 表示先写行)
IJK,n1,n2
对不同输入方式的读取结果分析如下:
注:[1]数据文件中每行有 3 个数据,由于每行读入的数据不到 3 个, 后面的多余数据将不被读入,最终导致数据不够的警告。
未读取的数组元素,默认值为 0.
[2]数据文件中每行有 3 个数据,每行要求读入 4 个数据,超过 3
个的以 0 补足。
上述方法仅对 Array 有效,如果是对表(Table),由于*VREAD 不能直接对表的 0 行、0 列读入数据,因此上述方法受到限制。
向 Table 中读入数据时,可以参考如下命令流或改用*Tread 命令:
!如何向 array 或 table 中读入数据
fini
/clear
/prep7
*del,all n=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 的数据传送到 cc
cc(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.01
1,10.11
2,20.22 3,30.33 4,40.44 5,50.55 6,60.66 7,70.77 8,80.88 9,90.99。