theodoreyang
Subscriber

Hi DavidW,


Here is the APDL code. Thanks.


 


/prep7


/com *** Geometry 


length = 10.0           ! model centered at (0,0,0)


width = 10.0            ! geometry for each block


thickness = 10.0


 


xnum = 15    ! quantity of element on x


ynum = 15    ! quantity of element on y


znum = 20     ! quantity of element on z


 


et,1,185    ! element type


 


/com *** Material Properties *********************************


mp,ex,1,   2000.0    


mp,nuxy,1, 0.3


mp,alpx,1, 52e-6


 


/com *** Model ***** centered at (0,0,0)**********************


/com *** Corner made by 7 small blocks


BLOCK, 0, length, 0, width, 0, -thickness/4    ! x1,x2,y1,y2,z1,z2 


BLOCK, 0, -length, 0, width, 0, -thickness/4    


BLOCK, 0, -length, 0, -width, 0, -thickness/4   


BLOCK, 0, length, 0, -width, 0, -thickness/4    


BLOCK, 0, length, 0, width, 0, thickness   


BLOCK, 0, -length, 0, width, 0, thickness


BLOCK, 0, length, 0, -width, 0, thickness  


vglue,all


 


/com ***mesh


type,1


mat,1


 


x_size = length/xnum


y_size = width/ynum


z_size = thickness/znum


 


lesize, 7, x_size   ! element size on x


lesize, 8, y_size   ! element size on y


lesize, 9, z_size   ! element size on z


 


lesize, 97, x_size   ! element size on x


lesize, 92, y_size   ! element size on y


lesize, 85, z_size   ! element size on z


vmesh,all


 


/com *************************************************************


/com


/com                    INITIAL CRACK DATA


/com


/com *************************************************************


 


/com ***define crack position


 


x0 = 0


y0 = 0


z0 = z_size/2


 


xc = x_size/2


yc = y_size/2


zc = z_size/2


 


/com ***define enrichment identification***********************


 


esel,s,cent,x,-length*1,length*0.5


esel,r,cent,y,-width*1,width*0.5


esel,r,cent,z,-thickness/4,thickness/4


 


cm,testcmp_1,elem                    ! name the element set for xfenrich


allsel


xfenrich,ENRICH_1,testcmp_1     ! define the method: phantom node (default) or SIF


 


 


/com ***loop for crack level set identification***********************


 


esel,s,cent,x,x0-x_size*1,xc+x_size*0.499


esel,r,cent,y,y0-y_size*1,yc+y_size*0.499


esel,r,cent,z,z0,zc+z_size*0.499


 


cm, cenelem, elem    ! name the element set for vertical crack elements


nelem = 1000


iel = 0


Phi = 0.0


Psi = 0.0


*do, i, 1, nelem, 1


 iel = elnext(iel)


 *if, iel, ne, 0, then


  *do, j, 1, 8, 1


    nd = nelem(iel,j)


    Phi = nz(nd) - zc


    xfdata, ENRICH_1, LSM, iel, nd, Phi   


  *enddo


 *endif


*enddo


 


 


cm, crktipelem, elem


allsel,all


 


/com ******** Boundary conditions *********************


 


nsel,s,loc,x,0


nsel,r,loc,y,0,-width


nsel,r,loc,z,0,thickness


d,all,all,0


 


nsel,s,loc,x,0,-length


nsel,r,loc,y,0


nsel,r,loc,z,0,thickness


d,all,all,0


 


nsel,s,loc,x,0,-length


nsel,r,loc,y,0,-width


nsel,r,loc,z,0


d,all,all,0


 


nsel,s,loc,x,-length-x_size/2,-length+x_size/2


dsym,symm,x,0


 


nsel,s,loc,y,-width-y_size/2,-width+y_size/2


dsym,symm,y,0


 


allsel


 


/com ******** Temperature load *********************


 


Tref,150


BF,ALL,TEMP,25


 


/SOLU


 


autots,on


 


time, 1.0                  ! --- time


 


deltim,0.05,0.05,0.05


 


outres,all,all


 


tb,cgcr,1,,,STTMAX  ! crack growth criterion, max circon stress


tbdata,1,3


tb,cgcr,1,,,RLIN    ! rigid linear law


tbdata,1,0.04,,,0.05


 


CINT, NEW,1


CINT, CXFE,crktipelem


CINT, TYPE,STTMAX


CINT, RSWEEP,181,-60,60


CINT, NORM, 0, 3


 


CGROW,NEW,1


CGROW,CID,1


CGROW,METHOD,XFEM


CGROW,FCOPTION,MTAB,1


 


SOLVE                         


Save


 


/POST1  


SET,LAST