找回密码
 注册
Simdroid-非首页
查看: 276|回复: 11

[子程序] Anand模型子程序

[复制链接]
发表于 2016-12-16 15:27:57 | 显示全部楼层 |阅读模式 来自 江苏南京
Anand Constitutive Model
      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
      DIMENSION ETS(NTENS),EPLAS(NTENS),EPLASI(NTENS),DEPLAS(NTENS),
     5        STRANI(NTENS),DSTRS(NTENS)
C
C -----------------------------------------------------------
C UMAT FOR TPCDCCM
C -----------------------------------------------------------
C PROPS(1) - YOUNG'S MODULUS
C PROPS(2) - POISSON RATIO
C PROPS(3) - THERMAL EXPANSSION COEFFICIENT
C PROPS(4) - Reference Temperature

C PARAMETERS OF ANAND MODEL:

C PROPS(5) - A
C PROPS(6) - Q
C PROPS(7) - Ksi
C PROPS(8) - m
C PROPS(9) - h0
C PROPS(10) - s~
C PROPS(11) - n
C PROPS(12) - a
C PROPS(13) - S0
C -----------------------------------------------------------
C
      IF (NDI.NE.3) THEN
      WRITE(6,1)
   1  FORMAT (//,30X,'***ERROR - THIS UMAT MAY ONLY BE USED FOR ',
     * 'ELEMENTS WITH THREE DIRECT STRESS COMPONENTS')
      ENDIF
C
C ELASTIC PROPERTIES
C
      EMOD=PROPS(1)
      ENU=PROPS(2)
      IF(ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499
      EBULK3=EMOD/(1.-2.*ENU)
      EG2=EMOD/(1.+ENU)
      EG=EG2/2.
      EG3=3.*EG
      ELAM=(EBULK3-EG2)/3.
C
C ELASTIC STIFFNESS
C
      DO 20 K1=1,NTENS
      DO 10 K2=1,NTENS
      DDSDDE(K2,K1)=0.0
  10  CONTINUE
  20  CONTINUE
C
      DO 40 K1=1,NDI
      DO 30 K2=1,NDI
      DDSDDE(K2,K1)=ELAM
  30  CONTINUE
      DDSDDE(K1,K1)=EG2+ELAM
  40  CONTINUE
      DO 50 K1=NDI+1,NTENS
      DDSDDE(K1,K1)=EG
  50  CONTINUE
C
C READ THE MATERIAL PARAMETERS OF ANAND MODEL
C
        TEC=PROPS(3)
        RTEMP=PROPS(4)
      CA=PROPS(5)
      Q=PROPS(6)
      AKSI=PROPS(7)
      AM=PROPS(8)
        H0=PROPS(9)
        SBAR=PROPS(10)
        AN=PROPS(11)
      A=PROPS(12)
        S0=PROPS(13)
        R=8.314
C     
C GET STRAIN AT THE BEGIN AND END OF INCREMENT
C
      DO 60 K=1,NTENS
        STRANI(K)=STRAN(K)
        STRAN(K)=STRAN(K)+DSTRAN(K)
  60  CONTINUE
C
C GET TEMPERATURE AT THE BEGIN AND END OF INCREMENT
C
        TEMPI=TEMP
        TEMP=TEMP+DTEMP
C
C GET INITIAL VALUES OF STATE VARIABLES
C
      DO 70 I=1, NTENS
        EPLAS(I)=STATEV(I)
        EPLASI(I)=EPLAS(I)
  70  CONTINUE
      IF(STATEV(1+NTENS).EQ.0.0) STATEV(1+NTENS)=S0
      S=STATEV(1+NTENS)
C
C CALCULATE THE EQUIVALENCE PLASTIC STRESS
C
C MEAN STRESS
      STRSM=0.0
        DO 71 J=1,NDI
        STRSM=STRSM+STRESS(J)
  71  CONTINUE
        STRSM=STRSM/3

C DEVIATORIC STRESSES
        DO 73 J=1,NDI
        DSTRS(J)=STRESS(J)-STRSM
      DSTRS(J+NDI)=STRESS(J+NDI)
  73  CONTINUE

C EQUIVALENCE PLASTIC STRESS
      EQSTRESS=0.0
        DO 75 J=1,NDI
        EQSTRESS=EQSTRESS+DSTRS(J)*DSTRS(J)
        EQSTRESS=EQSTRESS+2.*DSTRS(J+NDI)*DSTRS(J+NDI)
  75  CONTINUE
        EQSTRESS=SQRT(1.5*EQSTRESS)
        WRITE(6,*) 'EQUIVALENCE PLASTIC STRESS=',EQSTRESS
C
C UPDATE THE PLASTIC STRAINS
C
      OMN=DTIME*CA*EXP(-Q/(R*TEMPI))
        PP=1./AM
        IF(EQSTRESS.EQ.0.) THEN
        COEF0=0.0
        ELSE
          COEF0=(SINH(AKSI*EQSTRESS/S))**PP/EQSTRESS
        END IF
          COEF=OMN*COEF0
        DO 120 K=1,NTENS
        EPLAS(K)=EPLASI(K)+1.5*COEF*DSTRS(K)
      DEPLAS(K)=1.5*COEF*DSTRS(K)
120         CONTINUE
C
C CALCULATE THE EQUIVALENT INCREMENTAL PLASTIC STRAINS
C
      EQPS=0.0
        DO 76 J=1,NTENS
        EQPS=EQPS+DEPLAS(J)*DEPLAS(J)
  76  CONTINUE
      EQPS=SQRT(2.0*EQPS/3.0)
      write(6,*) 'EQUIVQLENCE STRAIN=',EQPS
C
C CALCULATE THE SATURATED VALUE OF PLASTIC DEFORMATION
C
      OMP=EXP(Q/(R*TEMPI))
      SSAT=SBAR*(OMP*EQPS/(DTIME*CA))**AN
C
C UPDATE THE INTERNAL VARIABLE
C
      IF(SSAT.EQ.0.0) THEN
        CJ=1.0
        ELSE
      CJ=1.-S/SSAT
        END IF
        IF(CJ.GT.0.) THEN
        SCOE=H0*(ABS(CJ))**A
        ELSE
      SCOE=-H0*(ABS(CJ))**A
        END IF
        S=S+SCOE*EQPS
        WRITE(6,*) 'FLOW RESISTENCE FORCE: S=',S
C
C UPDATE THE STATE VARIABLES
C
      DO 128 K=1,NTENS
        STATEV(K)=EPLAS(K)
128  CONTINUE
      STATEV(1+NTENS)=S
C
C UPDATE STRESSES
C
      DO 110 K=1,NDI
        ETS(K)=STRAN(K)-EPLAS(K)-TEC*(TEMP-RTEMP)
        ETS(K+NDI)=STRAN(K+NDI)-EPLAS(K+NDI)
110  CONTINUE

        DO 68 J=1,NTENS
        STRESS(J)=0.0
  68  CONTINUE

      DO 92 I=1, NTENS
        DO 98 J=1,NTENS
        STRESS(I)=STRESS(I)+DDSDDE(I,J)*ETS(J)
  98  CONTINUE
  92  CONTINUE


        RETURN
        END
我在作焊点热疲劳分析时,调用该子程序,job可以提交并运行,只是运行完成滞后无法显示结果,并提示如图,求大神帮忙看看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2016-12-19 19:28:19 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
自己顶一下
回复 不支持

使用道具 举报

发表于 2017-2-18 17:13:17 | 显示全部楼层 来自 湖北武汉

请问你的模型编译出来没
回复 不支持

使用道具 举报

发表于 2017-4-13 21:17:18 | 显示全部楼层 来自 江苏南京
我已经运行成功了
回复 不支持

使用道具 举报

发表于 2017-4-14 13:24:55 来自手机 | 显示全部楼层 来自 中国
橡树的绿叶啊 发表于 2017-4-13 21:17
我已经运行成功了

您好,能交流下如何用anand模型的参数在abaqus中如何定义吗?九个参数,顺序是怎样的
回复 不支持

使用道具 举报

发表于 2017-4-17 18:58:35 | 显示全部楼层 来自 江苏
buaa 发表于 2017-4-14 13:24
您好,能交流下如何用anand模型的参数在abaqus中如何定义吗?九个参数,顺序是怎样的 ...

属性--创建--通用--用户材料,就可以定义了,定义顺序按照你编写的UMAT中PROPS(1)、PROPS(2)...进行输入
回复 不支持

使用道具 举报

发表于 2018-4-4 20:58:26 | 显示全部楼层 来自 荷兰

这是显示算法吧?层主有没有隐式算法的ANAND MODEL 子程序?
回复 不支持

使用道具 举报

发表于 2019-5-10 13:18:59 | 显示全部楼层 来自 北京
橡树的绿叶啊 发表于 2017-4-17 18:58
属性--创建--通用--用户材料,就可以定义了,定义顺序按照你编写的UMAT中PROPS(1)、PROPS(2)...进行输入 ...

能不能交流一下,最近在做蠕变的方向,有好多问题不清楚。请大神指点一下啊。我的qq1661290355.
回复 不支持

使用道具 举报

发表于 2019-5-14 21:03:04 | 显示全部楼层 来自 湖北武汉
求问楼主这个问题最后怎么解决的?
回复 不支持

使用道具 举报

 楼主| 发表于 2019-5-21 13:55:39 | 显示全部楼层 来自 上海长宁区
blswjs 发表于 2019-5-14 21:03
求问楼主这个问题最后怎么解决的?

最后用ANSYS做的
回复 不支持

使用道具 举报

发表于 2019-6-4 23:04:37 | 显示全部楼层 来自 湖北武汉

哈哈,看了帮助文档abaqus也会搞了,然而跟弹塑性没啥太大区别
回复 不支持

使用道具 举报

发表于 2020-4-27 12:05:30 | 显示全部楼层 来自 LAN
blswjs 发表于 2019-6-4 23:04
哈哈,看了帮助文档abaqus也会搞了,然而跟弹塑性没啥太大区别

您好,我也在用abaqus做蠕变,使用的是anand模型,请问该怎么使用?不胜感激
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-16 22:31 , Processed in 0.035666 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表