本文摘要(由AI生成):
这篇文章通过离散元模拟对岩石的微裂纹发展进行了深入研究。文中首先指出声发射事件数与应力应变曲线之间存在关联,微裂纹的发展导致岩石破坏,并在破坏后继续产生更多微裂纹,直至试样完全失去强度,声发射停止。随后,通过绘制微裂纹总数的热点图,明确了裂纹发展的主要区域,并解释了算法原理。此外,文章还强调了在离散元模拟中进行能量分析的重要性,包括边界能、胶结应变能、颗粒应变能、阻尼能以及胶结破坏能等,这些能量的转化和演化对理解岩石破坏过程具有重要意义。总之,本文提供了对岩石微裂纹发展的深入洞察,为相关领域的研究提供了有价值的参考。
研究岩石内部的细观行为,常用的是CT断面扫描,可以非常清楚的看到岩石某一个断面上的裂纹分布以及破坏模式。而比较传统的方式,则是通过声发射技术监测岩石中的事件数。事件数是一个比较陌生的名词,我的理解是,岩石在破坏的时候,并不是一次性破坏完成的,往往是渐变破坏的过程。岩石在承受荷载的时候,内部会出现破坏,而一破坏则会发出”咔嚓咔嚓”的声音,这一个声音就是一个事件数,对应到岩石内部也就是一次微裂纹的形成。
离散元中PFC中有专门的fracture文件可以生成微裂纹,具体的解析就不说了,原理是在胶结破坏的地方用横线代表微裂纹,注意这个微裂纹是一个标记,是不参与力学计算的,并且之后会根据胶结两端的位置去更新微裂纹的位置。这个文件中记录的是微裂纹的总数目,而声发射的定义是单位时间内的事件数,所以需要对其中的变量进行一点点的加工。加工的方式也很简单,每隔一段时间的裂纹总数的数量就是声发射的事件数。
[calpinlv=-3e-5]
[pinlv_record=weyy 1]
[liewen_record=0]
def cal_zhenling
jiance
if weyy-pinlv_record<=calpinlv then
zhenling=crack_num-liewen_record
pinlv_record=weyy
liewen_record=crack_num
endif
end
这里用一个单轴压缩算例来显示处理后的结果,首先看一下应力应变曲线和微裂纹的发展图。
通过origin绘制双y图,将声发射的数据显示改成柱状图就可以形成我们经常在文献里面看到的声发射与应力应变曲线的关系图了,可以从图中分析出声发射的事件数和应力应变曲线是有关系的,当出现声发射时,曲线进入渐变破坏阶段,但是事件数的峰值发生在曲线的峰后,也是说明微裂纹的发展促使岩石发生破坏,岩石发生破坏之后,而又产生更多的微裂纹,直到试样完全失去强度,声发射停止。
下面这张图摸索了一个多小时才画出来,为微裂纹总数(声发射事件总数)的热点图,算法为某一个点附近搜索半径内的裂纹数目,输出x,y坐标和裂纹数目,在origin中绘制云图,然后在PPT中将两幅图叠加得到的。从这幅图可以看出裂纹发展的主要区域,基本上为一条斜直线。
计算代码如下,原理比较简单,看懂后可以进行修改。
def outqipao
tabpos_x=table.create("pos_x")
tabpos_y=table.create("pos_y")
tabmidu=table.create("midu")
n_split_x=20.0
n_split_y=40.0
x_inri=wlx/n_split_x
y_inri=wly/n_split_y
sousuo_rad=x_inri*2.0
weizhi_count=1
loop n(1,n_split_x-1)
loop m(1,n_split_y-1)
x_pos=-wlx*0.5 x_inri*n
y_pos=-wly*0.5 y_inri*m
table(tabpos_x,weizhi_count)=x_pos
table(tabpos_y,weizhi_count)=y_pos
n_count=0
loop foreach frac dfn.fracture.list
dist=math.sqrt((dfn.fracture.pos.x(frac)-x_pos)^2 (dfn.fracture.pos.y(frac)-y_pos)^2)
if dist<sousuo_rad then
n_count =1
endif
endloop
table(tabmidu,weizhi_count)=n_count
weizhi_count =1
endloop
endloop
end
@outqipao
离散元中能量分析一定要围绕转化来看,系统是能量守恒的,我们就需要研究哪些能量减少了,哪些能量增加了。就单元实验来讲,我们一般将墙体的边界能作为系统总能量的来源,对岩石来说,应变能会分为两部分,胶结应变能和颗粒应变能,这两个能量随着岩石的变形都会变大。动能我建议是不要记录的,我们单元实验一般需要满足准静态条件,也就是加载速度需要足够小,这时候动能几乎是没有的,动能会发生在破坏的时候,墙体的边界能会转化为动能,因为岩石破坏无法受力了。但是我们系统的阻尼会将动能转化为阻尼能和摩擦能,所以我建议是岩石的单元实验分析,只需要记录边界能、胶结应变能、颗粒应变能、阻尼能、摩擦能就可以了,如果有需要的话还可以加上胶结破坏能,胶结破坏能在bond_break里面entry(4)就是。下面为记录能量的代码,摩擦能忘了记录了,朋友们可以自己再完善一下。图4为能量演化图,算是比较经典的文献中可见的能量分析了。
def jiance
zongneng=wall.energy("eboundary")
dongneng=ball.energy("ekinetic")
yingbianneng=contact.energy.sum("estrain")
jiaojieneng=contact.energy.sum("epbstrain")
zunineng=ball.energy("edamp")
time=mech.age
end