裂纹问题没有做过,不太清楚,不过你可以参考相应的例子比对一下,比如VM143就是裂纹的例子
另外在附一个裂纹的分析实例
- !12.2 均布拉力作用下含裂纹板的应力强度因子计算
- ! 本程序来源于邢静忠等编著的《ANSYS分析实例与工程应用》,机械工业出版社(2004年)
- ! (1) 定义将二维SOLID45模型通过添加1/4位置的中间节点转化成SOLID95裂纹尖端单元的宏程序
- *CREATE,FRACT,MAC
- ! MACRO TO CREATE 3D SOLID95 CRACK TIP ELEMENTS FROM 3D SOLID45 ELEMENTS
- ! MAKE A COMPONENT CONTAINING THE CRACK TIP NODES (CRACKTIP)
- ! THE CRACK TIP IS BETWEEN NODES K AND O
- ! SET ELEMENT TYPE TO POINT TO SOLID95
- ! SET ARG1 TO N (THE TYPE OF THE ELEMENTS AROUND THE CRACK TIP)
- /NOPR
- NSEL,ALL
- *GET,N,NODE,,NUM,MAX
- CMSEL,S,CRACKTIP
- ESLN
- *GET,ELMAX,ELEM,,NUM,MAX
- *DO,IEL,1,ELMAX
- ELMI=IEL
- *IF,ELMI,LE,0,EXIT
- *GET,ELTYPE,ELEM,ELMI,ATTR,TYPE
- *IF,ELTYPE,NE,ARG1,CYCLE
- N3 = NELEM(ELMI,3)
- *IF,NSEL(N3),LE,0,CYCLE
- N7 = NELEM(ELMI,7)
- *IF,NSEL(N7),LE,0,CYCLE
- N1 = NELEM(ELMI,1)
- N2 = NELEM(ELMI,2)
- N5 = NELEM(ELMI,5)
- N6 = NELEM(ELMI,6)
- X3 = 0.75*NX(N3)
- Y3 = 0.75*NY(N3)
- Z3 = 0.75*NZ(N3)
- X = 0.25*NX(N2) + X3
- Y = 0.25*NY(N2) + Y3
- Z = 0.25*NZ(N2) + Z3
- N = N + 1
- N10 = N
- N,N10,X,Y,Z
- X = 0.25*NX(N1) + X3
- Y = 0.25*NY(N1) + Y3
- Z = 0.25*NZ(N1) + Z3
- N = N + 1
- N12= N
- N,N12,X,Y,Z
- X7 = 0.75*NX(N7)
- Y7 = 0.75*NY(N7)
- Z7 = 0.75*NZ(N7)
- X = 0.25*NX(N6) + X7
- Y = 0.25*NY(N6) + Y7
- Z = 0.25*NZ(N6) + Z7
- N = N + 1
- N14 = N
- N,N14,X,Y,Z
- X = 0.25*NX(N5) + X7
- Y = 0.25*NY(N5) + Y7
- Z = 0.25*NZ(N5) + Z7
- N = N + 1
- N16 = N
- N,N16,X,Y,Z
- N4=N3
- N8=N7
- NSEL,ALL
- TYPE,3
- EN,ELMI,N1,N2,N3,N4,N5,N6,N7,N8
- EMORE,0,N10,0,N12,0,N14,0,N16
- EMORE,
- *ENDDO
- CMSEL,U,CRACKTIP
- NUMMRG,NODE
- NSEL,ALL
- ESEL,ALL
- /GOPR
- *END
- ! (2) 在前处理模块设置工程选项,分析类型,单元类型和材料参数
- FINISH
- /CLEAR,NOSTART
- /FILENAME,EX12.2
- /PREP7
- SMRT,OFF
- /TITLE, EX12.2, STRESS INTENSITY - CRACK IN FINITE WIDTH PLATE(SOLID95)
- C*** BROWN AND SRAWLEY, ASTM SPECIAL TECHNICAL PUBLICATION NO. 410.
- /COM, ****** CRACK IN 3-DIMENSIONS USING SOLID45 AND SOLID95
- ANTYPE,STATIC
- ET,1,SOLID45
- ET,2,SOLID45
- ET,3,SOLID95
- MP,EX,1,207E3
- MP,NUXY,1,0.3
- ! (3) 在柱坐标系下定义节点
- CSYS,1
- N,1
- NGEN,9,20,1
- N,11,20.32
- N,171,20.32,180
- FILL,11,171,7,31,20
- CSYS,0
- FILL,1,11,9,2,1,9,20,3 为3
- N,15,101.6
- N,75,101.6,127
- FILL,15,75,2,35,20
- N,155,-25.4,127
- FILL,75,155,3,95,20
- N,172,-25.4
- FILL,155,172,5,177,-1,,,0.15
- FILL,11,15,3,,,7,20,3
- NGEN,2,200,1,177,,,,6.35
- ! (4) 定义单元连接
- /View,1,1,1,1
- /PNUM,NODE,1
- E,2,22,1,1,202,222,201,201
- EGEN,8,20,-1
- E,2,3,23,22,202,203,223,222
- EGEN,8,20,-1
- EGEN,9,1,-8
- EGEN,5,1,73,78
- E,171,151,173,172,371,351,373,372
- E,151,131,174,173,351,331,374,373
- E,131,132,175,174,331,332,375,374
- EGEN,3,1,-1
- E,134,135,155,177,334,335,355,377
- TYPE,2
- EMODIF,1
- *REPEAT,8,1
- NUMMRG,NODE
- ! (5) 定义位移约束
- NSEL,S,LOC,X,0
- NSEL,R,LOC,Y,0
- CM,CRACKTIP,NODE
- /NERR,0
- FRACT,2
- /NERR,DEFA
- /OUTPUT
- OUTPR,,ALL
- OUTPR,VENG,ALL
- NSEL,S,LOC,X,-25.4
- DSYM,SYMM,X
- NSEL,S,LOC,X,0,101.6
- NSEL,R,LOC,Y,0
- DSYM,SYMM,Y
- NSEL,ALL
- D,ALL,UZ
- NSEL,S,LOC,Y,127
- SF,ALL,PRES,-0.0038902
- NSEL,ALL
- ESEL,ALL
- /VIEW,1,0,0,1
- EPLOT
- FINISH
- ! (6) 在求解模块开始求解
- /OUTPUT,SCRATCH
- /SOLU
- SOLVE
- FINISH
- /OUTPUT
- ! (7) 在后处理模块中,定义路径后计算应力强度因子
- /POST1
- ETABLE,SENE,SENE
- ETABLE,VOLU,VOLU
- C*** IN POST1 DETERMINE KI (STRESS INTENSITY FACTOR) USING KCALC
- PATH,KI1,3,,48
- PPATH,1,1
- PPATH,2,406
- PPATH,3,162
- KCALC,,,1
- *GET,KI1,KCALC,,K,1
- ! (8) 定义完成J积分计算的宏程序JIN1
- ! *********************************************************************
- ! ************************** J-INTEGRAL USER FILE ******************
- ! *******************************************************************
- ! ***NOTE:- IN GENERAL USAGE, THE USER FILE WOULD BE AVAILABLE IN THE
- ! LOCAL DIRECTORY RATHER THAN BEING CREATED IN THE INPUT
- ! *******************************************************************
- *CREATE,JIN1
- STINFC
- SEXP,W,SENE,VOLU,1,-1
- PATH,JINT,4,50,48
- PPATH,1,ARG1
- PPATH,2,ARG2
- PPATH,3,ARG3
- PPATH,4,ARG4
- PDEF,W,ETAB,W
- PCALC,INTG,J,W,YG
- *GET,JA,PATH,,LAST,J
- PDEF,CLEAR
- PVECT,NORM,NX,NY,NZ
- PDEF,INTR,SX,SX
- PDEF,INTR,SY,SY
- PDEF,INTR,SXY,SXY
- PCALC,MULT,TX,SX,NX
- PCALC,MULT,C1,SXY,NY
- PCALC,ADD,TX,TX,C1
- PCALC,MULT,TY,SXY,NX
- PCALC,MULT,C1,SY,NY
- PCALC,ADD,TY,TY,C1
- *GET,DX,PATH,,LAST,S
- DX=DX/100
- PCALC,ADD,XG,XG,,,,-DX/2
- PDEF,INTR,UX1,UX
- PDEF,INTR,UY1,UY
- PCALC,ADD,XG,XG,,,,DX
- PDEF,INTR,UX2,UX
- PDEF,INTR,UY2,UY
- PCALC,ADD,XG,XG,,,,-DX/2
- C=(1/DX)
- PCALC,ADD,C1,UX2,UX1,C,-C
- PCALC,ADD,C2,UY2,UY1,C,-C
- PCALC,MULT,C1,TX,C1
- PCALC,MULT,C2,TY,C2
- PCALC,ADD,C1,C1,C2
- PCALC,INTG,J,C1,S
- *GET,JB,PATH,,LAST,J
- JINT=2*(JA-JB)
- PDEF,CLEAR
- *END
- ! (9) 在后处理模块用J积分确定应力强度因子KI
- C**************** IN POST1 DETERMINE KI FROM J-INTEGRAL
- CON1=207E3/(1-(0.3*0.3))
- *ULIB,JIN1
- *USE,STINFC,4,45,125,164
- KI2=SQRT(CON1*JINT)
- *STATUS,KI1
- *STATUS,KI2
- ! (10) 定义数组,将结果保存到这些数组
- *DIM,LABEL,CHAR,2,2
- *DIM,VALUE,,2,3
- LABEL(1,1) = 'BY DISP ','BY J-'
- LABEL(1,2) = 'EXTRP ','INT'
- *VFILL,VALUE(1,1),DATA,0.03561,0.03561
- *VFILL,VALUE(1,2),DATA,KI1,KI2
- *VFILL,VALUE(1,3),DATA,ABS(KI1/0.03561),ABS(KI2/0.03561)
- SAVE,TABLE_1
- FINISH
- ! (11) 改用PLANE82单元重新计算
- /CLEAR, NOSTART
- /FILENAME,EX12.2B
- /PREP7
- SMRT,OFF
- /TITLE, EX12.2B, FRACTURE MECHANIC - CRACK IN A FINITE WIDTH PLATE(PLANE82)
- /COM, ****** CRACK IN 2-DIMENSIONS USING 2-D PLANE82 ******
- ET,1,PLANE82,,,2
- MP,EX,1,207E3
- MP,NUXY,1,0.3
- ! (12) 定义关键点和线,对称位移条件后将面划分为面单元
- K,1
- K,2,101.5
- K,3,101.6,127
- K,4,-25.4,127
- K,5,-25.4
- L,1,2
- L,2,3
- LESIZE,2,,,4
- L,3,4
- LESIZE,3,,,4
- L,4,5,
- LESIZE,4,,,6,.2
- L,5,1
- ESIZE,,5
- KSCON,1,3.81,1,8
- AL,1,2,3,4,5
- DL,1,1,SYMM
- DL,4,1,SYMM
- SFL,3,PRES,-0.0038902
- AMESH,1
- OUTPR,ALL
- FINISH
- ! (13) 进入求解模块求解
- /OUTPUT,SCRATCH
- /SOLU
- SOLVE
- FINISH
- /OUTPUT
- ! (14) 在后处理模块显示计算结果
- /POST1
- ETABLE,SENE,SENE
- ETABLE,VOLU,VOLU
- C*** IN POST1 DETERMINE KI (STRESS INTENSITY FACTOR) USING KCALC
- NSEL,S,LOC,Y,0
- NSEL,R,LOC,X,0
- *GET,NOD1,NODE,,NUM,MIN
- NSEL,A,LOC,Y
- NSEL,R,LOC,X,-0.127,-3.683
- *GET,NOD2,NODE,,NUM,MIN
- NSEL,A,LOC,Y
- NSEL,R,LOC,X,-3.683,-3.937
- *GET,NOD3,NODE,,NUM,MIN
- NSEL,ALL
- PATH,KI2,3,,48
- PPATH,1,NOD1
- PPATH,2,NOD2
- PPATH,3,NOD3
- KCALC,,,1
- *GET,KI1,KCALC,,K,1
- ! (15) 由J积分确定应力强度因子KI
- C**************** IN POST1 DETERMINE KI FROM J-INTEGRAL
- CSYS,1
- NSEL,S,LOC,X,12.7,20.32
- NSEL,R,LOC,Y,-1,1
- *GET,NOD4,NODE,,NUM,MAX
- NSEL,S,LOC,X,12.7,20.32
- NSEL,R,LOC,Y,35,55
- *GET,NOD5,NODE,,NUM,MAX
- NSEL,S,LOC,X,12.7,20.32
- NSEL,R,LOC,Y,120,145
- *GET,NOD6,NODE,,NUM,MAX
- NSEL,S,LOC,X,12.7,20.32
- NSEL,R,LOC,Y,179,181
- *GET,NOD7,NODE,,NUM,MIN
- NSEL,ALL
- CSYS,0
- *USE,STINFC,NOD4,NOD5,NOD6,NOD7
- CON1=207E3/(1-(0.3*0.3))
- KI2=SQRT(CON1*JINT)
- *STATUS,KI1
- *STATUS,KI2
- ! (16) 定义数组,将结果保存到这些数组
- *DIM,LABEL,CHAR,2,2
- *DIM,VALUE,,2,3
- LABEL(1,1) = 'BY DISP ','BY J-'
- LABEL(1,2) = 'EXTRP ','INT'
- *VFILL,VALUE(1,1),DATA,0.03561,0.03561
- *VFILL,VALUE(1,2),DATA,KI1,KI2
- *VFILL,VALUE(1,3),DATA,ABS(KI1/0.03561),ABS(KI2/0.03561)
- SAVE,TABLE_2
- ! (17) 从数据库文件中恢复计算结果后,将其输出到结果文件EX12_2
- RESUME,TABLE_1
- /COM
- /OUT,EX12_2,out
- /COM,------------------- EX12.2 RESULTS COMPARISON --------------
- /COM,
- /COM, | TARGET | ANSYS | RATIO
- /COM,
- /COM,USING SOLID95 AND SOLID45 (3-D ANALYSIS)
- *VWRITE,LABEL(1,1),LABEL(1,2),VALUE(1,1),VALUE(1,2),VALUE(1,3)
- (1X,A8,A8,' ',F10.5,' ',F10.5,' ',1F5.3)
- /NOPR
- RESUME,TABLE_2
- /GOPR
- /COM,
- /COM,USING PLANE82 (2-D ANALYSIS)
- *VWRITE,LABEL(1,1),LABEL(1,2),VALUE(1,1),VALUE(1,2),VALUE(1,3)
- (1X,A8,A8,' ',F10.5,' ',F10.5,' ',1F5.3)
- /COM,-----------------------------------------------------------
- /OUT
- FINISH
- *LIST,EX12_2,out
复制代码
|