在Abaqus中获取与紧固件节点相关的元素编号

时间:2016-04-18 08:55:38

标签: fortran key analysis subroutine abaqus

我正在尝试根据紧固件的压力来改变紧固件的刚度。我正在通过使用字段变量并从 .fil 文件中提取紧固件中的力来解决此问题。

问题是我需要将 UFIELD 提供的节点编号与 .fil 文件中的紧固件的元素编号相关联。我知道 .fil 文件包含记录 no中的信息。 1900 但是当我为该记录设置 if语句时,它永远不会在我的子例程中被命中。虽然,当我将 .fil 文件转换为ASCII时,我可以在那里看到该信息。

记录否。 1 没有。 495 被正确击中,我可以获得其中的元素编号和内力。

此外,我尝试在我拥有的节点和元素上使用 GETPARTINFO 。但它返回的数字与我的紧固件节点或元素本身无关。

此外,我无法从节点本身或材料点获得紧固件 CTF ,因为紧固件没有材料点。

如果我假设节点和紧固件的顺序相同并且只是匹配它们,那么我的代码可以很好地适用于小型模型中的少数元素。但是在一个有很多紧固件的大型模型中,一切都变得混乱。

任何想法如何解决这个或者可能有一些评论为什么我无法从我的子程序访问键1900 或为什么 GETPARTINFO 没有返回预期的内容?< / p>

1 个答案:

答案 0 :(得分:2)

好的,我想出来了。 .fil文件中的键1900在命令的默认读取位置

之前打印
call DBFILE(0,ARRAY,JRCD)

为了获得所需的密钥,必须重置文件读取位置

call DBFILE(2,ARRAY,JRCD)

但问题是,无论您指定的elset如何,都会为模型中的每个元素生成键1900,1901,1933等。因此,我编写了一个小子程序来生成一个紧固件数组,其中包含元素编号和相应的节点编号。

      subroutine obtain_relation(REL)
      INCLUDE 'ABA_PARAM.INC'
      DIMENSION ARRAY(513),JRRAY(NPRECD,513),REL(500,3)
      character*8 CVALUE
      EQUIVALENCE (ARRAY(1),JRRAY(1,1)), (ARRAY(4),CVALUE)                   
      !Rewinding the file 
      CALL DBFILE(2,ARRAY,JRCD)
      i = 1
      DO K1=1,999999
          !Start reading output file
          CALL DBFILE(0,ARRAY,JRCD)
          !If the end of the end of pre-step records go to 120 
          IF (KEY .EQ. 2000) GO TO 120
          !If the end of all records is reached go to position 120
          IF (JRCD .NE. 0) GO TO 120
          !The key of the output table is at second possition (first is length of
          !the array)          
          KEY=JRRAY(1,2)
          ! Record 1900 contains information about element conectivity
          IF (KEY .EQ. 1900) THEN
              IF(trim(CVALUE).eq."CONN3D2") then
                  Rel(i,1) = JRRAY (1,3) ! <- Element number
                  Rel(i,2) = JRRAY (1,5) ! <- First node number
                  i = i + 1
              END IF
          END IF

      ENDDO          
 120  Continue
      Return
      end

在URDFIL内部调用POSFIL后,在分析开始时只调用此子程序一次,它将返回一个双精度三维矩阵,第一列包含紧固件元素编号,第二列 - 相应紧固件的第一个节点,最后一个空。我用最后一列来存储相应的力量。

希望这对某人有帮助。