您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > ANSYS裂缝扩展模拟程序
!裂纹扩展程序/prep7et,1,plane82mptemp,,,,,,,,mptemp,1,0mpdata,ex,1,,2.07e5mpdata,prxy,1,,0.3k,101,0,0,,k,102,200,0,,k,103,200,50,,k,104,0,50,,k,105,100,50,,k,106,80,0,,k,107,80,0,,k,108,80,10,,l,106,108l,103,104lextnd,1,108,100,1lsbl,2,3lplota,101,106,108,2,104a,107,102,103,105,2,108kscon,108,0.2,1,08,1,mshape,1,2d!自由划分网格mshkey,0amesh,1amesh,2dk,101,alldk,102,allfk,105,fy,-200finish/solsolvefinishnplotlocal,11,0,80,10,0,-90,,,1,1,!建立以裂尖为原点的局部坐标系,裂纹面平行于x轴nsel,s,loc,y,0!在cs坐标系(当前坐标系)下选择y=0的结点nsel,r,loc,x,0,0.2!根据kscon命令可知沿裂纹面路径的x坐标nlist!共选择5个点*get,nnub,node,,count!获取节点总数nnub*dim,aa,array,nnub*get,aa(1),node,,num,min*do,i,2,nnub*get,aa(i),node,aa(i-1),nxth*enddoflst,2,nnub,1*do,i,1,nnubfitem,2,aa(i)*enddopath,101,nnub,30,20,!定义路径ppath,p51x,1path,statkcalc,1,1,3,0!计算裂纹强度因子finish*get,ki1,kcalc,,k,1!分别读取应力强度因子ki1,ki2*get,ki2,kcalc,,k,2*afun,deg!改变角度的单位为度theta1=2*atan(0.25*(ki1/ki2-sqrt((ki1/ki2)**2+8)))!计算裂纹扩展角坐标the=abs(theta1)*dim,kt,array,20,3kt(1,1)=ki1kt(1,2)=ki2kt(1,3)=theta1*do,i,2,10!循环的步数aclear,1,2!清除网格划分adele,1,2,,0!仅删除面1,2,保留线(如果直接删除线,关键点也将随之删除)ldele,all,0!删除所有的线kdele,2!删除关键点2*get,kmax,kp,,num,max!获取最大关键点编号k,kmax+2(i-1)-1,0,0!在原局部坐标系下增加一个关键点,与之前裂尖关键点坐标相同k,kmax+2(i-1),-3*cos(the),3*sin(the)!在原局部坐标系下增加另一个关键点,即为下一个裂尖关键点kdele,kmax!因为一个面上不能定义两个KSCON,故需要删除前面在最大号关键点定义的KSCON,自动删除局部坐标*get,kx,kp,kmax+2(i-1)-1,loc,x*get,ky,kp,kmax+2(i-1)-1,loc,yk,kmax,kx,kycsdele,11*get,knub,kp,,count!获取关键点的数目*dim,kk,array,knub!建立一个一维矩阵*get,kk(1),kp,,num,max!获取最大关键点编号*do,j,2,knub*get,kk(j),kp,kk(j-1),nxtl*enddol,103,104!连接关键点,自动编号为1,用于截取线段(如果角度过大,需连接l,102,103,并进行判定与哪条直线相交)*do,ii,106,kk(1)l,ii,ii+2!连接关键点成线ii=ii+1*enddo*get,lmax,line,,num,max!获取线的最大编号lextnd,lmax,kk(1),200,1!从裂尖方向延伸最大编号的线,自动生成关键点1*get,lmax,line,,num,max!获取线的最大编号lsbl,1,lmax!用线1截取生成的延伸线,在1上自动生成关键点2,同时删除关键点1!通过判定关键点奇偶数来确定合成面需要的点*do,j,2,knub*if,kk(j),gt,108,and,kk(j),lt,kmax,then*if,abs(nint(kk(j)/2)-kk(j)/2),le,0.1,then!判定奇偶数命令,如果为偶数*get,kpos,kp,,count*dim,os,array,kpos*get,os(1),kp,,num,max*do,jj,2,kpos*get,os(jj),kp,os(jj-1),nxtl*enddoflst,2,kpos+7,3fitem,2,108fitem,2,106fitem,2,101fitem,2,104fitem,2,105!必须选择关键点105,否则荷载无法施加fitem,2,2fitem,2,kk(1)*do,jjj,1,kposfitem,2,os(jjj)jjj=jjj+1*enddoa,p51x!利用关键点连接成面*else*get,kpjs,kp,,count*dim,js,array,kpjs*get,js(1),kp,,num,max*do,jj,2,kpos*get,js(jj),kp,js(jj-1),nxtl*enddoflst,2,kpjs+5,3fitem,2,107fitem,2,102fitem,2,103fitem,2,2fitem,2,kk(1)!必须选择关键点105,否则荷载无法施加*do,jjj,1,kpjsfitem,2,js(jjj)jjj=jjj+1*enddoa,p51x!利用关键点连接成面*endif*endif*enddokscon,kk(1),0.2,1,08,1,mshape,1,2d!自由划分网格mshkey,0amesh,1amesh,2dk,101,alldk,102,allfk,105,fy,-200FINISH/sol/status,solusolvefinish*get,kx,kp,loc,kk(1),x!读取裂尖关键点的x坐标*get,ky,kp,loc,kk(1),y!读取裂尖关键点的y坐标local,11,0,kx,ky,0,-90+theta(i-1),,,1,1,!旋转角度待修改nsel,s,loc,y,0!在CS坐标系(当前坐标系)下选择y=0的结点nsel,r,loc,x,0,0.2!根据kscon命令可知沿裂纹面路径的x坐标nlist!共选择5个点*get,nnub,node,,count!获取节点总数nnub*dim,aa,array,nnub*get,aa(1),node,,num,min*do,i,2,nnub*get,aa(i),node,aa(i-1),nxth*enddoflst,2,nnub,1*do,i,1,nnubfilem,2,aa(i)*enddopath,101,nnub,30,20,ppath,p51x,1path,statkcalc,1,1,3,0finish*get,ki1,kcalc,,k,1!分别读取应力强度因子ki1,ki2*get,ki2,kcalc,,k,2*afun,deg!改变角度的单位为度theta1=2*atan(0.25*(ki1/ki2-sqrt((ki1/ki2)**2+8)))!计算裂纹扩展角坐标the=abs(theta1)*dim,kt,array,20,3kt(i,1)=ki1kt(i,2)=ki2kt(i,3)=theta1*enddo
本文标题:ANSYS裂缝扩展模拟程序
链接地址:https://www.777doc.com/doc-6149754 .html