2025-11-12 06:25:39 女排世界杯美国

Abaqus中使用Python提取裂缝数据并用matplotlib库绘图

目前在Abaqus中,基于全局或局部嵌入Cohesive单元,以模拟非均质材料的裂缝扩展的方法已经相当普遍。我想POLARIS_InsertCohElem插件起到不小的作用。

后处理方面,也推出的POLARIS_CrackGeo插件提取Cohesive单元和XFEM模拟获得的裂缝数据。但如何出图来展示裂缝形态,成为插件用户的一大痛点。

在Abaqus中,Cohesive单元模拟的裂缝路径可以通过显示特征边的方式进行展示,但这种方法有几个方面的缺点:

虽然可以叠加显示出裂缝周边实体单元的应力、孔压等场量输出,但在表现裂缝自身场量结果时没有线图直观,如下例中显示缝宽的效果对比;

很难像线图那样凸显天然裂缝或颗粒边界以及其它特殊位置的Cohesive单元;

由于全局嵌入Cohesive单元,在单元共节点位置存在孔洞,部件变形后,孔洞呈现出小黑点的形式,无法去除,线图就完全不存在这些问题;

常用的编程绘图工具,目前以Matlab和Python matplotlib为主,Abaqus2021版本之后就已经内置了matplotlib库,因此本文以matplotlib库为基础,带大家绘制POLARIS_CrackGeo插件提取的裂缝线图。

第一步,了解数据文件结构

POLARIS_CrackGeo插件提取odb结果后,在ODB文件所在目录下,会生成两个与ODB文件同名的CSV文件,分别是:“odbName-XFEM/COH-infos.csv”和“odbName-XFEM/COH-Output.csv”:

infos.csv文件

用于存储所有破裂单元的裂缝面的节点坐标、裂缝破裂形式MMIXDMI和裂缝宽度信息;当提取的是XFEM裂缝时,仅输出节点坐标信息;当提取的是Cohesive单元裂缝时可输出MMIXDMI(场量有定义MMIXDMI输出)和裂缝宽度,裂缝宽度排序采用倒序记录:第一个裂缝宽度,为最后一个分析步的最后一帧所对应的宽度,第二个裂缝宽度,为倒数第二帧对应的宽度,依此类推……

读取infos.csv文件代码示例如下:

def readCohesiveInfo(fileName):

### 读取infos.csv文件,获得单元坐标信息

dataDict = {

}

f = open(fileName,'r')

lines = f.readlines()

f.close()

strDatas = lines[0].replace('\n','').split(',')

headDict = {

}

iPhone连拍模式全攻略:如何从新手变身抓拍达人?
官方:2026年世界杯揭幕战为6月11日,决赛为7月19日
top