小弟刚接触apdl编程,麻烦各位大侠高手帮我看下下边的小程序,程序是根据《ansys11.0土木工程中的应用》一书中的命令流改编的,小程序的主要目的是想要利用apdl编程自动实现边坡强度折减法求安全系数,现程序无法终止,个人觉得是不收敛标准在程序中没有很好地表达而出现的问题,劳烦各位帮我看下程序,在下感激不尽,谢谢!(程序见下) 4=<tWa|@9
!(1)创建物理环境 1`ayc|9BR
/COM, Structural kuyjnSo9i
/TITLE, Slope stability Analysis 'AN>`\mR$
/FILNAM,support,1 vz.>~HBP
!(2)建立模型 Z}$TKO*u
/PREP7 Po%LE]v,
!定义单元类型 y;_% W
ET,1,PLANE82 !定义边坡围岩单元
nt*Hc1I
KEYOPT,1,3,2 !求解类型为平面应变 !*RqCS,
!建立几何模型 =UUU$hq2
!创建边坡线模型线 DL$@?.?I
K,1,,,, !创建关键点1 ,]bB9tid
K,2,-800,,, -f*P
nxg
K,3,-800,-800,, DC{>TC[p1k
K,4,1200,-800,, sMu]
/'7
K,5,1200,,, ,) J~ ,^f6
K,6,1200,378,, aDO!
K,7,430,378,, 9IX/wm"
l,1,2 !连接关键点1、2生成直线L1 y=?)n\f
l,2,3 I(S`j[U
l,3,4 yw];P
o,
l,4,5 4R18A=X
l,5,6 }zhGS!fO
l,6,7 EoK~S\dS
l,1,7 wgCa58H76
l,1,5 '!/<P"5t
!创建边坡面模型 Fu!RhsW5j
al,1,2,3,4,8 !由线L1、L2、L3、L4、L8生成一个面A1 0lhVqy}:}o
al,5,6,7,8 !由线L5、L6、L7、L8生成一个面A2 ;4Y%PVz~D
/PNUM, area, on !打开面号开关 R(q~ -3~
*set,coho,9.0e5 D$t k<{)oB
*set,frio,42.8 *98$dQR$
*set,ait1,0.02 /p8dZ+X
*set,k11,1.0 6I@h9uIsze
*set,k12,4.0 O,Cb"{qH8
*set,ks,(k11+k12)/2 phM>.y_
*set,zz,k12-k11-ait1 nBk)WX&[K
*set,pi,3.14 |*}4 m'c
*DOWHILE,zz u ~A6bK*
*set,coh1,coho/ks 5[c^TJ3
*set,fri1,atan(tan(frio*pi/180)/ks) >=[(^l
!定义材料属性 feQ **wI
MP,EX,1,3E10 }Y;K~J
MP,PRXY,1,0.25 ty8v
6J#
MP,DENS,1,2500 !定义塑性模型 PLK3v4kVM!
TB,DP,1 !定义数据表1 ")d`dj\o
TBDATA,1,coh1,fri1 !给数据表输入数据 dqN5]Sb2B
!划分网格生成有限元模型 |yx6X{$k
!设置网格份数 RzWXKBI\E]
lsel,s,,,3 ,3,0 !选择线L3 yUpgoX(6
lesize,all,,,26 !把所选择线分为26段 0#nPbe,Lj
lsel,s,,,1,2,1 !选择线L1和L2 FCnm1x#
lsel,a,,,4 !附加选择线L1 ;q*e=[_DF
lesize,all,,,10 !把所选择线分为10段 o!)3?
lsel,s,,,6,8,2 !选择线L6和L8 M5 <@~V/[
lesize,all,,,16 !把所选择线分为16段 On?p 9^9
lsel,s,,,5,7,2 !选择线L5和L7 : |>Gc39`t
lesize,all,,,12 !把所选择线分为12段 rqY`8Ry2M
lccat,1,8 +E{|63~q
mat,1 !给边坡围岩1赋予1号材料特性 z11O F
type,1 '&\kxNglJ
mshkey,0 !设定自由网格划分 h5(4*$%
mshape,0 !设定四边形网格划分 4^M
amesh,1 !划分面积A1 r zt Ru
amesh,2 !划分面积A2 y3fGWa*7e
allsel euC&0Ee2
!保存网格模型 nDHTV!]<
save,Slope-grid.db Hv2De0W
!(3)施加约束和荷载 oH_;4QU4y
!边坡两侧施加X方向约束 @3zg=?3
nsel,s,loc,x,-800 !选择X=-800线上所有节点 ZMel{w`n
nsel,a,loc,x,1200 !选择X=1200线上所有节点 rx] @A
d,all,ux !对所选择节点约束X方向位移 v%q0OX>9X"
allsel BocSwf;v.
!边坡底部施加约束 <yd{tD$A*
nsel,s,loc,y,-800 !选择Y=-800线上所有节点 )ubiB^g'm
d,all,uy !对所选择节点约束X、Y方向位移 ZpnxecJUJ
d,all,ux zG(\+4GE!
!施加重力加速度 MdvcnaCG
acel,,9.8 2nR[Xh?L
!(4)求解 9jw\s P@
/solu k |eBJ%
!求解设置 V,cBk
antype,static !设定为静力求解 2AMo:Jqv
nsubst,100 !设定最大子步数为100 DQr Y*nH
pred,on !打开时间步长预测器 e
J6$-r
nropt,full !设定牛顿-拉普森选项 $m/)FnU/
nlgeom,on !打开大位移效果 B]Thn
lnsrch,on !打开线性搜索 ' ~8KSF*!p
outres,all,all !输出所有项 lhqg$lb
*set,ITLIM,0.005 0N$v"uX@
cnvtol,f,,ITLIM,2,0.5 !力收敛准则设定 ;C2K~8,
cnvtol,u,,0.05,2,1 !位移收敛准则设定 RS8Hf~0G
!二分法实现过程 }hhGu\
*IF,ITLIM,LT,0.005,THEN \SBc;
k11=ks Y\No4w ^|d
k12=k12 >Wv;R2|
*ELSEIF,ITLIM,GT,0.005 Le\?+h42>
k12=ks A<??T[
k11=k11 PpAu!2lt9
*ELSE NxsBX:XDn
ks=(k11+k12)/2 "vOwd.(?N
*ENDIF !wNr3LG
allsel <i&_ooX
solve !进行求解 Fvbh\m
~
save,F1,db !把F=1时求解结果保存 ~vyf4TF<#
*ENDDO 4rLL[??
!(5)后处理
K~R`%r_
/POST1 FY#C.mL
INRES,ALL )r
jiY%F$
FILE,file,rst ?.Ca|H<
SET,LAST nCdR EXw
*GET, nessus_result, ,ks, , 'h,VR=e<
parsave,scaler,ansys_respe,param ?!` /m|"
* -8&[D0