
PFC2D5.0颗粒流离散元【热力耦合岩石热损伤】代码空心圆盘岩样轴心受热损伤案例代码。;热力耦合主循环 def thermal_mechanical_coupling loop local 1 1000 thermal_solve ;先算温度场 apply_thermal_strain ;热应变转换 mechanical_solve ;力学响应 crack_detection ;裂纹追踪 end_loop end这个循环把热传导和力学响应打包成连续剧每集都让岩石更裂化。温度场计算用显式差分法适合处理颗粒间非均匀传热。岩石颗粒的热膨胀系数处理有点意思;颗粒热膨胀处理 def apply_thermal_strain loop foreach gp ball.list local delta_T ball.extra(gp,1) - 20 ;温差计算 ball.radius(gp) * (1 alpha*delta_T) ;半径热膨胀 ball.prop(gp,young) * (1 - 0.003*delta_T) ;刚度退化 end_loop end这里玩了个双响炮——既让颗粒膨胀产生接触力又让弹性模量随温度下降。注意那个0.003的经验系数这是花岗岩实验标定的数据换成其他岩石得重新调参。PFC2D5.0颗粒流离散元【热力耦合岩石热损伤】代码空心圆盘岩样轴心受热损伤案例代码。空心圆盘模型生成有讲究得先挖个心形空洞;空心圆盘生成器 new gen num 2500 rad 0.1e-3 0.15e-3 prop density 2650 young 50e9 set heat_capacity 800 conductivity 3.2 ;中心空洞开挖 del range circle center 0 0 rad 0.01用半径0.01米的圆形删除范围造出空心结构颗粒总数控制在2500左右。热边界条件设置才是重头戏;热边界条件 fix heat_flux ball range circle center 0 0.02 rad 0.005 apply thermal_source q1000 range group heat_flux ;温度监测点 measure temp_create id 1 position 0 0.015 measure temp_create id 2 position 0 -0.015在圆盘上下轴心位置固定热流输入区域实测发现当热流密度超过800 W/m²时花岗岩开始出现环形裂纹。跑个2000步后调用裂纹可视化plot create Crack Evolution plot add ball thermal plot add crack red这时候会看到从热源中心向外辐射的裂纹网像蜘蛛在结网。有个坑要注意热膨胀导致的接触力突变会让计算不稳定得适当降低时步set mechanical timestep scale 0.6最后来个温度-应力耦合的彩蛋在measure模块里加个实时应力计算能看到温度波和应力波的相位差。当两者同相时裂纹扩展速度会突然加快——这就是热力协同作用的数字体现。