首页/文章/ 详情

Radioss单轴拉伸断裂案例

21天前浏览8792

本文摘要(由AI生成):

文章主要介绍了Radioss开源版本的相关信息,包括开源协议的选择、代码注释的规范性、前后处理工具与编译方式等。同时,作者还提供了一个简单的单轴拉伸案例,详细介绍了案例的输入文件、仿真分析流程以及相关参数的设置。最后,作者强调了快速学习新知识的重要性,并鼓励读者自己动手尝试。

单轴试件拉断前后的von-Mises应力云图

再放一张动图,诱骗吸引读者读下去


Radioss开源了

那就来学习一下,做个入门案例玩玩


作者 | 毕小喵
长文预警,共计6151字,53张图。
(只想看案例的话,使劲儿往下翻吧~)

OpenRadioss

昨天惊闻Altair家的显式动力学求解器Radioss发布了开源版本:

知名显式动力学求解器Radioss宣布开源

看到这条消息的我是“垂死病中惊坐起”。两个多月没写的我突然来了热情,火速翻译了一下OpenRadioss网页和公 开 信。昨天也看到了很多人转发,看来这条消息关注的人不少。

Radioss可不是什么无名之辈。它的功能之强大,模型之丰富,工业应用案例之广泛,远非其他一些基础的、用于学习的开源有限元仿真软件可比。而且这东西可是显式动力学求解器,里面包含大量的材料损伤破坏模型和高级的ALE流固耦合算法。

Radioss求解器大部分代码由FORTRAN写成。

按照GNU协议开源,注释十分规范,也与Altair的商用版Radioss作了区分。

每段代码的头部写明该文件被谁调用,又调用了谁,及相应的目录位置。

虽然从目前工业界使用的角度,Radioss肯定还是不如LS-Dyna用户群体那么广泛,而且它本身也支持LS-Dyna的输入文件格式。但毕竟人家求解器代码都开源了,咱也就跟风试着玩一下,从一个简单的案例开始。


开源的前后处理工具与编译方式


(提醒:其实这一段我就是挑着翻译一下。并没有真的讲如何使用开源工具做前后处理,也没真讲如何编译。真想尝试还是直接去找GitHub上的HOWTO.md跟着做吧)

https://openradioss.atlassian.net/wiki/spaces/OPENRADIOSS/pages/21397510/Pre and Post Processing for OpenRadioss

OpenRadioss除了GitHub页面以外,把官网和一些声明都放在了一个由Confluence创建的页面上。由于HyperWorks套件仍然是商用软件,Altair官方建议使用Gmsh和ParaView作为开源的前后处理工具,来完善整个工具链。在Gmsh项目中,已经提供了Radioss导出格式的代码。但其实……Gmsh仅仅只能完成画网格的任务,其他所有前处理工作都要手动编辑输入文件。

所以普通工程师真正能用且好用的,还得是Altair商用的HyperWorks。

 至于编译的方式,在Github页面上,项目根目录下就有HOWTO.md 文档,详细介绍了编译需要的系统要求和相关支撑工具。包括gcc编译器,cmake,perl,git等。

 https://github.com/OpenRadioss/OpenRadioss/blob/main/HOWTO.md

虽然我倒是也确实有个现成的Linux虚拟机,但……还是别弄这么麻烦了。咱就用HyperWorks做前处理,拿电脑上已经装好的现成的Radioss求解器跑一个案例玩玩吧。

单轴拉伸案例

这个案例,在商用版Radioss帮助文档和OpenRadioss的文档里都有,是最简单的一个案例了。至少2020版本的HyperWorks在安装时,本地文件里是会附带Radioss案例文件的。目录位置默认在:

image.png

不过既然有开源,咱还是用开源的输入文件吧,它们只有一些微小的区别。比如本地案例使用的是1/4模型而开源网页上的案例使用了全尺寸拉伸试件模型;在材料属性上,开源版本使用的是DP600不锈钢,而原始官方案例使用了6063T7铝合金。

开源版本案例描述页及输入文件下载链接地址在这里。网页写的图文并茂,排版很漂亮。感兴趣的朋友可以去看看。

image.png

image.png

下载并解压后,有四个文件夹。分别使用了LAW2和LAW36两种材料,其中后两个文件夹里的输入文件使用了BIQUAD屈服准则描述了发生屈服破坏后的单元删除。

在2022版本HyperWorks中,Altair将所有求解器(OptiStruct、Radioss、MotionSolve等等)的运行界面做了整个,变成一个统一的Altair Compute Console. 在这里打开相应的.rad输入文件,Options里面可以加上 -nt 4 使用四核并行(这里-nt表示用四核并行但不会把求解域拆成四份。鉴于总单元数非常少,如果使用把求解域拆分的命令 -np 的话,计算时间反而会显著增加)。

注意文件名里面的_0000,圈起来后面要考。

点击下面的Run,我这里大概105s就算完了。

做出来结果用HyperView播放,效果是这样:

Radioss求解器的基本结构

我知道你想看这个案例是怎么做的。它真的很简单,最多就材料部分稍微多那么几个参数。别着急,让我们先来了解一下Radioss这个软件在求解时的基本流程。

Radioss模拟分为两个部分,分别称为Starter和Engine。启动器Starter负责输入数据检查,必须要检查无误才能开始求解。有点像Abaqus的求解过程,也是先做inp文件检查然后开始运行。但Radioss略有些不同,它的输入文件也分成多个:

Radioss Starter读取输入模型,文件名通常称为 runname_0000.rad 。注意这个 _0000是文件名约定,你要是擅自把它改掉或者去掉,软件是会报错的。

检查无误后,创建runname_0000.out文件,然后创建初始的重启动文件 runname_0000_CPU#.rst。

Radioss的第二部分称为Radioss Engine,引擎。引擎文件名为 runname_0001.rad。这个文件体积远小于0000.rad,里面包含了仿真任务的求解控制信息及输出控制信息

所以说,在标准Radioss格式中,材料、网格、边界条件等信息存放在 runname_0000.rad,而求解的时长、输出控制等信息则单独放在 runname_0001.rad 里面。这就是为何我们在下载来的输入文件中,每个文件夹下都可以看到0000和0001两个输入文件。

这也解释了,在GitHub的HOWTO.md说明页里,为何分别介绍编译OpenRadioss Starter和OpenRadioss Engine的方法。

HyperMesh建模基本过程

用HyperMesh(我这里用的是HyperWorks 2022最新版)打开下载好的 tensile_LAW2_BIQUAD_0000.rad 输入文件。格式选择Radioss Block format,顺便把下面的 Read engine file 勾选上。这样就能连0000带0001一起读出来。

网格是画好的。实际上画这个单轴拉伸试件的模型和网格也实在没啥难度。用的壳单元,所以几何只需要一个面,厚度要在属性里赋予。

因为我们打开的是所有属性都已经配置好 直接就可以求解的文件,我们可以看到左侧模型浏览器里有一长串好多个对象。那我们一个一个来看。

HyperMesh就是有这样的弊端,它不像ANSYS、Abaqus等其他求解器那样会把仿真分析的整个流程给你在界面上都梳理好。你用HyperMesh定义仿真项目的时候,自己必须对整个仿真分析的全流程心里有数。要定义啥都得自己记住,软件通通不会提醒你。

软件左侧这个Model也不像我们熟悉的ANSYS Mechanical、Abaqus或者Comsol左侧的模型树,它是按字母顺序而不是仿真的操作顺序排列的,如果模型中没有某一类对象,它就不会显示这个项目。

那,我们先来大致过一遍,定义这样一个分析需要设置哪些对象。

项目的单位制:质量-kg,长度-mm,时间-ms。这些信息写在BEGIN_CARD里面。

首先当然是划分网格。然后定义一下单元类型。这个单元的类型叫SHELL4N,嗯很好理解,四节点壳单元嘛。

然后,就是定义材料和属性。这里定义了一个Johnson-cook本构的结构钢材料,和一个壳单元的属性。材料这里我们后面再讲。

壳属性定义中,修改了Ishell单元列式为QEPH,和下面的Ithick厚度设置。设置选项为考虑壳厚度的变化。

HyperMesh这一点还算说得过去,每个设置每个编号后面都解释了这个编号对应的含义。不然全都要查手册真的会把用户逼疯。

就这个QEPH壳单元选项,它其实不是个“特别经典”的理论。至少不是教科书上随处可见的那种普通壳单元。从文档里看到,它是一种比较高级的沙漏控制技术。

而Ithick厚度设置,其实是在说计算应力时要不要考虑壳厚度的变化。我理解对于线弹性问题来说就差个厚度方向上的泊松效应呗。

材料和属性定义完了,赋予给这个Component。接下来我们看边界条件

这个边界条件也很简单。左端固定,右端拉伸。对于固定端,就定义一个节点集,然后定义6个自由度的约束即可。这里grnodnode是节点集。

review一下,看到左侧节点都是固定约束。

至于右侧,这里用了一个刚性单元,类似于RBE2吧,把右侧的节点与一个控制点耦合在一起。创建方法也和RBE2类似,在HyperMesh面板上,1D-rigids 创建即可。

然后在控制节点上,约束它的其他5方向自由度,在水平方向上,施加一个速度边界条件,IMPVEL。imposed_velocity,就是施加速度的意思。引用了一个表格形式的函数,其实它就是常数1.

还定义了一些Output Blocks,我们先不管它们。在其他选项都设置好以后,如果没有读取引擎文件,我们需要在HyperMesh的Ribbon菜单 分析 中,找到 引擎文件助手。

图标太多太大,用竖屏时展示不下。这个按钮在很右侧。

在这里,可以设置输出频率、计算终止的时间等等重要信息。这个终止时间会生成一个Engine File中的控制卡片:/RUN,Tstop=40.0。如前所述,单位ms。

所有信息都设置好以后,可以直接在面板Analysis-Radioss提交计算,也可以选择导出求解器文件。这里2022版本其实有个选项:Merge starter and engine file,不知道是从哪个版本开始引入的。

算完以后,就可以打开HyperView做后处理啦。

虽然我现在仍然觉得 HperView不如ANSYS Workbench Mechanical好用,但不得不承认它的功能确实非常全面和强大。而且2022版本也把HyperView等一众工具都迁移到了HyperWorks新界面(老界面一直保留下方面板变化不大但上方多了很多美丽的大图标,体验其实也很不错。

材料属性与损伤准则

在Radioss软件中,MAT LAW1是线弹性,MAT LAW2就是Johnson-Cook本构。可见真的是非常基础了。毕竟作为一个经常拿来算碰撞的显式动力学软件,你定义个线弹性材料还搞哪门子的碰撞仿真啊。

单轴拉伸试件,拉伸到一定程度以后会进入塑性,接近屈服时会出现颈缩阶段。

Johnson-Cook本构模型中,最简单的弹塑性部分关系写为:

更一般地,还可以考虑应变率和温度的影响:

但用户也不是必须输入 a, b, n这三个参数。如果Iflag选为1,则可以使用更熟悉的定义方式。

定义屈服应力(Yield stress),最大拉伸强度(Ultimate tensile strength,缩写为UTS,以工程应力的形式即可),以及UTS对应的工程应变数值。这里官方案例直接给提供了几个数值,还提供了测试曲线的对比。感兴趣的朋友可以直接去文档页面上查看。

或者,还可以直接根据测试的应力-应变曲线定义一个表格来拟合材料行为,这样计算更准确。

这个模型中,使用了基于线性损伤累积的简化非线性应变失效准则。(Simplified Nonlinear Strain-based Failure Criteria with Linear Damage Accumulation

原理很简单,当塑性应变达到用户定义值时,单元就被删除。这种方法的主要缺点是,无论应力状态如何,当达到塑性应变时,单元都会被删除。在拉伸或压缩失效之间没有区别。对于不同的应力状态,金属在破坏时通常表现出不同的应变。特别是在压缩情况下,破坏应变通常远高于拉伸。为了克服这个限制,使用/FAIL/BIQUAD 来代替可以在材料输入中定义的简单的最大等效塑性应变。通过一些简单的输入,/FAIL/BIQUAD 在破坏时产生非线性塑性应变,作为应力三轴度的函数。

可以看到,这里只定义了c3值。

在Radioss的文档中,对这部分参数有详细讲述。

文档里还贴心的给了个表格,甚至这些数值还作为默认的M-Flag写进了代码。如果你没有测试数据的话,可以直接拿来用。他真的,我哭死。

尾巴

结束啦。

快两个月没写原创内容,但昨天Radioss一宣布开源,我的好奇心就窜上来了。中秋假期对我来说也只是个平凡的周末。窝在寝室里,从上手到文章写完,花了一下午加一晚上。

但写推送的过程一直很专注地维持在心流状态,非常开心。一边学习一边把查到的知识写下来。推送写完,我自己也就学会了。希望有条件读者能在阅读我文章的同时,自己也上手去翻一翻案例网页、帮助文档和相应的输入文件。知识当然很重要,但如何快速学习新知识 这份能力要比知识本身更重要。

管中窥豹,虽然做的只是一个最简单的案例,我们已经能看出Radioss作为一个工业级的显式动力学求解器 其功能之强大。我简单翻了一下源代码,目录结构组织的非常清晰。就算不拿来套壳,对国内工业软件的研发人员来说,这也是一份不可多得的重要参考资料。毕竟它里面有很多公式是市面上任何一本有限元教材都没写,只作为论文发表出来的。

一款工业级的显式动力学有限元求解器,其技术包罗万象。即使是一位普通的研究有限元列式方向的博士生,基本上也仅能做到在非常狭窄的一个领域里对相关研究有一些基本的了解。像这里使用的QEPH壳单元,以及后面更多更复杂的损伤准则,我想仅仅是掌握它们用法的人都为数不多。

啥也不说了,让我们感谢Altair。

来源:CAE知识地图
MechanicalWorkbenchRADIOSSOptiStructHyperMesh显式动力学断裂碰撞非线性理论材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-13
最近编辑:21天前
毕小喵
博士 | 博士研究生 CAE知识地图 作者
获赞 190粉丝 243文章 74课程 1
点赞
收藏
未登录
2条评论
古德CAE
签名征集中
1年前
你好,请问我的设置都相同,为什么做出来的结果没有发生断裂
回复 4条回复
仿真秀41078788096
签名征集中
1年前
您好,想来请教一下,radioss用自己在hypermesh里面建立的模型还原拉伸试验时,除了模型是自己建立的,其余均按照您展示的视频中操作,提交计算时弹出ERROR ID: 760 RADIOSS STOP DUE TO INPUT ERROR。想请教这个错误可以从哪里看到具体出错的原因。
回复 1条回复

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈