关于UMAT的简单例子,以更好的理解UMAT的逻辑

接触了abaqus的umat以后,通过几天的学习,才真正理解umat和Usdfld的区别,umat其实是讲的应力和应变的关系,即本构方程,而usdfld讲的是强度失效后的刚度矩阵如何折减,目前的认识,不一定准确。在进行umat计算时发现,经常出现一些莫名其妙的错误,遂在网上找了一个简单的例子,并理解了这个例子,最后成功地利用了这个umat例子计算出了变形结果。

理论基础如下:

对于经典的各向同性材料,其应力-应变关系为:(可参考材料力学书)

 

 

由此可得到一个6*6矩阵的本构方程,此方程可用于实体单元。

根据此基础理论,编制一个相当简单的fortran程序,如下:

 C     AN EASY SUBROUTINE FOR STEEL MATERIALS 
      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
     1     RPL,DDSDDT,DRPLDE,DRPLDT,
     2     STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
     3     NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
     4     CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C     
      INCLUDE 'ABA_PARAM.INC'
C     
      CHARACTER*80 CMNAME
      DIMENSION STRESS(NTENS),STATEV(NSTATV),
     1     DDSDDE(NTENS,NTENS),
     2     DDSDDT(NTENS),DRPLDE(NTENS),
     3     STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
     4     PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)
C     5     JSTEP(4)
C     ELASTIC USER SUB 
      PARAMETER (ONE = 1.D0,TWO = 2.D0)
C****************************
      E= PROPS(1)           !YOUNG'S MODULUS
      ANU = PROPS(2)           !POISON'S RATIO
      ALAMBDA=E*ANU/(ONE+ANU)/(ONE-TWO*ANU)
      AMU=E/(ONE+ANU)/2     !SHEAR MODULUS
      DO I = 1, NTENS
         DO J = 1, NTENS
         DDSDDE(I,J)=0.0
         END DO
      END DO
      DDSDDE(1,1) = (ALAMBDA+TWO*AMU)
      DDSDDE(2,2) = (ALAMBDA+TWO*AMU)
      DDSDDE(3,3) = (ALAMBDA+TWO*AMU)
      DDSDDE(1,2) = ALAMBDA
      DDSDDE(1,3) = ALAMBDA
      DDSDDE(2,3) = ALAMBDA
      DDSDDE(2,1) = ALAMBDA
      DDSDDE(3,1) = ALAMBDA
      DDSDDE(3,2) = ALAMBDA
      DDSDDE(4,4) = AMU
      DDSDDE(5,5) = AMU
      DDSDDE(6,6) = AMU
      DO I = 1, NTENS
         DO J = 1, NTENS
         STRESS(I)=STRESS(I)+ONE*DDSDDE(I,J)*DSTRAN(J)
         END DO
      END DO
      RETURN
      END

 

最后可成功进行计算 。


版权声明:本文为fiber_tape原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。