在 ansys中导入自定义本构模型的算例 邓肯-张模型的关键点是材料的弹性模量随大小主应力差及小主应力(围压)的变化而变化,用APDL 实现之的基本思路是:给每个单元定义一个材料号,分级施加荷载,在每个荷载步结束时提取出各单元的大小主应力,据此计算出下个荷载步的弹性模量Et,修改各单元之MP,用于下一步计算。 以下是一个简单算例,copy 出去可直接运行。 !!!常规三轴试验模拟 !!!by taomingx ing,NWPU !!!2003.7.16 FINISH /CLEAR /TITLE,Nu merical Simu lation of three ax es testing of soils /PREP7 *dim,SUy ,array ,50 !Settlement records *dim,Max Ps,array ,120 !Max history p1-p3 *dim,Max Ds,array ,120 !Max history Ds !*dim,EEt,array ,50 !Et of elememt !!!Du ncan-Chang Model !!!Sy mbols:c-粘滞力,Fai-内摩擦角,Sf-破坏强度(p1-p3)f,Ds-应力水平,Pa-大气压,P3-围压 *CREATE,Du ncan-Chang !Creat Macro file *afu n,deg !Unit of angle *set,Pa,1e5 *set,P1,-ArrS3(i) !注意:岩土工程中应力为拉负压正 *set,P3,-ArrS1(i) *if,P3,LT,0.1*Pa,then P3=0.1*Pa !围压最小取值 *endif Sf=2*(c*cos(Fai)+P3*sin(Fai))/(1-sin(Fai)) !Mohr-Cou lomb 破坏强度(p1-p3)f Ds=(P1-P3)/Sf !应力水平, *if,Ds,GT,0.95,then Ds=0.95 !应力水平最大取值 *endif !判断加卸荷,如果(P1-P3)小于历史最大值视为卸荷-再加荷过程 *if,Max Ps(i),LT,P1-P3,then Ei=k*Pa*(P3/Pa)**n Et=Ei*(1-Rf*Ds)**2 !加荷情况的切线模量 Max Ps(i)=P1-P3 !保存历史最大应力 *elseif,Max Ps(i),GE,P1-P3 Et=Ku r*Pa*(P3/Pa)**n !卸荷模量 *endif mp,ex,i,Et !修改单元i 的Et mp,nuxy,i,Mu *END !!!单元类型 et,1,42 !平面四节点单元 KEYOPT,1,3,2 !平面应变 !!!以下定义材料初始模量 mp,ex,1,3.728e7 !砂土的弹性模量 mp,nuxy,1,0.33 mp,dens,1,1800 !!!建立几何模型 blc4,0,0,0.08,0.15 !8cm X 15cm /PNUM,AREA,1 /REPLOT !!!网格划分 aesize,all,0.01 mat,1 amesh,all !!!边界条件 nsel,s,loc,y ,0 d,all,Uy !底边界竖向约束 nsel,s,loc,x ,0 d,all,Ux !左侧边界水平向约束 nsel,all /replot fini /SOLU time,0.01 !施加围压 sfl,all,pres,2e5 !200kPa solv e !!!分级施加荷载,实现非线性计算 !!!荷...