APDL如何快速读取和导出大型数组

文摘   2024-09-18 09:00   重庆  
欢迎阅读水哥原创文章,历年原创文章请点击:
本公众号历年原创文章汇总-2024.05
更多水哥原创课程,请点击:
水哥原创课程清单


有部分同学在操作APDL时,可能会遇到读取或者导入大型数组的情况,然而如果按常规的*Vwrite或者*Vread方法极易出问题,要么ANSYS崩溃,要么人员崩溃,今日水哥就介绍下采用APDL中的矩阵工具箱来操作的方法,简单快捷,并且免于读取或写出的格式烦恼!
       至于数组要达到多少维度才算是大型数组?在APDL中,水哥建议如果数组的任意一个维度超过了10000就可以归并为大型数组,进而可采用本文方法!

关于矩阵工具箱及相关函数索引,参考下面这篇文章:

APDL矩阵运算介绍及常见矩阵函数索引

导入和导出主要用到的命令为

*DMAT:创建矩阵,可从文件中读取数据来进行创建;

*EXPORT:导出矩阵,可将矩阵对象转为普通数组对象,也可以将数组导出为文件。

一、数据写出

首先生成10000*10的随机数组,采用*DMAT将普通数组对象转为矩阵对象,然后利用*EXPORT命令将其转为CSV数据。

代码如下:

finish/clear/prep7*dim,AA,array,10000,10*do,i,1,10000*do,j,1,10AA(i,j)=rand(1,10)*enddo*enddo*Dmat,AA_Math,D,import,APDL,AA*export,AA_Math,CSV,Mytest

在工作文件夹下,即可找到Mytest的文件,该文件不能指定后缀名,可手动添加.csv,然后用excel打开,当然也可直接用UE或者Matlab读取数据。

人工加上后缀名.csv,然后用Excel打开即可。

数据的核对:

为核对数据是否导出有误,现随机复核一个数据,首先在APDL中获取一个数据,例如:

dd=AA(8645,6)$*status,dd

其值为:

在excel中,找到对应位置,其值如下所示:

两者一致。

二、数据读入

与数据写出不同,APDL的矩阵工具箱不能直接读取csv文件,需要进行一定的格式处理,水哥建议采用工具箱特有的MMF格式,MMF格式如下:

前面6行 为注释性语言,第7行指定数据导入数组时生成的行数和列数,接下来就是单列数据,按照先行后列的规律排序。

本文未经授权,严禁复制转载于其他第三方平台,微信公众号ANSYS结构院,博客FSCAE.COM !

使用方法如下所示:

现假定需要读取一组20000*30的数组到APDL中。

首先利用Matlab生成了20000*30的随机数组数据,并按照先行后列的规律导出到一个文件TestB。

Matlab代码如下所示:

% 生成20000x30的随机数组A = rand(20000, 30);
% 将矩阵转换为一个单列的矩阵,20000*30行,1列A_col = reshape(A, [], 1);
% 指定输出文件的名称filename = 'TestB.txt';
% 打开文件用于写入fileID = fopen(filename, 'w');
% 检查是否成功打开文件if fileID == -1 error('Failed to open file for writing.');end
% 写入数据,每个数值后面跟一个空格fprintf(fileID, '%.6f\n', A_col);
% 关闭文件fclose(fileID);

打开TestB.txt,手动添加如下信息,当然如果是批量处理,这个过程你可以用Matlab或者Python来处理。

在APDL中首先用*DMAT读取MMF格式的文件,然后用*EXPORT转为APDL数组即可。

APDL代码如下:

*DMAT,BB_MATH,D,import,MMF,testB*export,BB_Math,APDL,BB


数据复核,点击Parameters>Array>Define,如下所示。

数据已经读取成功,现在复核单个数据。

dd=BB(15869,26)

*Status,DD

然后在matlab中获取该位置的数据,两者截图如下所示。


数值符合,说明读取成功!


采样上述方法,针对这种上万级别的数组,APDL读取也就3秒钟的事儿,远远比*Vread或者*Mread效率高的多!


附 活动送书名单,原文:

公众号破十万粉丝,感恩回馈,送书活动快来参加吧!

名单如下:

请上述同学务必于今日21:00前添加小助手依依(微信号id:superansys)领取活动书籍,过时无效哦。

添加时,请备注 活动书籍领取, 通过好友申请后 请发送留言被公众号选中的截图以及相应的收件地址和联系人,书籍预计在1~5个工作日内寄出。

再次感谢大家的支持!


更多水哥原创课程,请点击:
       水哥原创课程清单
更多有限元学习资源,请访问水哥博客:FSCAE.COM
祝好
ANSYS结构院

      2024.09.18

ANSYS结构院
ANSYS使用心得及操作技巧,B站Up主水哥ANSYS, 有限元学习资源分享,公众号官网FSCAE.COM
 最新文章