UMAT入门(1):弹性本构的编写

目录

UMAT的作用

UMAT的模板

各向同性弹性本构

各向同性弹性本构的UMAT程序

仿真结果与ABAQUS自带材料模型对比


UMAT的作用

本质上是用DDSDDEDSTRAN算出STRESS的增量以更新STRESS

      STRESS=STRESS+MATMUL(DDSDDE,DSTRAN)

UMAT的模板

      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
C     申明变量
C
      CHARACTER*8 CMNAME
      dimension stress(ntens),statev(nstatv),
     1 ddsdde(ntens,ntens),ddsddt(ntens),drplde(ntens),
     2 stran(ntens),dstran(ntens),time(2),predef(1),dpred(1),
     3 props(nprops),coords(3),drot(3,3),dfgrd0(3,3),dfgrd1(3,3)
C
C     代码段
C
      %定义DDSDDE
      %STRESS=STRESS+MATMUL(DDSDDE,DSTRAN)
C
      RETURN
      END

各向同性弹性本构

本构模型:

\begin{bmatrix} \sigma _{x}\\ \sigma _{y}\\ \sigma _{z}\\ \tau _{xy}\\ \tau _{xz}\\ \tau _{yz}\\ \end{bmatrix} = \begin{bmatrix} \lambda +2G & \lambda & \lambda & 0 & 0 &0 \\ \lambda & \lambda +2G & \lambda & 0 &0 &0 \\ \lambda& \lambda& \lambda +2G &0 &0 &0 \\ 0 &0 &0 &G &0 &0 \\ 0 &0 &0 &0 &G &0 \\ 0 &0 &0 &0 &0 &G \end{bmatrix} \begin{bmatrix} \varepsilon _{x}\\ \varepsilon _{y}\\ \varepsilon_{z}\\ \gamma_{xy}\\ \gamma__{xz}\\ \gamma__{yz}\\ \end{bmatrix}

其中:\lambdaG为拉姆常数;与杨氏模量和泊松比的换算关系如下:

\lambda =\frac{Ev}{(1+v)(1-2v))}

G=\frac{E}{2(1+v)}

《弹塑性力学》-陈明祥


各向同性弹性本构的UMAT程序

      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)

      include 'aba_param.inc'
 
      CHARACTER*8 CMNAME

      dimension stress(ntens),statev(nstatv),
     1 ddsdde(ntens,ntens),ddsddt(ntens),drplde(ntens),
     2 stran(ntens),dstran(ntens),time(2),predef(1),dpred(1),
     3 props(nprops),coords(3),drot(3,3),dfgrd0(3,3),dfgrd1(3,3)

      EMOD=PROPS(1)*1.D0
      VMOD=PROPS(2)*1.D0
	  LAMBDA=EMOD*VMOD/((1+VMOD)*(1-2*VMOD))
	  G=EMOD/(2*(1+VMOD))

      DDSDDE=DDSDDE*0.D0

      IF (NTENS.NE.6) THEN
         WRITE(6,*) '***ERROR - UNSUPPORTED NTENS***'
         STOP
      END IF

      DO I=1,3
         DO J=1,3
            IF (I.EQ.J) THEN
               DDSDDE(I,J)=LAMBDA+2*G
            ELSE
               DDSDDE(I,J)=LAMBDA
            END IF
         END DO
      END DO

      DO I=4,6
         DDSDDE(I,I)=G
      END DO
	  
	  DO I=1,6
	     WRITE(6,*) DDSDDE(I,1),DDSDDE(I,2),DDSDDE(I,3),DDSDDE(I,4),DDSDDE(I,5),DDSDDE(I,6)
	  END DO
	  
      STRESS=STRESS+MATMUL(DDSDDE,DSTRAN)

      RETURN
      END

仿真结果与ABAQUS自带材料模型对比

ABAQUS MISES STRESS FIELD
UMAT MISES STRESS FIELD

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值