马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
最近一直在学习怎样用HBMAT方法提取刚度、质量矩阵,最后提成功了,但是接下来面临的问题是如何把提出来的刚度矩阵文件转换成满矩阵存储(因为提出来的刚度矩阵是稀疏矩阵),以便我可以在matlab中进行运算。网上有很多相关资料,但是大多都是关于王新敏老师《ansys工程结构数值分析》一书上得例子,我刚刚用这个书上讲到的如何还原满矩阵文件的命令流,但是出现错误,将很多人就只是把相关命令流列出,对命令流的讲解很少,这里真心求高手指点,如何还原为满矩阵文件,谢谢。
FINISH
/CLEAR START
/FILNAME,HBFILE
/PREP7
ET,1,BEAM3
MP,EX,1,2E5
R,1,1E-2,32E-5,0.5
N,1
N,2,0,4
N,3,4,4
N,4,4,0
EN,1,2,3
EN,2,1,2
EN,3,4,3
F,2,FX,5
SFBEAM,1,1,PRES,10,,,,2,-1
SFBEAM,2,1,PRES,3
/SOLU
WRFULL,1
SOLVE
FINISH
/AUX2
FILE,HBFILE,FULL
HBMAT,HBFILE,TXT,,ASCII,STIFF,YES
FINISH
!以下从HBFILE.TXT读入数据,并还原为满矩阵存储
*DIM,CONTLINE,,5
*VREAD,CONTLINE(1),HBFILE,TXT,,,5,,,1
(5F14.0)
PTRCRD=CONTLINE(2)
INDCRD=CONTLINE(3)
VALCRD=CONTLINE(4)
RHSCRD=CONTLINE(5)
*VREAD,CONTLINE(1),HBFILE,TXT,,,4,,,2
(A3,11X,4F14.0)
NROW=CONTLINE(2)
NCOL=CONTLINE(3)
STRLINE=
CONTLINE=
*IF,RHSCRD,EQ,0,THEN
LS0=4
*ELSE
LS0=5
*ENDIF
*DIM,POINTR,,PTRCRD
*DIM,ROWIND,,INDCRD
*DIM,VALUES,,VALCRD
*DIM,RHSVAL,,RHSCRD
*VREAD,POINTR(1),HBFILE,TXT,,,PTRCRD,,,LS0 (F14.0)
*VREAD,ROWIND(1),HBFILE,TXT,,,INDCRD,,,LS0+PTRCRD (F14.0)
*VREAD,VALUES(1),HBFILE,TXT,,,VALCRD,,,LS0+PTRCRD+INDCRD (D25.15)
*VREAD,RHSVAL(1),HBFILE,TXT,,,RHSCRD,,,LS0+PTRCRD+INDCRD+VALCRD
(D25.15)
*DIM,SMATR,,NROW,NCOL
*DO,ICOL,1,NCOL
STACOL=POINTR(ICOL)
ENDCOL=POINTR(ICOL+1)
*DO,IROW,STACOL,ENDCOL-1
TRUEROW=ROWIND(IROW)
SMATR(TRUEROW,ICOL)=VALUES(IROW)
*ENDDO
*ENDDO
*DO,IROW,1,NROW
*DO,ICOL,1,NCOL
SMATR(IROW,ICOL)=SMATR(ICOL,IROW)
*ENDDO
*ENDDO
!以下为删除临时变量和数组变量
POINTR=
ROWIND=
VALUES=
RHSVAL=
ICOL=
IROW=
LS0=
STACOL=
ENDCOL=
TRUEROW=
TOTCRD=
PTRCRD=
INDCRD=
VALCRD=
RHSCRD=
|