《一起学习》由会员分享,可在线阅读,更多相关《一起学习(9页珍藏版)》请在金锄头文库上搜索。
1、一起学习一起学习 UMATUMATZHANG chunyu1、什么时候用用户定义材料(User-defined material, UMAT)?很简单,当 ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一 种新的材料模型之前,最好对 ABAQUS 已经提供的模型心中有数,并且尽量使用现 有的模型,因为这些模型已经经过详细的验证,并被广泛接受。2、好学吗?需要哪些基础知识?先看一下 ABAQUS 手册(ABAQUS Analysis Users Manual)里的一段话:Warning: The use of this option generally requires con
2、siderable expertise. The user is cautioned that the implementation of any realistic constitutive model requires extensive development and testing. Initial testing on a single element model with prescribed traction loading is strongly recommended.但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹, 因为我们的任务不是开发一套完整的有限元
3、软件,而只是提供一个描述材料力学性 能的本构方程(Constitutive equation)而已。当然,最基本的一些概念和知识 还是要具备的,比如 应力(stress),应变(strain)及其分量; volumetric part 和 deviatoric part;模量(modulus)、泊松比(Poissons ratio)、拉美常数(Lame constant); 矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。3、UMAT 的基本任务?我们知道,有限元计算(增量方法)的基本问题是:已知第 n 步的结果(应力,应变等) ,; 然后给出一个应变增量, nn1nd计算新的应力
4、 。 UMAT 要完成这一计算,并要计算 Jacobian 矩阵1n DDSDDE(I,J) =。是应力增量矩阵(张量或许更合适), 是应变 增量矩阵。DDSDDE(I,J) 定义了第 J 个应变分量的微小变化对第 I 个应力分量带 来的变化。该矩阵只影响收敛速度,不影响计算结果的准确性(当然,不收敛自然 得不到结果)。4、怎样建立自己的材料模型?本构方程就是描述材料应力应变(增量)关系的数学公式,不是凭空想象出来 的,而是根据实验结果作出的合理归纳。比如对弹性材料,实验发现应力和应变同 步线性增长,所以用一个简单的数学公式描述。为了解释弹塑性材料的实验现象, 又提出了一些弹塑性模型,并用数学
5、公式表示出来。对各向同性材料(Isotropic material),经常采用的办法是先研究材料单向应 力-应变规律(如单向拉伸、压缩试验),并用一数学公式加以描述,然后把讲该 规律推广到各应力分量。这叫做“泛化“(generalization)。5、一个完整的例子及解释 下面这个 UMAT 取自 ABAQUS 手册,是一个用于大变形下的弹塑性材料模型。希 望我的注释能帮助初学者理解。需要了解 J2 理论。SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT,1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,D
6、TIME,TEMP,DTEMP,PREDEF,DPRED,2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)STRESSSTRESS-应力矩阵,在增量步的开始,保存并作为已知量传入UMAT ;在增量n步的结束应该保存更新的应力;1n STRANSTRAN-当前应变,已知 。 nDSTRANDSTRAN应变增量,已知。1nd STATEVSTATEV-状态变量矩阵,用来保存用户自己定义的一些变量,如累计塑性应变,粘
7、 弹性应变等等。增量步开始时作为已知量传入,增量步结束应该更新; DDSDDEDDSDDE=。需要更新 DTIMEDTIME时间增量 dt。已知。 NDINDI正应力、应变个数,对三维问题、轴对称问题自然是 3(11,22,33),平面问 题是 2(11,22);已知。 NSHRNSHR 剪应力、应变个数,三维问题时 3(12,13,23),轴对称问题是 1(12);已知。NTENSNTENS=NTENS+ NSHR,已知。 PROPSPROPS 材料常数矩阵,如模量啊,粘度系数啊等等;作为已知量传入,已知。 DROTDROT对 finite strain 问题,应变应该排除旋转部分,该矩阵提
8、供了旋转矩阵, 详见下面的解释。已知。 PNEWDTPNEWDT可用来控制时间步的变化。如果设置为小于 1 的数,则程序放弃当前计算, 并用新的时间增量 DTIME X PNEWDT 作为新的时间增量计算;这对时间相关的材料 如聚合物等有用;如果设为大余 1 的数,则下一个增量步加大 DTIME 为 DTIME X PNEWDT。可以更新。 其他变量含义可参看手册,暂时用不到。 CINCLUDE ABA_PARAM.INC 定义了一些参数,变量什么的,不用管 CCHARACTER*8 CMNAME CDIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(N
9、TENS,NTENS),1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS),2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3),3 DFGRD0(3,3),DFGRD1(3,3) 矩阵的尺寸声明 C C LOCAL ARRAYS C - C EELAS - ELASTIC STRAINS C EPLAS - PLASTIC STRAINS C FLOW - DIRECTION OF PLASTIC FLOW C - C 局部变量,用来暂时保存弹性应变、塑性应变分量以及流动方向
10、DIMENSION EELAS(6),EPLAS(6),FLOW(6) CPARAMETER(ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,SIX=6.D0,1 ENUMAX=.4999D0,NEWTON=10,TOLER=1.0D-6) C C - C UMAT FOR ISOTROPIC ELASTICITY AND ISOTROPIC MISES PLASTICITY C CANNOT BE USED FOR PLANE STRESS C - C PROPS(1) - E C PROPS(2) - NU C PROPS(3) - SYIELD AN HAR
11、DENING DATA C CALLS HARDSUB FOR CURVE OF YIELD STRESS VS. PLASTIC STRAIN C - C C ELASTIC PROPERTIES C获取杨氏模量,泊松比,作为已知量由 PROPS 向量传入EMOD=PROPS(1) EENU=PROPS(2) EBULK3=EMOD/(ONE-TWO*ENU) 3KEG2=EMOD/(ONE+ENU) 2GEG=EG2/TWO GEG3=THREE*EG 3GELAM=(EBULK3-EG2)/THREE DO K1=1,NTENSDO K2=1,NTENSDDSDDE(K1,K2)=ZER
12、OEND DOEND DO 弹性部分,Jacobian 矩阵很容易计算GGGJ2G 2G 2G 注意,在 ABAQUS 中,剪切应变采用工程剪切应变的定义,所以剪切j,ii,jijuu部分模量是 G 而不是 2G!C C ELASTIC STIFFNESS CDO K1=1,NDIDO K2=1,NDIDDSDDE(K2,K1)=ELAMEND DODDSDDE(K1,K1)=EG2+ELAMEND DODO K1=NDI+1,NTENSDDSDDE(K1,K1)=EGEND DO C C RECOVER ELASTIC AND PLASTIC STRAINS AND ROTATE FORWA
13、RD C ALSO RECOVER EQUIVALENT PLASTIC STRAIN C 读取弹性应变分量,塑性应变分量,并旋转(调用了 ROTSIG),分别保存在 EELAS 和 EPLAS 中; CALL ROTSIG(STATEV( 1),DROT,EELAS,2,NDI,NSHR)CALL ROTSIG(STATEV(NTENS+1),DROT,EPLAS,2,NDI,NSHR) 读取等效塑性应变 EQPLAS=STATEV(1+2*NTENS)先假设没有发生塑性流动,按完全弹性变形计算试算应力.1JnnC C CALCULATE PREDICTOR STRESS AND ELAST
14、IC STRAIN CDO K1=1,NTENSDO K2=1,NTENSSTRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1)END DOEELAS(K1)=EELAS(K1)+DSTRAN(K1)END DO C计算 Mises 应力 C CALCULATE EQUIVALENT VON MISES STRESS CSMISES=(STRESS(1)-STRESS(2)*2+(STRESS(2)-STRESS(3)*21 +(STRESS(3)-STRESS(1)*2DO K1=NDI+1,NTENSSMISES=SMISES+SIX*STRESS(K1)*2END DOSMISES=SQRT(SMISES/TWO) C 根据当前等效塑性应变,调用 HARDSUB 得到对应的屈服应力 C GET YIELD STRESS FROM THE SPECIFIED HARDENING CURVE CNVALUE=NPROPS/2-1CALL HARDSUB(SYIEL0,HARD,EQPLAS,PROPS(3),NVALUE) C C DETERMINE IF ACT