急UEXTERNALDB_USDFLD_HETVAL 3个子程序连用将生热率赋予每个节点
我的思路大概是:使用UEXTERNALDB子程序将储存生热率的文件heat.txt(节点编号,生热率)读取生热率并定义为heat(i),使用USDFLD和HETVAL将生热率赋予给每个节点,现在的问题是UEXTERNALDB和HETVAL我调试好了,感觉USDFLD没调用起来!(是否需要逐个节点的赋予,那样的话usdfld该如何写,好着急)abaqus-tire 老兄,你计算的生热率是否是按照节点序号计算的?,如果是的话可否使用if语句,判定节点序号什么的,我现在只能整体福生热率 调用GETVRM了吗? 本帖最后由 banhushui 于 2016-5-30 10:29 编辑
可以利用do循环(noel和单元进行对应)将节点生热率逐个赋给STATEV,通过STATEV传递给HETVAL中的FLUX。
你好,我想问一下你的问题是怎么解决的,我现在也遇到这个问题了,憋了很长时间了,麻烦指教一下,如何将生热率赋予到每个节点上?
我想问一下这个生热率的单位是什么呀,文献里怎么写的都不清不楚的 本帖最后由 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]