Abaqus如何高效联合HyperMesh

来源:ABAQUS  › 交流  › 倒序浏览
  • 回答数

    0

  • 浏览数

    1615

  • 收藏数

    0

作者:keyan666 发表于 2022-1-17 15:01:16
跳转到指定楼层
下面这个模型我之前一直都是用HyperMesh划分网格,生成inp文件再导入Abaqus定义边界条件的。但是这样来回在两个界面之间折腾效率还是比较低。这次我终于下定决心学习使用HyperMesh独立完成Abaqus的全程前处理工作。这个模型中,涉及到在HyperMesh中定义Abaqus的材料、截面、分析步、场输出,以及耦合、边界条件等信息。我会用一个简化模型将整个流程讲清楚。对了,我使用的是HyperMesh 2020版,Ribbon风格新界面。虽说软件版本不是最新,但HyperMesh发布Ribbon风格的新界面也快两年半了,我已经快要有点不记得旧界面该怎么用啦。
01
问题和动机

首先,咱来聊聊为啥要用HyperMesh完成全部前处理工作。
一般来说,Abaqus的网格划分功能不太能胜任稍微复杂一点的几何。使用HyperMesh或是ANSA这类专业前处理工具相对来说能更轻松地画出漂亮的网格。而在Abaqus/CAE界面下,定义分析步、边界条件等操作则比较方便,全程图形界面操作。
但是,如果你的项目涉及到好几个不同的模型方案的对比,方案之间又不太方便通过类似Morph的功能修改的话,如果只导出包含网格的inp文件再放到Abaqus里定义载荷等信息,就可能面临更多的重复操作。
我之前几个项目也是这么做的。其实也不麻烦,用abaqus.rpy录制一段小脚本,把重复性工作自动化就好。但这次我还是想搞点不一样的。稍加研究后我实现了在HyperMesh中完成Abaqus的全部前处理。

02
Abaqus简单模型

用Abaqus建立一个简单的梁模型。emmmm……实在太简单了也不好,左端固定,就在右端定义一个参考点然后加一个刚性耦合Coupling吧。然后在右侧参考点处施加一个扭转位移。
别问我为什么是在Abaqus里建模而不是HyperMesh。因为这是简单有效的学习过程——在HyperMesh这类基于关键字的前处理软件里,想要完成完整的前处理流程,当然可以直接去求解器的文档参考它的关键字。但如果能有一个写好的求解器inp文件供参考,学习效率自然会更高。
在单元这里,我给它添加一点不一样的属性:C3D8R单元,增强沙漏刚度控制。其实这个选项在简单模型里完全体现不出区别。
最终在Abaqus里的位移:
这个文件命名为hm_test.inp。

03
HyperMesh参考步骤

在HyperMesh中导入刚才的inp文件,来参考一下这个inp文件在HyperMesh里呈现的结构。
那么,在HyperMesh里重做一遍全部操作吧~
创建一个长方体模型。模型建立和网格划分这部分工作就不再赘述,一般如果是真正的工程问题,如果模型太简单了我们还真没必要劳烦HyperMesh。
好的,我们得到了一个只有网格的模型。现在让我们来按照Abaqus的操作逻辑,从创建材料开始。

1. 创建材料
在HyperMesh的Model选项卡中找到添加材料功能。其实也可以在左侧模型树上右键Create-Material.
在HyperMesh切换到新界面时,底部的Panel面板仍得到保留。因此同样的卡片编辑功能,有两套(或者也可以说是三套?)GUI。其一就是新建材料时的这种对话框,其二是在模型树中点选材料,下面的属性框(其实就是把新建材料的Name-Value表格给固定到屏幕左下角),其三是右键某一对象时选择Card Edit时的编辑卡片窗口。
这里只需要勾选最简单的Elastic,输入E和NU即可。
2. 定义截面
在Materials右侧就是Properties按钮。Card Image选择SOLIDSECTION,材料选择刚才定义的结构钢。
注意,如果要对单元类型中的减缩积分算法进行控制的话,虽然在Abaqus/CAE界面中是在单元类型里定义,但在Abaqus的inp文件中,是把这些信息归类为截面控制类别的。所以还需要添加一个Property,卡片选择SECTION_CONTROLS,定义好对单元类型的控制属性。然后在第一个Steel_section中引用它。
定义好材料和截面,将截面赋予给刚才建立好的Component即可。
3. 定义分析步
这次直接右键创建Load Step吧。
分析步类型选择为static。
注意,在HyperMesh中,如果模板设置为Standard 3D,则只能创建Abaqus/Standard分析步。如果想要创建Abaqus/Explicit分析步,则需要将模板切换为Explicit.
其他设置如图所示。其实,这个界面就是针对Abaqus的*STEP分析步可用的关键字做了一个GUI。它的每一个选项和Abaqus关键字的语法都是对应的。初学者可以参考从Abaqus导出的inp文件来进行设置,而更多高级选项,其含义在Abaqus文档的*STEP关键字页面里都有写。
Abaqus界面中默认的场输出和历程输出选项,在HyperMesh中也需要显式定义一下。但都不算很难。就选择PRESELECT就好。
分析步的定义其实还没结束。后面还需要把设定好的载荷Loadcols和接触Group放进分析步里。
4. 定义相互作用
HyperMesh中,把大部分的相互作用都称为Group。这个命名我着实是没太看懂,但……你说是就是吧。
在定义耦合之前,需要定义一个参考节点的set,和一个耦合的SURFACE。定义好以后,新建一个Group对象,Card Image选择COUPLING。
5. 定义载荷
这个模型中,载荷只有位移边界条件。在HyperMesh里,当然可以直接点BCs和Loads创建载荷,再把它们归类到Load Collectors里。但如果希望在Abaqus中打开还能看到以集合形式定义的位移边界条件的话,还是像这样设置比较好:
这里有DOF1和DOF2,但我在里面写上了PINNED。在Abaqus文档 > Prescribed Conditions > Boundary Conditions 页中,介绍了*BOUNDARY关键字的用法:
就是说,可以从DOF1约束到DOF2,同样也可以在第一个位置写上XSYMM等关键字。这和Abaqus/CAE中的图形界面操作是一致的。
固定边界条件用PINNED关键字,而参考点处的边界条件就可以直接设置了:Analyze-BCs-Constraints
6. 修改单元类型
在HyperMesh的Abaqus模板下,可以直接在下方的 3D 面板上修改单元类型。选右下角的elem types即可。(如果换成ANSYS模板,就不能这么做了。ANSYS模板里,需要定义一个sensor对象,卡片选为ETType。所以我才说,HyperMesh这谜一样的卡片类型名称简直是阻碍学习者的最大障碍之一)
选择单元,切换单元类型后点击update即可。
Hex8单元有这么多类型可选。
全部定义好以后,导出inp文件,就可以直接提交Abaqus计算了。
小喵使用的是并行超算云。在云端提交Abaqus作业,只需要在写好的.sh文件里,修改inp文件的文件名,定义使用的核心数就可以了。具体脚本……感兴趣的小伙伴可以自己去注册一个并行超算云账号玩玩呀~他们的工作人员会帮你写好示例脚本的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册 微信登录

x
分享:
回复

使用道具

成为第一个回答人

高级模式 评论
您需要登录后才可以回帖 登录 | 立即注册 微信登录
关于作者
keyan666

用户组:版主

  • 主题

    6

  • 帖子

    6

  • 关注者

    0