单元失效与删除 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/>。转载请保留此信息及相应链接。

2 条关于 “单元失效与删除 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 变量

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

雁过留声,人过留名

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

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南