直接上干货!这次咱们玩点硬核的——用PFC搞单轴压缩试验,重点解决非均质材料破裂过程的可视化问题。先甩个代码框架镇楼

张开发
2026/4/13 7:04:28 15 分钟阅读

分享文章

直接上干货!这次咱们玩点硬核的——用PFC搞单轴压缩试验,重点解决非均质材料破裂过程的可视化问题。先甩个代码框架镇楼
PFC单轴压缩代码非均质模型包括声发射根据裂纹数截图同时输出应力和位移云图数据;颗粒系统初始化 new domain extent -5 5 wall generate box -2 2 ball distribute porosity 0.3 radius 0.1 0.15 box -2 2 ;非均质参数设置 [ball.prop(young) 5e9 * (1.0 0.5*random.normal)] [ball.prop(friction) 0.5 0.3*random.normal]这里有个骚操作用随机函数给颗粒弹性模量和摩擦系数加扰动。random.normal生成正态分布随机数让材料参数呈现天然的非均匀特性。注意扰动幅度别太大否则模型可能直接散架。加载环节要搞点动静监测;声发射监测 fish define crack_monitor global crack_count 0 global ae_events list end [crack_monitor] contact break begin [if contact.prop(state) broken crack_count 1 list.add(ae_events,contact.pos) ]这段fish代码在接触断裂时自动记录裂纹位置配合history命令可以实时绘制裂纹发展曲线。建议每1000步用plot bitmap filename crack_string(step).bmp自动截图后期合成动画帅炸PFC单轴压缩代码非均质模型包括声发射根据裂纹数截图同时输出应力和位移云图数据云图输出是重头戏位移场得这样抓fish define save_cloud io.out(stress.csv) loop foreach bp ball.list [local pos ball.pos(bp)] [local sxx ball.stress.xx(bp)] io.write(pos.x,,,pos.y,,,sxx) end_loop io.close() end [save_cloud interval 500]这个数据采集方案实测每秒能处理10万级颗粒量。用Python做后处理时建议上matplotlib的tricontourf函数比常规插值方法更吃得住非结构化数据。最后来个暴力美学加载wall velocity y -0.1e-5 range y 2 wall velocity y 0.1e-5 range y -2 solve time 1e-3注意应变率别设太高否则容易数值爆炸。建议配合mech ratio监控系统平衡状态当接触力波动超过5%时自动暂停加载。跑完记得检查三个产物裂纹分布图带编号标注、应力云图csv、位移矢量图。实测在i7-12700H上10万颗粒模型大概需要3小时跑完完整破裂过程。建议睡前开跑睡醒直接收菜——别问我是怎么知道的。

更多文章