年少才轻狂 发表于 2013-7-3 15:48

ansys中用Hbmat命令提取刚度、质量矩阵的若干疑惑

最近一直在学习怎样用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=

qinzh_86 发表于 2014-5-26 20:44

遇到同样的问题 请求高手解答
页: [1]
查看完整版本: ansys中用Hbmat命令提取刚度、质量矩阵的若干疑惑