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

[子程序] VUMAT中应变率的计算

[复制链接]
发表于 2013-12-4 17:59:06 | 显示全部楼层 |阅读模式 来自 英国
大家好,
最近在做应变率效应的仿真,当前不考虑物理意义,而且只考虑弹性阶段。 我想做一个应变率的模型, 比如剪切模量 G12=A+B*LOG(shear_strain_rate). 假设这个应变率模型只在当应变率高于10 s-1 时有效,小于10s-1, G12按准静态值考虑。但是在计算应变率的时候遇到一个问题, 按照应变率的定义,可以用应变增量/时间增量得到, 这样剪切应变为straininc(np,4)/dt。 但是现在把这个应变率放到条件语句中却出错了。 奇怪的是我发现有一个名为strainrate的内部变量, 我用它做应变的条件时可以顺利计算。有哪位大神知道VUMAT这个内部变量的意义吗? 我想将straininc/dt和strainrate两个变量输出来检查一下,但是不知道怎么输出这些变量。但是不太会用write()语句,不知道哪位能给点建议吗? 谢谢。 附上我编辑的代码:
C**********************************************************
C    VUMAT FOR STRAIN RATE DEPENDENT STIFFNESS MODEL, ORTHOTROPIC MATERIELS
C    WRITTEN BY HAIBIN ZHU
C**********************************************************
      SUBROUTINE VUMAT(
C READ ONLY (UNMODIFIABLE)VARIABLES -
     1  NBLOCK, NDIR, NSHR, NSTATEV, NFIELDV, NPROPS, LANNEAL,
     2  STEPTIME, TOTALTIME, DT, CMNAME, COORDMP, CHARLENGTH,
     3  PROPS, DENSITY, STRAININC, RELSPININC,
     4  TEMPOLD, STRETCHOLD, DEFGRADOLD, FIELDOLD,
     5  STRESSOLD, STATEOLD, ENERINTERNOLD, ENERINELASOLD,
     6  TEMPNEW, STRETCHNEW, DEFGRADNEW, FIELDNEW,
C WRITE ONLY (MODIFIABLE) VARIABLES -
     7  STRESSNEW, STATENEW, ENERINTERNNEW, ENERINELASNEW )
C
      INCLUDE 'VABA_PARAM.INC'
C
      DIMENSION PROPS(NPROPS), DENSITY(NBLOCK), COORDMP(NBLOCK,*),
     1  CHARLENGTH(NBLOCK), STRAININC(NBLOCK,NDIR+NSHR),
     2  RELSPININC(NBLOCK,NSHR), TEMPOLD(NBLOCK),
     3  STRETCHOLD(NBLOCK,NDIR+NSHR),
     4  DEFGRADOLD(NBLOCK,NDIR+NSHR+NSHR),
     5  FIELDOLD(NBLOCK,NFIELDV), STRESSOLD(NBLOCK,NDIR+NSHR),
     6  STATEOLD(NBLOCK,NSTATEV), ENERINTERNOLD(NBLOCK),
     7  ENERINELASOLD(NBLOCK), TEMPNEW(NBLOCK),
     8  STRETCHNEW(NBLOCK,NDIR+NSHR),
     8  DEFGRADNEW(NBLOCK,NDIR+NSHR+NSHR),
     9  FIELDNEW(NBLOCK,NFIELDV),
     1  STRESSNEW(NBLOCK,NDIR+NSHR), STATENEW(NBLOCK,NSTATEV),
     2  ENERINTERNNEW(NBLOCK), ENERINELASNEW(NBLOCK)
C
      CHARACTER*80 CMNAME
C
      PARAMETER( ZERO = 0.D0, ONE = 1.D0, TWO = 2.D0, THREE = 3.D0,
     1  THIRD = ONE/THREE, HALF = .5, TWOTHIRDS = TWO/THREE,
     2  THREEHALFS = 1.5D0 )
      Q11  = PROPS(1)
      Q12  = PROPS(2)
      Q22  = PROPS(3)
      Q13  = PROPS(4)
      Q23  = PROPS(5)
      Q33  = PROPS(6)
      A  = 7E9
      B  = 7E4
C
C
      DO NP = 1, NBLOCK
C Copy the values of strains into temp variables
      ES1 = strainInc(NP,1)
      ES2 = strainInc(NP,2)
      ES3 = strainInc(NP,3)
      ES4 = strainInc(NP,4)
      
C     COMPUTE THE STRAIN RATE DEPEDENT STIFFNESS AND LAM CONSTANTS
C      SR = strainrate
      SR2= strainInc(NP,4)/DT
C IF THE STRAINRATE IS NOT 0, Q22 IS STRAINRATE, OTHERWISE, Q22 IS 10E9
      IF (SR2.GT.10) THEN      
         Q66 = A+B*(LOG(SR2))
C         stressNew(NP,1) = stressOld(NP,1)+Q11*ES1+Q12*ES2+Q13*ES3
C         stressNew(NP,2) = stressOld(NP,2)+Q12*ES1+Q22*ES2+Q23*ES3
C         stressNew(NP,3) = stressOld(NP,3)+Q13*ES1+Q23*ES2+Q33*ES3
C         stressNew(NP,4) = stressOld(NP,4)+Q66*ES4*2
      ELSE
         Q66 = 5E10      
      END IF
C      
      stressNew(NP,1) = stressOld(NP,1)+Q11*ES1+Q12*ES2+Q13*ES3
      stressNew(NP,2) = stressOld(NP,2)+Q12*ES1+Q22*ES2+Q23*ES3
      stressNew(NP,3) = stressOld(NP,3)+Q13*ES1+Q23*ES2+Q33*ES3
      stressNew(NP,4) = stressOld(NP,4)+Q66*ES4*2   
C  
     
C
C-----UPDATE THE SPECIFIC INTERNAL ENERGY--------
C     
      STRESSPOWER = HALF *
     1   (  ( STRESSOLD(NP,1)+STRESSNEW(NP,1) )*STRAININC(NP,1)
     2    + ( STRESSOLD(NP,2)+STRESSNEW(NP,2) )*STRAININC(NP,2)
     3    + ( STRESSOLD(NP,3)+STRESSNEW(NP,3) )*STRAININC(NP,3)
     4    + ( STRESSOLD(NP,4)+STRESSNEW(NP,4) )*STRAININC(NP,4)*TWO  )
C
      ENERINTERNNEW(NP) = ENERINTERNOLD(NP)
     1                  + STRESSPOWER / DENSITY(NP)
C
C-----UPDATE THE DISSIPATED INELASTIC SPECIFIC ENERGY--------
C
      PLASTICWORKINC = 0
C     
      ENERINELASNEW(NP) = ENERINELASOLD(NP)
     1                  + PLASTICWORKINC / DENSITY(NP)
C
      END DO
C     
      RETURN
      END
C
C
发表于 2014-6-10 21:42:29 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
楼主现在弄明白了吗?在VUMAT接口里面并没有strainrate这个变量啊,若存在其形式是不是strainrate(NBLOCK,NDIR+NSHR)?
回复 不支持

使用道具 举报

发表于 2014-7-27 09:31:24 | 显示全部楼层 来自 江苏南京
楼主这个问题解决了吗?我现在也要在VUMAT里面用到应变率,还不知道该怎么用,可以交流一下,691269828
回复 不支持

使用道具 举报

发表于 2018-1-14 11:39:14 | 显示全部楼层 来自 天津
abaqus子程序里面没有Strainrate这个变量啊。帮助文件也找不到,我试了自己的子程序,输出的strainrate都没有数据,这个变量不对。
回复 不支持

使用道具 举报

发表于 2018-1-14 12:16:58 | 显示全部楼层 来自 天津
glove831 发表于 2018-1-14 11:39
abaqus子程序里面没有Strainrate这个变量啊。帮助文件也找不到,我试了自己的子程序,输出的strainrate都没 ...

是我引用的方法不对吗?如何调用abaqus内部的变量?
回复 不支持

使用道具 举报

发表于 2018-11-15 21:15:39 | 显示全部楼层 来自 上海
glove831 发表于 2018-1-14 12:16
是我引用的方法不对吗?如何调用abaqus内部的变量?

兄弟,所以这个strainrate到底有没有呀,小弟最近也在初学这个子程序~
回复 不支持

使用道具 举报

发表于 2019-11-12 17:11:21 | 显示全部楼层 来自 北京
大家有人解决这个问题了吗?我也在做这方面的问题,可以交流一下328936756qq
回复 不支持

使用道具 举报

发表于 2019-12-8 10:22:36 | 显示全部楼层 来自 大连理工大学西山生活区
请问你的程序里涉及了温度吗
回复 不支持

使用道具 举报

发表于 2022-10-25 10:24:02 | 显示全部楼层 来自 北京
没有这个变量吧,只能是应变增量除以时间增量吧
回复 不支持

使用道具 举报

发表于 2023-5-28 19:45:02 | 显示全部楼层 来自 大连理工大学西山生活区
不爱学习的bs 发表于 2022-10-25 10:24
没有这个变量吧,只能是应变增量除以时间增量吧

请问是这样吗,我也是用应变增量除以时间增量的
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 15:08 , Processed in 0.040215 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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