ABAQUS显式和隐式Hashin失效的损伤起始判断准则一致,但是单元删除策略不同,如下ABAQUS帮助文档中提到:

1. Standard中,Hashin中所有的失效模式中的损伤系数达到dmax才会认为材料失效。

2. Explicit中,当任意纤维失效模式(纤维拉伸或压缩)中的损伤系数达到dmax即认为材料失效。

abaqus python 选择 外表面 abaqus中内部的面选不中_子程序

我们回头来看Hashin失效准则:

abaqus python 选择 外表面 abaqus中内部的面选不中_经验分享_02

隐式计算中,当纤维拉伸失效准则中的失效系数达到1时,材料点还在基体方向继续有承载。而显式计算中,纤维拉伸失效满足后,材料点在基体方向即没有承载能力。

但是满足上面的条件还不足以删除单元,帮助文档中提到:

1. 隐式计算中需要所有单元截面所有的材料点失效,才会判断删除单元。

2. 显式计算中所有单元截面处任意一个材料点失效,即可判断单元删除。

abaqus python 选择 外表面 abaqus中内部的面选不中_子程序_03

 例如一个壳单元中可能有3个材料点(积分点),当其中一个材料点失效时,显式计算中单元即删除,隐式计算中单元可以继续承载。

总结:

1 隐式计算更为保守,需要所有的失效模式达到最大损伤系数,判断材料点的失效,所有截面的所有材料点失效才能判断删除单元。

2.显式计算中,纤维拉伸/压缩失效模式达到最大损伤系数,判断材料点的失效,所有截面的任一材料点失效即会删除单元。

题外话:在显式计算中,会出现某些复杂应力状态下(例如开孔件拉伸),即使满足了Hashin失效准则,单元仍然具有承载能力。这与ABAQUS内部删除单元策略有关。不过通过自写vumat已经可以解决abaqus显式计算中满足2D hashin失效而不删除单元的问题。

下图是损伤后云图(左边为两个子程序云图,损伤判断略有不同)与ABAQUS的Hashin接近:

abaqus python 选择 外表面 abaqus中内部的面选不中_帮助文档_04

 在ABAQUS的Hashin失效准则中有一个系数

abaqus python 选择 外表面 abaqus中内部的面选不中_经验分享_05

,默认该系数为0,此时纤维方向是最大应力准则,该系数为1是才是Hashin失效,这个需要十分小心(都是泪得出的结论)。


abaqus python 选择 外表面 abaqus中内部的面选不中_子程序_06

系统Hashin,系数为1时与hashin子程序云图对比

abaqus python 选择 外表面 abaqus中内部的面选不中_显式_07

系统Hashin,系数为0时与最大应力子程序云图对比

上图就是系数为0和1时的纤维损伤系数对比。