和谐CF 发表于 2015-10-22 10:18:01

急UEXTERNALDB_USDFLD_HETVAL 3个子程序连用将生热率赋予每个节点

我的思路大概是:使用UEXTERNALDB子程序将储存生热率的文件heat.txt(节点编号,生热率)读取生热率并定义为heat(i),使用USDFLD和HETVAL将生热率赋予给每个节点,现在的问题是UEXTERNALDB和HETVAL我调试好了,感觉USDFLD没调用起来!(是否需要逐个节点的赋予,那样的话usdfld该如何写,好着急)
abaqus-tire

lcy081099 发表于 2015-11-11 10:56:49

老兄,你计算的生热率是否是按照节点序号计算的?,如果是的话可否使用if语句,判定节点序号什么的,我现在只能整体福生热率

那个那 发表于 2015-11-12 15:03:59

调用GETVRM了吗?

banhushui 发表于 2016-5-30 10:24:15

本帖最后由 banhushui 于 2016-5-30 10:29 编辑

可以利用do循环(noel和单元进行对应)将节点生热率逐个赋给STATEV,通过STATEV传递给HETVAL中的FLUX。

zhijieying 发表于 2017-2-15 21:35:49

你好,我想问一下你的问题是怎么解决的,我现在也遇到这个问题了,憋了很长时间了,麻烦指教一下,如何将生热率赋予到每个节点上?

yongyange 发表于 2018-1-8 16:43:46

我想问一下这个生热率的单位是什么呀,文献里怎么写的都不清不楚的

asmy 发表于 2021-7-8 11:06:42

本帖最后由 asmy 于 2021-7-8 11:08 编辑

      SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
    1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
    2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
    1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
c    ***以上为子程序标准写法***
      common /txt_data/heat(970),i
         do i = 1,970
             if(noel.eq.i) then
            statev(1) = heat(i)
             end if
      end do
      return      end
USDFLSD 可以这样写

页: [1]
查看完整版本: 急UEXTERNALDB_USDFLD_HETVAL 3个子程序连用将生热率赋予每个节点