一、背景介绍

        Hypermesh是由美国Altair公司开发的一款高性能有限元前处理器,其优秀的前处理性能受到许多行业有限元工作者的青睐。Abaqus作为老牌的有限元仿真软件,由于其优秀的非线性求解能力,因此被广泛应用于机械、土木、电子等行业。但其自带的前处理器Abaqus CAE在前处理方面确实有些短板,尤其是在涉及到复杂装配或一些其他的特殊场景时,处理起来就有些麻烦了。所以在实际工程中,主流的方法是通过Hypermesh前处理+Abaqus求解的方式进行有限元仿真工作。本文以一个简单但比较典型的例子说明这个工作流程,并指出一些容易碰到的问题。初学者或者不熟悉的人容易因此绕弯路。

二、案例

        本次案例的模型如下(模型没有实际工程意义,仅是为了说明仿真流程),上中下三层平板使用壳单元,三层壳单元中间夹着两个实体,实体和壳单元用绑定连接,左侧三层壳单元分别绑定在一起。材料使用带纤维的正交各向异性材料,整体长度方向为纤维方向。

三、流程

        本文默认读者对Hypermesh有基本的了解,会在Hypermesh里面进行基础的网格划分。因此,其中一些基础操作便不再赘述。

(1) 划分网格

        打开Hypermesh软件,并切换到Abaqus模板下,导入模型并对模型进行分组

        划分网格

        Hypermesh与Abaqus单元默认的对应关系可以通过以下方式查看,也可以通过这个命令修改。例如Hypermesh内的tria3单元(三角形单元)默认对应了Abaqus里面的S3单元,tetra4单元(四面体单元)对应了Abaqus内的C3D4单元。

        划分好网格后也可以查看单个单元的类型,使用card edit命令,将类型改为elems,然后选择需要查看的单元。

        这里能看到该单元的在Abaqus的inp文件的格式,里面包含了单元的类型为C3D8R。

(2)创建材料

        在模型树的空白位置点击右键,create>material,创建材料。

        点击刚才创建的材料,在左下角的属性浏览器中勾选Elastic(弹性材料),将Type更改为ENGINEERING CONSTRANTS(工程常数),在下面分别输入E1、E2、E3(三向弹性模量),Nu12、Nu13、Nu23(三向泊松比),G12、G13、G23(三向剪切模量)

(3)创建局部坐标系

        由于本文使用的是各向异性材料,因此需要创建局部坐标系为创建属性做准备,其实不止是各向异性材料需要定义局部坐标系,还有很多场景也需要定义局部坐标系。在下图的位置找到systems命令

        该命令可以通过指定原点、X轴方向、XY平面创建坐标系(也可以选择Y轴,读者可自行尝试)

        重点来了,如果只到这一步的话,Hypermesh内的局部坐标系无法导入到Abaqus里面去,笔者当时也在这里卡了很久。通过上文提到的card edit命令,将类型更改为systs,然后选择刚才创建的局部坐标系。

        进行修改之后,坐标系便可以导入到Abaqus里面去了。

(4)创建属性

        在模型树的空白处右键点击create>property

        每一个component对应一个property,因此有几个component就创建几个property。使用壳单元的component,其对应的property作如下设置

        使用实体单元的component,其对应的property作如下设置。

        将property赋给对应的component

(5)创建绑定

        在模型树空白处右键单击,然后点击create>set segment,创建set segment,每一个绑定对需要一个master entity(主面)和一个slave entity(从面),Abaqus内同一个从面不能同时作为两个主面的从面,但同一个面可以作为从面的同时作为主面,同一个主面也可以同时作为多个从面的主面(在多层壳单元进行绑定时会遇到这类问题,有些绕,但Abaqus确实需要注意这一点,不然计算会报错,optistruct就不用考虑这些)

每两个需要连接的部件都需要建立一对主面和从面,创建完set segment后开始创建绑定,在模型树右键单击create>contact并在左下角属性浏览器里作如下更改。

        依次将模型所有需要有绑定连接的地方绑定上,并对绑定进行以上的设置。

(6)创建载荷步及边界条件以及输出请求

        创建约束一个load collector,用于放置载荷和约束,模型树空白区域右键单击create>load collector,将其属性作如下更改

        创建约束

        创建载荷

        创建输出请求,右键点击create>output block

        并将创建好的output block作如下设置

        创建载荷步,在模型树空白区域右键点击create>load step

        将创建的load step作如下设置

        到现在,在Hypermesh里对模型的前处理就全部完成了,目前的状态是可以直接提交计算的状态,不需要打开Abaqus软件了。

(7)导出inp文件

        按照下图所标识的方式导出Abaqus用于求解的inp文件

        

(8)使用bat脚本文件提交计算

        新建一个txt文本文件,将这个txt文件后缀名改为bat。右键单击该文件,选择“编辑”。在里面输入如下命令:

abaqus job=test interactive

        注意:命令里的“test”是导出的inp文件的文件名,例如我导出的inp文件全名是test.inp,那么这里就是 job=test

        将这个bat文件放置到与导出的inp文件在同一目录下,然后双击这个bat文件,即可提交计算。这个脚本只是提交单个inp文件的计算,可以通过边界简单脚本的方式轻松实现多个inp文件按顺序自动提交计算。

(9)Hyperviw后处理

        计算完成后在和inp文件同一目录下会生成一个odb文件,这是Abaqus默认的结果文件,打开hyperviw导入该文件即可查看结果。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐