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

[子程序] VUMAT问题请教

[复制链接]
发表于 2017-8-31 09:42:28 | 显示全部楼层 |阅读模式 来自 大连理工大学
刚开始学习VUMAT,编写了一个正交各向异性线弹性本构,但提交后一直是running,也不计算,也无法中断,请问是怎么回事啊?

       subroutine vumat(
c Read only -
     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 -
     7  stressNew, stateNew, enerInternNew, enerInelasNew )
c
      include 'vaba_param.inc'
c
c 3D Orthotropic Elasticity with Hashin 3d Failure criterion
c
c The state variables are stored as:
c    state(*,1)   = material point status
c    state(*,2:7) = damping stresses
c
       dimension props(nprops), density(nblock),
     1  coordMp(nblock,*),
     2  charLength(*), strainInc(nblock,ndir+nshr),
     3  relSpinInc(nblock,nshr), tempOld(nblock),
     4  stretchOld(nblock,ndir+nshr),defgradOld(nblock,ndir+nshr+nshr),
     5  fieldOld(nblock,nfieldv), stressOld(nblock,ndir+nshr),
     6  stateOld(nblock,nstatev), enerInternOld(nblock),
     7  enerInelasOld(nblock), tempNew(*),
     8  stretchNew(nblock,ndir+nshr),defgradNew(nblock,ndir+nshr+nshr),
     9  fieldNew(nblock,nfieldv), stressNew(nblock,ndir+nshr),
     1  stateNew(nblock,nstatev), deplas(nblock,6),
     2  enerInternNew(nblock), enerInelasNew(nblock)
*
      character*80 cmname
*
      PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,HALF=0.5D0,TOLER=1.0D-6,
     1          THREE=3.D0,FOUR=4.D0)
      dimension eigen(maxblk*3)
C
      REAL*8 N1,N2,N3
C
C     GET THE MATERIAL PROPERTIES---ENGINEERING CONSTANTS
C
      TENL = PROPS(1)           !YOUNG'S MODULUS IN DIRECTION 1 (L)
      TENR = PROPS(2)           !YOUNG'S MODULUS IN DIRECTION 2 (R)
      TENT = PROPS(3)           !YOUNG'S MODULUS IN DIRECTION 3 (T)
      SHRLR = PROPS(4)          !SHEAR MODULUS IN 12 PLANE
      SHRLT = PROPS(5)          !SHEAR MODULUS IN 13 PLANE
      SHRRT = PROPS(6)          !SHEAR MODULUS IN 23 PLANE
      XNULR = PROPS(7)          !POISON'S RATIO POI_12
      XNULT = PROPS(8)          !POISON'S RATIO POI_13
      XNURT = PROPS(9)          !POISON'S RATIO POI_23
      XNUTR=TENT*XNURT/TENR
      XNUTL=TENT*XNULT/TENL
      XNURL=TENR*XNULR/TENL
*
      ATEMP = ONE-XNULR*XNURL-XNURT*XNUTR-XNUTL*XNULT
     1-TWO*XNURL*XNUTR*XNULT
      C11 = TENL * (ONE - XNURT * XNUTR) / ATEMP
      C22 = TENR * (ONE - XNULT * XNUTL) / ATEMP
      C33 = TENT * (ONE - XNULR * XNURL) / ATEMP
      C12 = TENL * (XNURL + XNURT * XNUTL) / ATEMP
      C13 = TENT * (XNULT + XNULR * XNURT) / ATEMP
      C23 = TENR * (XNUTR + XNULR * XNUTL) / ATEMP
      C44 = TWO*SHRLR
      C55 = TWO*SHRRT
      C66 = TWO*SHRLT
          DO I=1,NBLOCK
              STRESSNEW(I,1)=STRESSOLD(I,1)+C11*STRAININC(I,1)
     1                      +C12*STRAININC(I,2)+C13*STRAININC(I,3)
              STRESSNEW(I,2)=STRESSOLD(I,2)+C12*STRAININC(I,1)
     1                      +C22*STRAININC(I,2)+C23*STRAININC(I,3)
              STRESSNEW(I,3)=STRESSOLD(I,3)+C13*STRAININC(I,1)
     1                      +C23*STRAININC(I,2)+C33*STRAININC(I,3)
              STRESSNEW(I,4)=STRESSOLD(I,4)+C44*STRAININC(I,4)
              STRESSNEW(I,5)=STRESSOLD(I,5)+C55*STRAININC(I,5)
              STRESSNEW(I,6)=STRESSOLD(I,6)+C66*STRAININC(I,6)
          ENDDO
       RETURN
       END
      
                 
           
           
发表于 2019-3-8 16:32:10 | 显示全部楼层 来自 中国
Simdroid开发平台
本帖最后由 2070 于 2019-3-11 17:05 编辑

子程序关联上了吗?
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 04:18 , Processed in 0.032100 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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