您的位置:网站首页 > Ansys教程

ansys模型写abaqus的inp文件的办法

时间:2010-11-14 12:29:45 来源:未知
转我师弟的一篇文章,这篇文章的目的是利用ansys强大的apdl命令编程建模,然后利用abaqus丰富的材料属性,本构关系。这样就充分利用了两个软件的特长,而workbench在这里面很好的起到了一个桥梁作用,建议大家直接看方法二,简单有效
有兴趣的也可以看下方法一,over!
 
 这段时间在做一个关于材料随机分配的问题,发现ansys的apdl能实现材料属性随机分配,但是要用到abaqus的非线性求解器,但是ansys和abaqus之间不知道怎么转换,所以想了个笨办法:
      abaqus中inp文件主要有两部分内容,一部分是节点坐标和单元所包含的节点编号,以及单元编号集节点编号集等,另外一部分就是利用第一部分的单元节点集来设置一些加载边界条件,及设置材料属性,求解及输出控制等。
     inp文件的第二部分用手写就可以实现,而第一部分比较难实现(模型复杂就更不用说了)。
     首先是把ansys模型中所有的节点坐标读到数组里,再把每个单元中的节点编号输到一个二维数组中(NELEM命令),最后通过*vwrite命令输出到文本文件中。
    节点集和单元集的实现:
    ansys中有nsel,esel这两个命令很强大,几乎能选择你想要的节点集和单元集,选择好集合之后导入到一个数组中,通过*vwrite输出到文本文件中。
例如下面是选择材料材料属性为1的单元集,最后把这些单元都输出到数组emat1(namt1)中了。
esel,s,mat,,1
*GET,nmat1,elem,0,COUNT
*DIM,emat1,ARRAY,nmat1
*GET,emat_min,elem,0,NUM,MIN
*DO,i,1,nmat1,1
      emat1(i)=emat_min
      emat_min=ELNEXT(emat_min)
*ENDDO

    其中要注意的是abaqus中集合每行不能超过16个数据,因此通过以上办法得到的文本文件须处理成abaqus要求的格式,可以用fortran或matlab实现(我是利用fortran的格式输入输出实现的)。

       另外一个办法是用Workbench FE model可以直接输出abaqus inp文件,但是这种办法只能输出模型的节点坐标和单元所包含的节点,节点集和单元集都需要另想办法实现。
       我总算找到了从ansys前处理到abaqus求解器的一条小路(作用有限)^_^ ^_^