首页/文章/ 详情

ANSYS APDL | 裂纹稳定扩展 | 自动划分网格

1年前浏览7997


前言

        高循环疲劳,也称为高周疲劳,即作用于零件、构件的应力水平较低 ,破坏循环次数般高于104~105的疲劳 ,弹簧、传动轴等的疲劳属此类。右高循环疲劳引起的破坏可分为三个阶段:裂纹成核、裂纹扩展和最终的脆性破坏。

        现有研究一般集中在第二阶段——稳定裂纹扩展过程。在线弹性断裂力学的假设下,裂纹扩展可以用Paris-Erdogan定律(循环次数与应力强度因子之间的对数线性关系)来描述。预测具有预先存在裂纹的样品的寿命(循环次数)或对裂纹路径的预测,这对于评估工程结构受到循环加载的条件至关重要,例如轴,开关等。

    本文可用于任意二维几何形状的裂纹扩展分析,也可以在次基础上进一步扩展到3维裂纹扩展分析,采用的理论是基于线弹性断裂力学的假设。

        在这种方法中,在每个时间步(裂纹增量)对裂纹表面进行显式建模,并且在每个时间步(裂纹扩展区)也进行(重新)网格划分。虽然重网格方法在模拟裂纹扩展时可能不是很有效(就计算时间而言),但它确实可以完成工作。

        每次迭代时的裂纹角由裂纹尖端附近的位移场计算得到的应力强度因子KI和KII来预测[Erdogan等,1963],(通过将单元节点移至单元长度的四分之一来模拟裂纹奇异性的特殊单元属性):

其中应力强度因子由裂纹尖端节点位移计算

平面应力:

平面应变:

演示案例

        以下图2D基本 模型为例,含裂纹预计会扩展的区域,如下图中以红色线为边缘的区域,该区域将自动划分网格。裂纹萌生的关键点 (KP ) 和预期的最终裂纹位置 (KPe) 必须定义在边界上而不是内部。裂纹扩展区的大小和预期最终裂纹位置关键点的选择不影响结果;然而,它们会影响解决方案的效率(重新划分网格的时间)和稳定性。

文后附上了所有的命令流,关于命令流的理解,读者可以后台咨询作者。

该命令流的难点在于:

  • 裂纹扩展角度预测

  • 裂纹扩展后的网格重划分

基本模型
裂纹最终扩展
基本模型建立命令流:









































































































FINISH/clear/prep7
L = 62.5H = 60.0 R1 = 6.0R2 = 4.0
kk,,Lk,,L,Hk,,,H
l,1,2l,2,3l,3,4l,4,1
k,,2*R1,2*R1 k,,2*R1,H-2*R1 k,,L-15,H/2-5 k,,L-27.5,H/2+9
circle,5,R1 circle,6,R1 circle,7,R2 circle,8,R2
k,,,H/2+1.5k,,L-37.5-1.5,H/2+1.5k,,L-37.5,H/2 k,,L-37.5-1.5,H/2-1.5k,,,H/2-1.5
! 预计会扩展的区域l,25,26l,26,27l,27,28l,28,29l,29,25
l,26,23l,28,19
k,,L-15,H/2+9l,18,30l,30,21
! 通过线创建面al,1,2,3,4al,21,22,23,24,25al,22,23,27,14,28,29,20,19,26al,19,20,17,18al,15,16,13,14al,5,6,7,8al,9,10,11,12
APTN,ALL  !面分割adele,7    !洞adele,6adele,4adele,5adele,2

ET,1,82KEYOPT,1,3,2 !平面应变
! 各向弹性MP,EX,1,210000MP,PRXY,1,0.3
LESIZE,27,1LESIZE,14,1LESIZE,28,1LESIZE,29,1LESIZE,20,1LESIZE,19,1LESIZE,26,1LESIZE,22,1LESIZE,23,1
LESIZE,1,5LESIZE,2,5LESIZE,3,5LESIZE,31,5LESIZE,30,5
AMESH,8! 裂纹扩展区域的网格会自动划分
! boundary conditionsDK,14,,,,0,UXDK,12,,,,0,UXDK,12,,,,0,UYFK,14,FY,100 !100 N force

!线分割LDIV,      22,  0.5LDIV,      23,  0.5LDIV,      14,  0.01
LDELE,25
裂纹扩展预测命令流:






















































































































































































































































































































































































































































































































































































































































































































































































































!裂纹扩展及网格自动划分!!最大切应力准则
CSYS,/Prep7  !! 以下参数可以自行调整  Pi=3.1415926535                                    Epsilon=5e-5  !  裂纹扩展方程数值解的误差Ra=0.5        !圆形区域半径与裂纹长度之比nles=50        !连接 KP 和 KPe 的线上的单元数量!命令multipro可以生成一个简单且有多行提示的对话框,最多容纳10个参数的提示multipro,'start',6                *cset,1,3,Area,'Area Number',3  *cset,4,6,KP,'Keypoint of start',27  *cset,7,9,KPe,'Keypoint of end',33  *cset,10,12,a,'Length of Initial Crack [mm]',1  *cset,13,15,ap,'Crack Increment [mm]',1  *cset,16,18,Theta,'Angle of Initial Crack []',0  *cset,19,21,cycle,'Number of increments',20  *cset,22,24,sigmay,'Yield stress [MPa]',160  *cset,25,27,lock,'Locked angle',0  *cset,61,62,'MMTS criterion'multipro,'end'
!! 以下量不可变tt=1NN=1condition=1t=1            k=1HP=0DP=0
 *GET,poisson,PRXY,1,TEMP            *GET,EMX,EX,1,TEMP                            GMX=EMX/2/(1+poisson)


*if,_BUTTON,EQ,0,THEN       !若弹出框OK按钮被按下, _BUTTON=0,反之_BUTTON=1
CSWPLA,33,0,1,1 !定义局部坐标系
app=aToC='MTS criterion'Theta3=Thetaappx=0appy=0
*do,j,1,cycle,1    
appx=a*cos(Theta3*Pi/180)+appxappy=a*sin(Theta3*Pi/180)+appy                                        !循环,裂纹增量的形成  ALLSEL,ALL                                  rKSCON=0.0005*a                      
 *get,NOL,lines,,count      *get,NOK,kp,,count    
 *if,tt,EQ,1,THEN                                  *get,NOA,areas,,count                                  *get,minKP,KP,0,num,min                              *DO,i,1,NOK,1        *if,minKP,EQ,KP,THEN          KP=k        *endif      *GET,nextKP,KP,minKP,NXTH        minKP=nextKP        k=k+1      *ENDDO    k=1
   *get,minKPe,KP,0,num,min                            *DO,i,1,NOK,1        *if,minKPe,EQ,KPe,THEN          KPe=k          *endif      *GET,nextKP,KP,minKPe,NXTH        minKPe=nextKP        k=k+1      *ENDDO    k=1        *get,minAREA,AREA,0,num,min                              AREA=k        *endif      *GET,nextAREA,AREA,minAREA,NXTH        minAREA=nextAREA        k=k+1      *ENDDO    k=1
NUMCMP,ALL   !压缩编号    KP1=KP        ASEL,S,,,Area          LSLA,S                      KSLL,S                  
   *get,NOL1,lines,,count              *get,NOK1,kp,,count                
     *DIM,POLINES,TABLE,NOL1,3,1,NOL,POF                  *DO,i,1,3,1          *SET,POLINES(0,i),i        *ENDDO        *DO,i,1,NOL1,1          *SET,POLINES(i,0),i        *ENDDO        *DIM,POKEYPOINTS,TABLE,NOK1,3,1,NOKP,POKP            *DO,i,1,3,1          *SET,POKEYPOINTS(0,i),i        *ENDDO        *DO,i,1,NOK1,1          *SET,POKEYPOINTS(i,0),i        *ENDDO              *DIM,FACTORS,TABLE,cycle,7,1,NOKP,POKP                      *DO,i,1,7,1          *SET,FACTORS(0,i),i        *ENDDO        *DO,i,1,cycle,1          *SET,FACTORS(i,0),i        *ENDDO              *DIM,TSTRESSA,TABLE,20,4,1,NOKP,POKP            *DO,i,1,4,1          *SET,TSTRESSA(0,i),i        *ENDDO        *DO,i,1,20,1          *SET,TSTRESSA(i,0),i        *ENDDO
     *do,i,1,NOL,1                              *GET,status,LINE,i,LSEL          *if,status,EQ,1,THEN            *SET,POLINES(t,1),i            *VGET,POLINES(t,2),LINE,i,KP,1, , ,2            *VGET,POLINES(t,3),LINE,i,KP,2, , ,2            t=t+1          *endif      *enddo    t=1
     *do,i,1,NOK,1                                *GET,status,KP,i,KSEL          *if,status,EQ,1,THEN            *SET,POKEYPOINTS(t,1),i            *VGET,POKEYPOINTS(t,2),KP,i,LOC,X, , ,2            *VGET,POKEYPOINTS(t,3),KP,i,LOC,Y, , ,2            t=t+1          *endif        *enddo    t=1
   ALLSEL,ALL                                  *do,i,1,NOK1,1                              *if,POKEYPOINTS(i,1),EQ,KP,THEN          AGEN, ,All, , ,-POKEYPOINTS(i,2),-POKEYPOINTS(i,3),0, , ,1        *endif      *enddo    ADELE,Area
 *ENDIF                                    
 xT=a*cos(Theta*Pi/180)                  !创建裂缝及其周围区域  yT=a*sin(Theta*Pi/180)    K,NOK+1,0,0                                        K,NOK+2,(1-Ra)*a*cos(Theta*Pi/180),(1-Ra)*a*sin(Theta*Pi/180)    K,NOK+3,xT,yT    K,NOK+4,(1-Ra)*a*cos(Theta*Pi/180),(1-Ra)*a*sin(Theta*Pi/180)
   l,NOK+1,NOK+4    l,KP1,NOK+2    l,NOK+4,NOK+3    l,NOK+2,NOK+3
   k,NOK+5,xT-Ra*a*sin(Theta*Pi/180),yT+Ra*a*cos(Theta*Pi/180)    k,NOK+6,xT+Ra*a*cos(Theta*Pi/180),yT+Ra*a*sin(Theta*Pi/180)    k,NOK+7,xT+Ra*a*sin(Theta*Pi/180),yT-Ra*a*cos(Theta*Pi/180)
   LARC,NOK+4,NOK+5,NOK+3,Ra*a    LARC,NOK+7,NOK+2,NOK+3,Ra*a    LARC,NOK+5,NOK+6,NOK+3,Ra*a    LARC,NOK+6,NOK+7,NOK+3,Ra*a
   l,NOK+5,NOK+3    l,NOK+6,NOK+3    l,NOK+7,NOK+3
   l,NOK+6,KPe
 al,NOL+3,NOL+5,NOL+9  al,NOL+9,NOL+7,NOL+10  al,NOL+10,NOL+11,NOL+8  al,NOL+6,NOL+4,NOL+11  *if,tt,EQ,1,THEN              *do,i,1,NOK1,1              !确定KP和KPe之间的角度,即上、下地下之间的间隔                    *if,POKEYPOINTS(i,1),EQ,KP,THEN          KPx=POKEYPOINTS(i,2)        KPy=POKEYPOINTS(i,3)      *endif      *if,POKEYPOINTS(i,1),EQ,KPe,THEN        KPex=POKEYPOINTS(i,2)        KPey=POKEYPOINTS(i,3)      *endif    *enddo
   *if,KPex-KPx,EQ,0,THEN      Theta2=Pi/2    *else      K=(KPey-KPy)/(KPex-KPx)    Theta2=atan(K)    *endif
   *if,KPex,LT,KPx,THEN      *if,KPey,GT,KPy,THEN        Theta2=Pi/2+abs(Theta2)      *endif      *if,KPey,LT,KPy,THEN        Theta2=Pi+abs(Theta2)      *endif    *endif        *if,KPex,GT,KPx,THEN      *if,KPey,LT,KPy,THEN        Theta2=3/2*Pi+abs(Theta2)      *endif    *endif        *if,KPex,EQ,KPx,THEN      *if,KPey,LT,KPy,THEN        Theta2=3/2*Pi      *endif    *endif        *if,KPey,EQ,KPy,THEN      *if,KPex,LT,KPe,THEN        Theta2=Pi      *endif    *endif

   ext=-POKEYPOINTS(1,2)*sin(Theta2)+POKEYPOINTS(1,3)*cos(Theta2)        Kpext=POKEYPOINTS(1,1)      *do,i,2,NOK1,1        *if,-POKEYPOINTS(i,2)*sin(Theta2)+POKEYPOINTS(i,3)*cos(Theta2),GT,ext,THEN          ext=-POKEYPOINTS(i,2)*sin(Theta2)+POKEYPOINTS(i,3)*cos(Theta2)          KPext=POKEYPOINTS(i,1)        *endif      *enddo  *endif
 k=0  i=1  c=0  t=1  KPi=KP  condition=1  LSEL,U,,,ALL                                    *dowhile,condition                                    *if,POLINES(i,2),EQ,KPi,THEN        *if,POLINES(i,1),NE,C,THEN          LSEL,A, , ,POLINES(i,1)          KPi=POLINES(i,3)          C=POLINES(i,1)          i=0          t=t+1        *endif      *endif      *if,POLINES(i,3),EQ,KPi,THEN        *if,POLINES(i,1),NE,C,THEN          LSEL,A, , ,POLINES(i,1)          KPi=POLINES(i,2)          C=POLINES(i,1)          i=0          t=t+1        *endif      *endif    i=i+1      *if,KPi,EQ,KPe,THEN        condition=0      *endif    *enddo
 KSLL,S                                        *get,STATUS,KP,KPext,KSEL                    
   *if,STATUS,EQ,1,THEN      *if,tt,EQ,1,THEN        *do,i,1,NOL1,1          *if,POLINES(i,2),EQ,KP,THEN            *get,STATUS,LINE,POLINES(i,1),LSEL              *if,STATUS,EQ,1,THEN                ldele,POLINES(i,1)                KSEL,A,,,NOK+1                l,POLINES(i,3),NOK+1                HP=POLINES(i,2)                HPi=i                HPj=2                POLINES(i,2)=NOK+1              *endif          *endif              *if,POLINES(i,3),EQ,KP,THEN            *get,STATUS,LINE,POLINES(i,1),LSEL              *if,STATUS,EQ,1,THEN                ldele,POLINES(i,1)                KSEL,A,,,NOK+1                l,POLINES(i,2),NOK+1                HP=POLINES(i,3)                HPi=i                HPj=3                POLINES(i,3)=NOK+1              *endif          *endif                          *enddo      *endif        k=1                                  *else        ww=0        k=2                              
     *do,i,1,NOL1,1          *if,POLINES(i,2),EQ,KP,THEN            *if,ww,EQ,0,THEN              DP=POLINES(i,2)              DPi=i              DPj=2              POLINES(i,2)=NOK+1              ww=1            *endif          *endif              *if,ww,EQ,0,THEN            *if,POLINES(i,3),EQ,KP,THEN              DP=POLINES(i,3)              DPi=i              DPj=3              POLINES(i,3)=NOK+1              ww=1            *endif          *endif      *enddo      *endif
   *if,STATUS,EQ,1,THEN                              LSEL,A,,,NOL+k      LSEL,A,,,NOL+k+4      LSEL,A,,,NOL+k+6      LSEL,A,,,NOL+12        *if,tt,NE,1,THEN          *do,q,1,NN-1,1            LSEL,A,,,NOL-(4*q-3)            LSEL,A,,,NOL-(4*q-1)          *enddo        *endif              *if,tt,NE,1,THEN        *if,k,EQ,1,THEN          ldele,NOL-1          KSEL,A,,,NOK          KSEL,A,,,NOK+1          l,NOK,NOK+1          POLINES(HPi,HPj)=NOK+1        *endif      *endif    *else      LSEL,A,,,NOL+k      LSEL,A,,,NOL+k+4      LSEL,A,,,NOL+k+6      LSEL,A,,,NOL+12        *if,tt,NE,1,THEN          *do,q,1,NN-1,1            LSEL,A,,,NOL-(4*q-4)            LSEL,A,,,NOL-(4*q-2)          *enddo        *endif      *if,tt,NE,1,THEN        *if,k,EQ,1,THEN          ldele,NOL-1          KSEL,A,,,NOK          KSEL,A,,,NOK+1          l,NOK,NOK+1          POLINES(HPi,HPj)=NOK+1        *endif      *endif    *endif  al,all                                    !
 k=0  i=0  c=0  t=1  KPi=KP  condition=1
 LSEL,U,,,ALL  *dowhile,condition                                  *if,POLINES(i,2),EQ,KPi,THEN      *if,POLINES(i,1),NE,C,THEN        LSEL,A, , ,POLINES(i,1)        KPi=POLINES(i,3)        C=POLINES(i,1)        i=0        t=t+1      *endif    *endif    *if,POLINES(i,3),EQ,KPi,THEN      *if,POLINES(i,1),NE,C,THEN        LSEL,A, , ,POLINES(i,1)        KPi=POLINES(i,2)        C=POLINES(i,1)        i=0        t=t+1      *endif    *endif      i=i+1    *if,KPi,EQ,KPe,THEN      condition=0    *endif  *enddo
 KSLL,S                                          *get,STATUS,KP,KPext,KSEL                        
 *if,STATUS,EQ,1,THEN    *if,tt,EQ,1,THEN      *do,i,1,NOL1,1        *if,POLINES(i,2),EQ,KP,THEN          *get,STATUS,LINE,POLINES(i,1),LSEL            *if,STATUS,EQ,1,THEN              ldele,POLINES(i,1)              KSEL,A,,,NOK+1              l,POLINES(i,3),NOK+1              HP=POLINES(i,2)              HPi=i              HPj=2              POLINES(i,2)=NOK+1            *endif        *endif            *if,POLINES(i,3),EQ,KP,THEN          *get,STATUS,LINE,POLINES(i,1),LSEL            *if,STATUS,EQ,1,THEN              ldele,POLINES(i,1)              KSEL,A,,,NOK+1              l,POLINES(i,2),NOK+1              HP=POLINES(i,3)              HPi=i              HPj=3              POLINES(i,3)=NOK+1            *endif        *endif      *enddo    *endif      k=1  *else      k=2        *endif
 *if,STATUS,EQ,1,THEN    LSEL,A,,,NOL+k    LSEL,A,,,NOL+k+4    LSEL,A,,,NOL+k+6    LSEL,A,,,NOL+12      *if,tt,NE,1,THEN        *do,q,1,NN-1,1          LSEL,A,,,NOL-(4*q-3)          LSEL,A,,,NOL-(4*q-1)        *enddo      *endif      *if,tt,NE,1,THEN        *if,k,EQ,1,THEN          ldele,NOL-1          KSEL,A,,,NOK          KSEL,A,,,NOK+1          l,NOK,NOK+1          POLINES(HPi,HPj)=NOK+1        *endif      *endif  *else    LSEL,A,,,NOL+k    LSEL,A,,,NOL+k+4    LSEL,A,,,NOL+k+6    LSEL,A,,,NOL+12      *if,tt,NE,1,THEN        *do,q,1,NN-1,1          LSEL,A,,,NOL-(4*q-4)          LSEL,A,,,NOL-(4*q-2)        *enddo      *endif      *if,tt,NE,1,THEN        *if,k,EQ,1,THEN          ldele,NOL-1          KSEL,A,,,NOK          KSEL,A,,,NOK+1          l,NOK,NOK+1          POLINES(HPi,HPj)=NOK+1        *endif      *endif  *endif  al,all                                    !
 allsel,all
 *GET,mat,AREA,AREA,ATTR,MAT            !检测材料中裂纹扩展区域    GPLOT  /AUTO,1  /REP,FAST    FINISH  /PREP7  KSCON,NOK+3,rKSCON,1                            !创建网格
 *GET,LLength,LINE,NOL+12,LENG  LESIZE,NOL+12,,,nles                            !在连接 KP 和 KPe 的线上创建元素
 AESIZE,NOA+1,Ra*a/10                            !在裂纹的圆形区域上网格大小  AESIZE,NOA+2,Ra*a/10  AESIZE,NOA+3,Ra*a/10  AESIZE,Area,Ra*a/10    !MSHAPE,1,2D          AMESH,NOA+1  AMESH,NOA+2  AMESH,NOA+3  AMESH,Area
 MSHAPE,1,2D                                  !    AMESH,NOA+4  AMESH,NOA+5  /prep7  !*do,ii,1,NOK,1                                !  *GET,NODCS,KP,ii,ATTR,NODE  !    *if,ii,NE,KP,THEN  !      NMODIF,NODCS,,,,-Theta3,0,0  !    *endif  !*enddo
 clocal,33,,,,,-Theta3  CSYS,33  NROTAT,all  CSYS,0       allsel,all    AGEN,,all,,,-a*cos(Theta*Pi/180),-a*sin(Theta*Pi/180),0,,,1          CSKP,11,0,NOK+3,NOK+6,NOK+5,1,1    ATRAN,0,all,,,,0,1
 DSYS,0  CSYS,0    /sol                                    NNNN=1  *if,j,EQ,CYCLE,THEN      NNNN=5  *endif        NSUBS,NNNN  OUTRES,all,all  solve    FINISH    /POST1  SET,LAST  PATH,K,5,30,20                                
 KSEL,S,,,NOK+3  NSLK,S    *get,nextHN,NODE,,NXTH  PPATH,1,nextHN
 LSELE,S,,,NOL+4                                NSLL,S,1                      NSEL,R,LOC,X,-rKSCON/2,-rKSCON/8                    *get,nextHN,NODE,,NXTH    *get,DPu2,NODE,nextHN,U,X    *get,DPv2,NODE,nextHN,U,Y  PPATH,4,nextHN
 LSELE,S,,,NOL+4  NSLL,S,1  NSEL,R,LOC,X,-rKSCON,-rKSCON/1.5    *get,nextHN,NODE,,NXTH    *get,DPu3,NODE,nextHN,U,X    *get,DPu3x,NODE,nextHN,LOC,X    *get,DPv3,NODE,nextHN,U,Y  PPATH,5,nextHN
 LSELE,S,,,NOL+3                                NSLL,S,1  NSEL,R,LOC,X,-rKSCON/2,-rKSCON/8    *get,nextHN,NODE,,NXTH    *get,DPu4,NODE,nextHN,U,X    *get,DPv4,NODE,nextHN,U,Y  PPATH,2,nextHN
 LSELE,S,,,NOL+3  NSLL,S,1  NSEL,R,LOC,X,-rKSCON,-rKSCON/1.5    *get,nextHN,NODE,,NXTH    *get,DPu5,NODE,nextHN,U,X    *get,DPv5,NODE,nextHN,U,Y  PPATH,3,nextHN
 Lnode=abs(DPu3x)  allsell,all
 EPLOT
 KCALC,0,-mat,3,0    *GET,KI,KCAL,,K,1    *GET,KII,KCAL,,K,2
 DPP=(4*(DPu4-DPu2)-(DPu5-DPu3)/2)                          *if,DPP,LT,0,THEN      KII=-1*KII    *endif
   KIt=EMX/(3*(1+poisson)*(1+(3-poisson)/(1+poisson)))*sqrt(2*Pi/Lnode)*(4*(DPv4-DPv2)-(DPv5-DPv2)/2)    KIIt=EMX/(3*(1+poisson)*(1+(3-poisson)/(1+poisson)))*sqrt(2*Pi/Lnode)*(4*(DPu4-DPu2)-(DPu5-DPu3)/2)    rc=1/2/Pi*(KI/sigmay)*(KI/sigmay)            LSEL,S,,,NOL+10    NSLL,S,1    NSEL,U,LOC,X,-Ra*a/10,Ra*a/10    NSEL,R,S,X,,,,0          *do,ij,1,20,1        NODn=NODE(0,0,0)        *GET,NODxx,NODE,NODn,S,X        *GET,NODyy,NODE,NODn,S,Y        *GET,NODu,NODE,NODn,LOC,X                *SET,TSTRESSA(ij,1),NODxx        *SET,TSTRESSA(ij,2),NODyy        *SET,TSTRESSA(ij,3),NODxx-NODyy        *SET,TSTRESSA(ij,4),NODu                NSEL,U,,,NODn      *enddo            DETH1=0                                      *do,ij,1,20,1        DETH1=DETH1+TSTRESSA(ij,4)      *enddo            DETH2=0      *do,ij,1,20,1        DETH2=DETH2+TSTRESSA(ij,4)**2      *enddo            DETH3=0      *do,ij,1,20,1        DETH3=DETH3+TSTRESSA(ij,3)      *enddo            DETH=20*DETH2-DETH1**2            numerator1=0      *do,ij,1,20,1        numerator1=numerator1+TSTRESSA(ij,4)*TSTRESSA(ij,3)      *enddo            b2=(20*numerator1-DETH1*DETH3)/DETH            sigmaxxyy=0      *do,ij,1,20,1        sigmaxxyy=sigmaxxyy+TSTRESSA(ij,3)      *enddo      sigmaxxyy=sigmaxxyy/20            positiont=0      *do,ij,1,20,1        positiont=positiont+TSTRESSA(ij,4)      *enddo      positiont=positiont/20          Tstress=sigmaxxyy-b2*positiont        *set,FACTORS(NN,1),KI                            *set,FACTORS(NN,2),KII    *set,FACTORS(NN,3),Tstress    *SET,FACTORS(NN,6),appx    *SET,FACTORS(NN,7),appy          h1=-Pi/3    h2=Pi/3
     pocetk=-(1+(log(epsilon/Pi))/log(2))              
       *do,mb,1,pocetk,1          fy1=KI*sin(h1)+KII*(3*cos(h1)-1)          fy2=KI*sin(h2)+KII*(3*cos(h2)-1)          s=(h2+h1)/2          fys=KI*sin(s)+KII*(3*cos(s)-1)
           *if,fy1,NE,0,then            *if,fys,NE,0,then
             *if,fy1/abs(fy1),NE,fys/abs(fys),then                h2=s              *else                h1=s              *endif            *endif            *endif        *enddo              solution=(h1+h2)/2      theta=solution*180/Pi
     *SET,FACTORS(NN,4),Theta
           *if,lock,EQ,1,THEN        theta=0      *endif        *if,NN,LT,cycle,THEN                              FINISH    /PREP7
   ASEL,U,,,ALL                                  LSEL,U,,,ALL    KSEL,U,,,ALL
   ASEL,A,,,Area              *DO,i,1,5,1        ASEL,A,,,NOA+i      *ENDDO    ACLEAR,ALL    ADELE,ALL
     *DO,i,5,12,1              LSEL,A,,,NOL+i      *ENDDO    LDELE,ALL
   *DO,i,5,7,1              KSEL,A,,,NOK+i    *ENDDO    KDELE,ALL    KSEL,A,,,NOK+3      KSCON,NOK+3            ALLSEL,ALL          
   Theta3=Theta3+Theta    tt=0  *endif  *endif
 POLINES(HPi,HPj)=HP  POLINES(DPi,DPj)=DP    *SET,FACTORS(NN,5),app  a=ap  app=app+a    NN=NN+1  KP1=NOK+3
 /REPLO    /AUTO,1  /REP,FAST*enddo
 *GET,rotX,KP,KP,LOC,X                              *GET,rotY,KP,KP,LOC,Y  LOCAL,12,0,rotX,rotY,0,-Theta3,,,1,1,  DSYS,12  CSYS,12
 aplot
*ENDIF                                    
参考资料
  • On the Crack Extension in Plates Under Plane Loading and Transverse Shear

  • Mikula Jakub, Numerické modelování šišení trhlin v rámci platnosti LELM. Brno: Vysoké učení technické v Brně, Fakulta strojního inženýrství, 2012. 60s.

全文结束,感谢阅读。

来源:芷行说
ACT疲劳断裂UM裂纹理论材料传动DCSFASTANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-12
最近编辑:1年前
芷行说
本科 | 固体力学博士... 芷行说,致力精品,专注于有限元...
获赞 29粉丝 31文章 39课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈