原创#基于python二次开发的围线积分+网格重划分+结果映射联合使用的裂纹随机扩展
基于python二次开发的围线积分(contour integral)+网格重划分(remeshing)+结果映射(map solution)联合使用的裂纹随机扩展
前面帖子已经详细介绍了如何使用围线积分(contour integral)+网格重划分(remeshing)来模拟裂纹的任意路径扩展,并提取裂纹扩展路径上的应力强度因子。那么在这个帖子上我们进一步升级原理算法,使得模拟与实际实验过程更加符合,具体内容如下:
首先,我们对之前的裂纹扩展原理进行大体的回顾,程序设计的总体原理图如下,
旧裂纹:
裂纹扩展一个增量步:
这个裂纹扩展分析过程与看到的几乎所有文献是一样的,是一个常规的裂纹扩展分析过程:提取分析步末(或者取第一次应力强度因子大于临界值的那个时刻)的应力强度因子,根据最大周向拉应力开裂准则计算复合I型应力强度因子,如果裂纹扩展,进行新裂纹的计算,在原来模型的基础之上,根据新的裂纹角度及裂尖坐标,sketch出新的裂纹,然后重新进行网格划分,但是,分析步、载荷都并进行任何改变,而是将整个载荷又重新加载一遍,再次得到载荷分析步末(或者取第一次应力强度因子大于临界值的那个时刻)的应力强度因子,再进行裂纹是否扩展的判断,这相当于把离散的不同裂纹长度单独计算模型整合成了考虑裂纹扩展角度的连续性裂纹扩展。这样的裂纹扩展过程只能得到裂纹扩展路径与实验大体一致,在考虑时间的分析中,不能得到裂纹随时间的扩展过程,反而,(例如薄板中心裂纹)因为裂纹长度越大,应力强度因子越大,所以得到更长的裂纹对应更短的开裂时间,这与实验过程是相悖的。
那么,问题来了:实际实验中裂纹是在加载过程中连续扩展的,而并不是裂纹扩展后载荷归零又重新从零加载了,而是裂纹在某时刻开裂后,在剩余载荷的进一步的加载过程中裂纹进一步扩展。
通过前面的分析我们知道,利用前面的裂纹扩展原理,通常对于一些静力结构分析来说,可以得到相对合理的裂纹扩展路径,但是,每次裂纹扩展分析都是全部载荷重新施加一遍,并不能取到裂纹长度随时间的变化曲线,而且对于与时间相关的分析而言,裂纹长度随时间的变化就尤为重要了,那么,我们的优化就是解决这一个问题,解决办法:在前面的理论基础上,利用ABAQUS的inp文件中的关键词*map solution来将旧网格的结果映射到新网格,施加剩余载荷,进行下一次的裂纹扩展。这个裂纹分析过程似乎看起来很容易,但是实际实施起来困难重重,我们经过长时间的探索终于克服了重重困难,实现了整个裂纹动态扩展过程。下面介绍裂纹扩展分析的整体原理,
初始模型建立分析步后要设置重启动输出(*map solution的计算需要重启动文件),如果裂纹扩展,计算新的裂纹尖端,提取odb开裂时刻的几何变形模型,裂纹扩展一个增量,再次重新分配材料属性,建立独立实体,创建新的分析步,时间长度为上次开裂后的剩余时间段,重新建立接触,重新施加约束,重新网格划分,重新施加载荷(载荷是对应上次开裂后的剩余载荷段),输出inp文件,在inp文件中添加*map solution命令,然后使用命令行提交新的inp文件。
需要注意的是:
1 从odb提取几何变形模型后,原来完整的模型边缘会变成由很多小的线段组成(小线段的多少与提取特征角度featureangle和网格密度有关),小线段的多少也影响了后续的载荷及约束的施加;
2 由于1中小线段的生成,所以载荷和约束的施加变的尤为困难,主要是因为边的选取通过findat命令也很难选择到,对于不同的模型,我们要视情况而定;
3 每次裂纹扩展的增量不要太大,因为,如果增量太大,新的裂纹尖端生成后,旧的网格结果映射到新的网格上,会导致裂纹尖端应力出现较大偏差,导致不合理的结果。
介绍了整个分析原理后,我们通过编制的二次开发程序分析一个例子来验证程序的正确性,采用薄板边缘裂纹,施加了位移载荷。
初始几何模型,约束,载荷,网格:
第一次裂纹扩展后,提取的裂纹扩展时刻的几何变形图及旧裂纹尖端与新生成的seam裂纹图示如下:
分析步的重新建立(第一次开裂后的剩余时间段)
载荷及约束的施加(剩余载荷段,总体载荷位移为0.05mm)
重新划分后的网格模型:
修改的inp文件:
命令提交job:
裂纹扩展过程:
裂纹经过40次扩展后即将扩展到模型边界,从图中可以看出,在裂纹扩展过程中,已经张开的裂纹面附近可能出现个别mises应力较大的区域,这是由于map solution映射结果导致的,这并不影响裂纹的扩展,因此可以忽略。
每次裂纹扩展时的K1与裂纹扩展对应的总时间的关系:
从图中可以看出,裂纹扩展过程中只要裂纹尖端应力强度因子达到临界值,裂纹便发生扩展,值得注意的是裂纹扩展过程中裂纹尖端的K1并不会逐渐递增,这是因为裂纹尖端的k1值并不是提取的每次裂纹扩展加载末的K1,下面我们给出裂纹扩展过程中每次夹杂末时刻的裂纹尖端应力强度因子值与裂纹长度的关系,
每次裂纹扩展后加载末的K1与裂纹长度之间的关系:
从图中可以看出,每次裂纹扩展过程中完全加载末时刻的应力强度因子是随着裂纹长度的增加不断增加的,这与大部分的文献中没有使用map solution的结果是一致的。
对于倾斜裂纹,也附上一个例子图:
倾斜角度更大一点的:
最后附上裂纹第一次扩展后的新提取的几何模型及inp文件,后续的模型不再附上:
对于两个水平裂纹的扩展如下图:
对于两个斜裂纹而言:
非对称的任意裂纹:
再上一个双孔边裂纹的随机扩展结果:
围线积分+网格重划分+结果映射技术与围线积分+网格重划分的结果对比:
****************************************************************************************************
****************************************************************************************************
围线积分+网格重划分+结果映射技术相比于围线积分+网格重划分技术而言它的一个优点是可以提取裂纹随时间的变化,知道裂纹在哪个时刻扩展到什么地方,对于施加热循环载荷而言,可以确定在当前循环次数下裂纹扩展到了哪里,另一个很重要的优点是对于复合结构材料而言,如果其余非裂纹扩展层不是纯弹性的,它依然可以很准确地评估裂纹扩展路径(前面的例子都是单一纯弹性材料),这在下面详细讲述:
模型介绍(包含有三层材料)
1 如果各层考虑为纯弹性,裂纹尖端的K1和K2随时间的变化如下:
K1和K2明显随着时间是线性变化的
2 如果考虑BC和TGO层的塑性,TC层纯弹性,裂纹尖端的K1和K2随时间的变化如下:
K1和K2明显随着时间是非线性变化的
下面给出两种情形下裂纹扩展角随时间的变化曲线:
从图中明显可以看出,对于纯弹性而言,cpd是随时间恒定不变的,这是因为K1和K2都是随着时间线性变化的,根据最大周向拉应力准则下的裂纹扩展角度的计算公式:
对于纯弹性模型而言,因为K1和K2随时间都是线性变化的,所以,如果施加增加a倍,则K1也增加a倍,K2也增加a倍,带入计算公式,裂纹扩展角度是不变的。
对于考虑了BC-TGO塑性的模型而言,裂纹扩展方向不再随时间呈现出线性变化,而这个时刻出现非线性变化的时刻正是模型开始进入塑性阶段的时刻,从TGO的PEEQ随时间变化图可以看出:
因此,当模型进入塑性阶段,裂纹的扩展方向随时间不再是线性的,对于围线积分+网格重划分技术是每次裂纹扩展的方向是采用的整个加载阶段最后时刻的裂纹扩展方向,那么对于考虑了某层塑性的复合结构中的裂纹扩展而言,这个技术显然对于裂纹扩展路径的评估是不准确的,那么,反观围线积分+网格重划分+结果映射技术,它的裂纹扩展方向提取的是刚达到开裂准则时刻的裂纹扩展方向,因此这种技术对于复合结构考虑某层塑性的情况下的裂纹扩展更为准确。
ABAQUS断裂模拟收徒 ,保证快速学会各种ABAQUS断裂模拟方法 1200/人(将享有各种插件以及程序,价值3000+、专门定制视频、全程亲自教学、各种模型调试及解答问题等等,倾囊相教)
如果有需要或者需要讨论的可以站内联系,或者qq1057593923;
查看更多评论 >