单元失效与删除 Element Deletion

想用 Abaqus 内置的 Shell 类型模拟 composite 承受高速冲击时的破环行为,但是变形很严重的时候单元依旧没有被删除。下面是看到的一篇介绍,可以扩展了思路。不过没解决我的问题。后来我改用 vumat 了。

注:下面是转载,“我”不是我 😀

如果问单元失效模拟首先就应该了解它的功能与目的,所以简单地介绍一下吧。

单元删除功能本身是为了克服有限元本身的缺陷的一项方法。由于有限元本身就是基于连续介质力学的,而在连续介质力学中,所研究的物体需要是连续的,即物质域在空间中连续。在这样的理论假设框架下,单元本身是不会消失的。然而在实际情况下,由于损伤断裂的存在,势必会使得一些单元消失或者完全的失效,所以为了能够模拟这种情况,abaqus提供了单元失效功能。

我所知道的单元失效情况一般可以概括为三种情况:

  1. 单元损伤失效,这种单元失效可以用来模拟材料由于损伤,或其他原因导致刚度减小的情况。
  2. 单元直接删除技术,这种技术可以用来模拟基坑,隧道开挖而导致的材料消失情况。
  3. vumat,这种方法本质上讲与第一种相类似,但是它可以根据用户自己的情况来删除单元,但是属于很高级的操作,难度也较大。

当然,cohesive 也可以算作一种单元删除的方法,只是本身很少做断裂模拟,对于那方面不是很了解。

在这三种方法中,我想讲一讲前两种情况。

首先来讲一下第二种方法。这种方法很简单。他的使用方法就是在 edit keyword 中加一行关键字,

*MODEL CHANGE, TYPE=ELEMENT, REMOVE Set-1

Set-1 为所定义的单元集合,这一集合需要事先定义,而这一关键字的位置一般位于 step后。如果用户想要在哪一分析部删除单元,就在哪一分析部后添加。

但是使用这一方法是要注意的是由于这个单元是一下子从模型中删除,所以在 standard 下可能造成模型总体刚度奇异,导致计算不收敛,所以最好的方法就是能够在单元删除前,事先削减它的刚度,这一做法也很简单,就是利用温度变量作为一个独立的状态变量然后通过状态变量与单元刚度的对应关系,减小弹性模量。

现在来谈一谈使用第一种方法来删除单元的过程。

这种方法首先只能在 explicit 模块下使用,这一方法本身是为了描述损伤对于材料刚度衰减的影响而提出的,在 help 手册中,它是与复合材料断裂紧密联系的。(转发者注:Abaqus 在 mesh 单元类型设置那里已经提供了 Element Deletion 选项,并且根据用户文档,默认情况(default)是会在失效时删除的;而且,紧挨着这个设置的下面就是可以设定失效删除的标准,即 element 在刚度降低了原来的多少的时候删除,默认是 1,即完全失效才删除(这个不太确定理解是否正确))。

在这个方法中,abaqus 设置了一个 status(状态变量,转者注:可以从 step 模块的 output 工具栏中的 field output 中看到),通过它来控制单元的删除与否。当这一变量为 1的时候,单元保留;而为零 0 的时候单元删除,两者间没有中间量,只能为 0 或者 1。

通过上面的阐述,我们可以了解到这样一个问题,单元的删除是与损伤相联系的,而损伤的机理一般可以概括为两种情况,即拉伸损伤和剪切损伤。我主要是针对于剪切损伤进行单元删除的。所以就在这一位置谈谈自己的感受吧。

要想使用这种方法进行单元删除,就必须定义损伤。所以在 property 中选择 shear damage,这一选项中包括了三个参数,我一般是使用第一个,它的作用是衡量材料在何时开始进入损伤(即 damage initial),它所表示的是损伤开始的时候对应的等效塑性应变值。而其他的都设为 0,如果所要模拟的情况中包含率依赖,或者是采用 Hill plasticity,则可以开启其后的选项和加温度状态变量。而我在计算中由于只是采用金属的mises,所以对于另外的选项不关心。另外需要注意的是 shear damage 要与 plasitic 共同使用。

上面的过程中只是定义了材料开始损伤的初始情况,而材料的最终失效是当材料的损伤值达到 1 的时候发生的。这是就需要用户自己来定义材料的损伤演化了(damage evolution),具体定义材料损伤演化的方式较多,可以在 shear damage 的 suboption 中看到,一般的类型包括 displacement 与 energy,就是采用位移控制损伤或者能量控制损伤,我一般选择 displacement。

而在下面的一个选项 softening 则是控制着具体位移(能量)与损伤对应关系。我一般是选 linear,用起来比较方便(其他的具体可以参考 Abaqus Analysis User’s Manual 19.2.3)。

接下来用户就要输入损伤最大为 1 的时候对应的塑性位移值了 ,它的表达式为……

这几个参数的含义分别为塑性位移率,单元特征长度(我理解为单元长度),等效塑性应变率。而损伤率采用(见图3)来控制。但损伤率之和达到 1 的时候,单元失效。说白了就是一个单元的塑性应变称与单元长度,大于你规定的数值时单元就失效了。

当然这只是谈到了单元的失效,而具体的单元删除还有一些小技巧:

1)由于材料在计算过程中引入了一个状态变量,所以在 step 下 fieldoutput 中材料参数选择的时候,选上 status。

2)在 abaqus6.5 中单元删除好像不是默认显示,所以需要在后处理中自行设置。具体设置的方法是在 visualization 下选择状态变量输出,而后的点击 create display group,在弹出的对话框中选择 elements 与下面的 set value。这时可以看到有一个位置让你输入 min value 与 max value。由于删除但与的状态变量为 0,所以在最小之中输入 0.1,而最大值大于 1 就可以了。

另外需要注意的是单元选择不要选错了,有一回我没用 explicit 下的单元,结果在后处理当中就是没有状态变量。

以上为个人的经验,如果有什么问题也欢迎大家探讨。附件是本人做的一个小例子的inp很简单,作为参考。至于利用 vumat 进行单元删除的我没做过,但是
http://www.simwe.com/forum/thread-409744-1-3.html
这个贴子中是介绍利用 vumat 做单元删除的,非常经典,大家可以看一看。

如果还有谁对于单元删除感兴趣的可以再论坛中搜索华容道,其中有一个是我的偶像 aba-aba 版主大人主持的,里面介绍了很多关于单元删除的例子,当年我也是从那学起的。

———————以上是转帖内容————————

后记:可能是因为我的损伤采用了 Hashin Damage,而 initial 和 revolution 都是瞎编的数据。反正一直无果,之后改用 vumat 了。

今天了解到一个很重要的技巧是,有的时候并不适合直接删除掉一些失效的单元。此时可以选择不删除,但是在查看最后结果的时候调用别的指标来“删除”一些复合某些指标或标准的单元以达到特定的显示效果。具体可以查看 Simula 的官方演示视频:

http://www.simulia.com/services/training/V67-Introduction-DEMO/movies/vis-removeFailedElements.html©

本文发表于水景一页。永久链接:<http://cnzhx.net/fe/2015/01/27/element-deletion/>。转载请保留此信息及相应链接。

14 条关于 “单元失效与删除 Element Deletion” 的评论

  1. 楼主您好,我最近在用vumat编写JC damage,依据的是帮助手册,但是总是不能失效,不知道您是不是有过这方面的工作,可以指点一下。谢谢!

    • 不知道你说的“不能失效”是不是指单元不能删除?
      我不懂 JC damage,不过 vumat 中单元失效与删除应该都差不多。考虑以下几点:

      • 需要在 user material 中指定存储 element 状态(失效与否的状态)的 SDV 变量的序号,设为 N
      • 上述变量在 vumat 中存储为 stateOld(i,N) stateNew(i,N);需要 vumat 中循环结尾的地方根据计算判断结果给当前 element(序号 i)的这个状态量赋值:如果需要删除该 element,就 stateNew(i,N) = 0
      • 在 step 的 feild output 里面需要勾选 state 中的 status 变量

      如果上面这些都检查无误,结果还是不行,那我也不知道是怎么回事了。

    • 对不起,看到得晚了。相信你已经找到相关实例了吧。感觉网上挺多的例子的,Youtube 上还有视频。

  2. 老师您好,我使用剪切单元删除时候遇到一个问题,我进行的是滚刀滚压切割岩石,就是滚刀侵入岩石数毫米,然后在岩石上面滚动,碾压岩石使岩石破碎。我定义了剪切损伤,断裂应变0.0025 破坏位移0.01(单元长度5mm)。计算过程中发现滚刀下方岩石被压碎后导致单元删除。由于单元删除了,滚刀下方单元格消除,导致滚刀与下下方单元不在接触,使得下方应力极小。实际应该是岩石破坏后变成岩粉,滚刀下方岩粉应该同样可以承受部分压力,我侵入深度越大,产生岩粉越多,滚刀下方单元应力越大。老师这个这个怎么解决吗?(单元刚度为0后单元删除,是否可以定义删除单元也受力?不懂)

  3. “接下来用户就要输入损伤最大为 1 的时候对应的塑性位移值了 ,它的表达式为……”您好,我请问一下,位移值那个选项是填一个表达式,还是一个数值啊,他的表达式是什么啊

    • 不好意思,上面的文章中间的部分都是转自一个论坛。后来因为没用上,我也就没有再仔细完善了。那个地方我也不记得,手头暂时没有Abaqus,不知道具体是什么东西。

  4. 单元删除的功能可以在ABAQUS/Standard中应用,只需要在field output中勾选STATUS变量即可。

  5. 想问问老师,

    我也是做复材冲击建模的,然后实际情况是,epoxy的话,在冲击过程中因为温度原因,降解了,模拟的变现应该就是删除了,因为温度的删除,该怎么实现呢?

  6. 您好,请问删除单元和没有删除单元的接触还在吗?比如我柱中间单元删除了会形成偏心加载吗?

    • 单元被删除是因为它已经被彻底破坏了,也就是没法承受负载了。虽然不太了解你说的情形,多半就是偏心吧 😀

雁过留声,人过留名

您的电子邮箱地址不会被公开。 必填项已用*标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南
您可以在评论中使用如下的 HTML 标记来辅助表达: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>