APDLMath箱内矩阵输出仅有两个命令,即*EXPORT和*PRINT命令,前者可以生成与外部交换的多种数据格式,后者按ANSYS内部固定格式打印到输出窗口或文件。
1.以指定格式输出矩阵到文件
*EXPORT,Matrix,Format,Fname,Val1,Val2,Val3
其中Matrix为要输出的矩阵或向量名,必须是*DMAT、*SMAT创建的矩阵或*VEC创建的向量。
Format为输出格式,可选择的有MMF—以Matrix Market格式输出(MMF为矩阵市场交换格式;MAT—以本机格式输出,用命令*DMAT或*SMAT重新导入的矩阵;SUB、HBMAT、EMAT、APDL、PS、DMIG等及Val1、Val2、Val3详见下表(图1)。
Fname为文件名,对APDL格式为数组名(不必预先定义)。
*EXPORT命令不适用于通过*SMAT命令的NOD2BCS选项获取的稀疏矩阵。
MMF格式为ACSII文件,图2a为其文件头部和部分数据。MMF格式较为简单,文件头记录了创建该矩阵的软件、矩阵的m*n、非零元素个数等。稠密矩阵和稀疏矩阵数据组织不同,稠密矩阵为全部矩阵元素,稀疏矩阵为非零元素,均按列组织。
MAT格式为二进制文件,不可查看。HBMAT格式仅支持稀疏矩阵的输出,也可为二进制文件或ACSII文件,如图2b)。APDL则直接转换为APDL数组(按APDL常规数组处理即可)。PS格式可用PhotoShop软件打开,形成栅格化图片。
SUB为创建超单元的一种途径,可以自定义单元行为,当然也可通过APDL的MATRIX50创建超单元,那是另外一种途径。通过SUB格式输出为超单元时,需要定义超单元矩阵的自由度对应关系,即所谓行信息矩阵,详见图1和命令流中的使用方法。
2021R1版本可输出CSV格式。
FINISH$/CLEAR$/FILNAME,EXLX$/PREP7
ET,1,SOLID185$MP,EX,1,2.1E11
MP,PRXY,1,0.3$MP,DENS,1,7800
ALPHAD,5
BLC4,,,4,0.3,0.2$DA,5,ALL
ESIZE,0.1$MSHKEY,1$VMESH,ALL
/SOLU$ANTYPE,MODAL
MODOPT,DAMP,12$MXPAND,12,,,YES$SOLVE
!从FULL文件创建稠密矩阵========
*DMAT,KD_M,D,IMPORT,FULL,EXLX.FULL,STIFF
*DMAT,MD_M,D,IMPORT,FULL,EXLX.FULL,MASS
*DMAT,CD_M,D,IMPORT,FULL,EXLX.FULL,DAMP
*DMAT,RD_M,D,IMPORT,FULL,EXLX.FULL,RHS
!从FULL文件创建稀疏矩阵
*SMAT,KS_M,D,IMPORT,FULL,EXLX.FULL,STIFF
*SMAT,MS_M,D,IMPORT,FULL,EXLX.FULL,MASS
*SMAT,CS_M,D,IMPORT,FULL,EXLX.FULL,DAMP
*SMAT,NOD2_M,D,IMPORT,FULL,EXLX.FULL,NOD2BCS
*SMAT,USR2_M,D,IMPORT,FULL,EXLX.FULL,USR2BCS
*SMAT,RS_M,D,IMPORT,FULL,EXLX.FULL,RHS
!从FULL文件创建荷载向量
*VEC,RV_M,D,IMPORT,FULL,EXLX.FULL,RHS
!输出矩阵演示==========
*EXPORT,KD_M,MMF,KD.MMF
*EXPORT,KS_M,MMF,KS.MMF
*EXPORT,KD_M,MAT,KD.MAT!二进制
*EXPORT,KS_M,MAT,KS.MAT!二进制
*EXPORT,KS_M,HBMAT,KS.HBM,ASCII
*EXPORT,KS_M,PS,KS.PS,COLOR
!创建超单元及其输出
FINISH$/CLEAR$/PREP7
!定义两个节点
N,11$N,12,1
!定义刚度矩阵并赋值
*DMAT,MYK,D,ALLOC,4,4
MYK(1,1)=1.0$MYK(2,2)=1.0
MYK(3,3)=1.0$MYK(4,4)=1.0
MYK(1,3)=-0.5$MYK(3,1)=-0.5
!定义质量矩阵并赋值
*DMAT,MYM,D,ALLOC,4,4
MYM(1,1)=10.0$MYM(2,2)=10.0
MYM(3,3)=10.0$MYM(4,4)=10.0
!定义行信息矩阵
*DMAT,HXX,I,ALLOC,4,2
HXX(1,1)=11,11,12,12!节点号
HXX(1,2)=1,2,1,2!自由度
*PRINT,MYK
*PRINT,MYM
*PRINT,HXX
!输出SUB文件
*EXPORT,MYK,SUB,MYSUB.SUB,STIFF,HXX,WAIT
*EXPORT,MYM,SUB,MYSUB.SUB,MASS,HXX,DONE
!列表显示MYSUB超单元信息
SELIST,MYSUB,3
2.打印矩阵到文件
*PRINT,Matrix,Fname
其中Matrix为矩阵名或向量名。Fname为文件名,当为空时打印到ANSYS输出窗口。
该命令依据要打印的矩阵类型不同而不同,如稠密矩阵为全部元素的“[行号,列号]:E11.3”数据格式;而稀疏矩阵数据同稠密矩阵,但仅仅输出非零元素。
声明:原创文章,欢迎留言与我讨论,如需转载留言