该问题的起源是前几天一个粉丝向往请教一个问题:使用已有的数值方法分析拉伸中心圆孔板双裂纹问题时,应力场和位移场和 Abaqus 总是对不上,看看是哪里出现问题了。正值我有时间,就结合具体的案例,使用 MFEAOOP 进行有限元分析和 Abaqus 对比,合理验证后并答疑解惑。
本期就该问题进行 MFEAOOP 使用分享,正如推文开头中的示意图所示,圆孔板上下受到表面压强荷载,左下角节点进行固定约束,右下角节点约束竖向位移,处理裂纹时我采用的是“缺口”的形式,也可以使用“线”的形式,均可。
我为了测试程序的计算速度,将网格尺寸设置的较小,对整体结构进行分析,大家在分析这种对称结构时,可采用 1/4 结构进行局部分析,网格尺寸也可以对于裂尖部位局部加密处理等微操。
在 Abaqus 划分完网格后就可以导出 inp 文件,在 MFEAOOP 中进行分析了,模型配置文件:
{
"name": "CRACK",
"scale": 1,
"inpFileName" : "./input/Abaqus/Job-1.inp",
"mesh" :{
"etype" : "CPS4"
},
"materials" : [
{
"name" : "Material-1",
"category" : "Elastic",
"data" : {
"E" : 1E3,
"v" : 0.3,
"t" : 1
}
}
],
"bc" : [
{
"name" : "fix1",
"type": "constraint",
"direction": "xy",
"nset" : "Set-L"
},
{
"name" : "fix2",
"type": "constraint",
"direction": "y",
"nset" : "Set-R"
},
{
"name" : "pressure1",
"type": "pressure",
"surface" : "top",
"value" : 10
},
{
"name" : "pressure1",
"type": "pressure",
"surface" : "bottom",
"value" : 10
}
],
"solve" : {
"calculateStress": true,
"solver" : "direct",
"tolerance": 1e-8,
"maxIterations": 1000
},
"plot" : {
"fields" : ["Umag","U2","U1","Mises"],
"average" : "simple",
"nodeLabel": false,
"edgeColor" : "none",
"faceColor" : "#77AC30",
"alpha" : 1,
"colorMap" : "coolwarm",
"discretize" : true,
"discretizeNum" : 12
}
}
MFEAOOP | Abaqus |
---|---|
MFEAOOP | Abaqus |
---|---|
从上面的场数据对比可认为MFEAOOP的计算精度良好。
********************* MFEAOOP Version 1.4 ********************
About: 基于Matlab平台的小型有限元通用分析程序,采用面向对象的编程风格
Theory: 《有限元基础编程百科全书》
Author: 易公子
欢迎关注微 信公众 号/B站: 易木木响叮当
Email: yimumumfea@163.com
****************************************************************
Submitted: 2025-01-02 16:30:20
Analysis Input File 0.2618 s
----Number of nodes: 66429
----Number of elements: 65726
----Element type: CPS4
----Number of dofs: 132858
----Constraint: 0.0029 s
----Constraint: 0.0012 s
----Pressure: 0.0127 s
----Pressure: 0.0040 s
Assembly global stifness matrix: 0.5633 s
Using direct solver for small systems...
Solving Systems of Linear Equations: 0.7805 s
Stress calculate: 2.1493 s
Write result File 0.0869 s
Write vtk File 0.2289 s
Plot 0.2627 s
Completed: 2025-01-02 16:30:25 4.3947 s
****************************************************************
对于断裂问题中的一些断裂参数,可进一步进行计算,场数据与 Abaqus 吻合良好,参数的计算只是计算方法问题,这里不做过多描述,感兴趣的小伙伴可在此基础上进行开发,比如在模型中定义一条路径,然后在 MFEAOOP 中计算这条路径的节点位移/应力值,进行二次计算。
最后,木木再多说一句:只要对一件事情感兴趣,就有一千种方法实现它,并能玩出花;若是抱着实用主义去面对,那就只有一种方法实现。不是说每件事情都要感兴趣,而是想表达做事情并不都是为了有短期用处才去做。
下一期将会大家带来更有意思的开发案例:在本次案例的基础上,基于 Python 二次开发对 odb 文件进行重绘,为大家带来更多的数据处理小技巧。
感谢你的阅读,我们下期再见~