用VUSDFLD删除单元??

浏览:1769 回答:10

大家好,目前试着在用VUSDFLD实现单元删除。删除准则很简单,即x方向应变大于0.001时,单元失效删除。根据论坛上已有的例子,试着编写了一段VUSDFLD子程序,但是运行后,发现结果与不加入子程序并无任何差别,子程序似乎没有起作用,请教大家解答。下面附上我的子程序,由于是第一次编写,估计有错误,请大家不吝赐教,感谢
c
c User subroutine VUSDFLD for user-defined fields
c
      subroutine vusdfld(
c Read only -
     *   nblock, nstatev, nfieldv, nprops, ndir, nshr, 
     *   jElemUid, kIntPt, kLayer, kSecPt, 
     *   stepTime, totalTime, dt, cmname, 
     *   coordMp, direct, T, charLength, props, 
     *   stateOld, 
c Write only -
     *   stateNew, field )
c
      include 'vaba_param.inc'
c
      dimension props(nprops),
     *          jElemUid(nblock), coordMp(nblock, *), 
     *          direct(nblock, 3, 3), T(nblock,3,3), 
     *          charLength(nblock),
     *          stateOld(nblock, nstatev), 
     *          stateNew(nblock, nstatev),
     *          field(nblock, nfieldv)
      character*80 cmname

c
      character*3 cData(maxblk*6)
      dimension jData(maxblk*6)
      dimension stress(maxblk*6)

   
c Get srain from previous increment
      jStatus = 1
      call vgetvrm( 'LE', strain, jData, cData, jStatus)
c
      call LE11strain(nblock, nstatev,
     *     nfieldv, ndir, nshr, 
     *     strain, 
     *     stateOld, 
     *     stateNew, field)
c
      return 
      end
c
      subroutine  LE11strain(nblock, nstatev,
     *     nfieldv, ndir, nshr, 
     *     strain, 
     *     stateOld, 
     *     stateNew, field)
c
      include 'vaba_param.inc'
c
      dimension strain(nblock,ndir+nshr),
     *     stateOld(nblock,nstatev), 
     *     stateNew(nblock,nstatev),
     *     field(nblock,nfieldv)
c
      parameter ( zero = 0.d0 )     

c Read properties from .inp
      dc = 0.001      
c Get peeq from previous increment
      jStatus = 1
      call vgetvrm( 'LE', strain, jData, cData, jStatus )      
      do k = 1, nblock
         if(strain(k,1).gt.dc) then 
c Element Deletion
           stateNew(k,1) = zero
       
             
         end if
      end do
c
      return 
      end

邀请回答 我来回答

全部回答

(5)
默认 最新
兵心依旧
这个问题我彻底解决了。看我的视频就懂了,那个视频免费看了。
2021年11月12日
评论 点赞
流浪的吉他

楼主我最近也要用VUSDFLD定义应变软化材料。但是之前没有接触过。你的VUSDFLD算例和讲解时在哪里找的能推荐一下吗

2019年6月28日
评论 1 点赞
干货有限元
好像你的strain数组 没定义
2017年8月5日
评论 点赞
干货有限元
控制单元删除的是state variable 所以 给statev赋值就可以了~你的vusdfld子程序有被调用吗?
2017年8月5日
评论 2 点赞
复合材料力学
你的程序里就没给field赋值,起作用才怪
2017年8月4日
评论 1 点赞

没解决?试试专家一对一服务

换一批