COMSOL正则化PMMA断裂_吴建营_相场法 。 采用固体力学和泊松方程,正则化裂缝相场,实现宽度对断裂路径断裂应力无关,与时间无关。
断裂模拟中的相场法总带着点玄学色彩——特别是当你试图让裂缝宽度不受网格划分和求解器参数影响时。老吴搞的这个正则化PMMA断裂模型,算是把相场法里那些恼人的经验参数收拾得服服帖帖。咱今天不扯数学证明,直接上手看代码实现。
COMSOL里最骚的操作莫过于把相场变量φ和应力场玩捆绑销售。看看这个弱形式的表达式:
// 相场方程弱形式 test(phi)*d*(Gc*l0*grad(phi)'·grad(phi)) + test(phi)*Gc/(2*l0)*(1 - phi) = test(phi)*H_plus;这里的l0是正则化长度,相当于给裂缝宽度套了个紧箍咒。重点在于H_plus的处理——这货其实是应变能密度的Heaviside函数投影,确保裂缝只能张开不能愈合。代码里偷偷把历史最大应变能存成了隐藏变量:
// 历史变量更新 H_plus = max(H_plus_old, psi_plus);这种操作让时间项从控制方程里彻底消失,相当于把动态断裂问题拍扁成准静态问题。有个坑要注意:泊松比的设置必须配合正则化长度。当网格尺寸小于l0/2时,试试这个材料参数配置:
material: E = 3.0e9 [Pa] // PMMA典型弹性模量 nu = 0.35 // 刻意调高的泊松比 Gc = 300 [J/m^2]故意把泊松比调高到0.35可不是手抖——这能补偿正则化带来的能量耗散偏差。再看应力更新策略,核心是那个裂损本构模型:
sigma = ((1 - phi)^2 + k) * sigma_elastic;这里的k=1e-8是个数值稳定项,防止完全断裂区域出现奇点。但别小看这个二次方,它让裂缝尖端应力呈现指数衰减,实测发现当φ>0.85时应力已经衰减到原始值的3%以下。
跑完仿真最爽的时刻是看后处理——裂缝路径干净得像刀切黄油,宽度稳定在0.1mm左右。秘诀在于正则化项里的grad(phi)'·grad(phi),这玩意儿本质上是个人工粘度项,把数值振荡压得死死的。有同行试过用传统相场法搞PMMA,结果裂缝宽度随加载速率波动,换成这个正则化版本后,准静态和动态加载工况下宽度差异不超过5%。
最后留个调试秘籍:当裂缝出现锯齿状分叉时,别急着调网格,先把泊松方程里的Gc/(2*l0)项系数放大1.2倍试试。这招救过我好几个濒临崩溃的模型,原理嘛...大概是增强了相场扩散项的镇压能力?