首页/文章/ 详情

三种生成预制裂隙的方法

2月前浏览7108

本文摘要(由AI生成):

文章介绍了三种在模拟中生成预制裂隙的方法。第一种通过指定条件和删除颗粒生成裂隙,但受粒径影响;第二种使用dfn施加sj模型,但裂隙中间可能存在颗粒;第三种在预压时生成wall并删除其内颗粒,然后加胶结删除wall,裂隙平整不受粒径影响。文章比较了三种方法的效果,推荐方法三。


 预制裂隙的裂纹扩展也是近年比较热的研究课题,因为岩石往往不会是一个完整的,所以研究含裂隙的岩石非常有必要。但是随机裂隙又不是特别的规律性,所以预制裂隙的研究就显得尤为重要。


    这里介绍三种预制裂隙的方法。


一、删除颗粒形成预制裂隙


    这个是最简单也是最直接的方法,直接根据裂隙的角度、长度、厚度,在我们需要加裂隙的地方删除原本存在的颗粒。注意这个裂隙的平整度对颗粒数要求比较高,如果裂隙厚度大于颗粒粒径很多的话,效果会比较好点。


    下面为在已经加胶结的试样中删除颗粒的方法:









restore jiajiaojie[houdu=10e-3]
ball delete range plane origin 0 0  dip 30 distance [houdu*0.5] x [-wlx*0.1*math.cos(30*math.degrad)] [wlx*0.1*math.cos(30*math.degrad)]cycle 1 solvesave addliexi


    这里的裂隙都为角度为30,厚度为10mm,长度为0.1*wlx的裂隙。


    这里的逻辑也比较简单,range后面加多个条件是取交集的意思,这里其实有两个range。


    第一个range是一个plane,plane可以指定某个半平面,还有个用法,是指定这个plane线附近的区域。这里就是第二个用法,origin和dip确定直线,distance确定的是离这个直线的距离,我们试一下不加后面x条件下是什么效果:这里因为厚度没有比粒径大很多,导致某些颗粒没删除,可以看出不加x条件的话,删除了有厚度的线区域。


640.png


    加了x条件取了交集后,就是我们想要的区域了:


image.png


二、使用dfn施加sj模型


    在PFC手册里面也有一个使用dfn加滑裂面的例子,这里道理一样,先生成我们所需要的dfn,然后在dfn某距离内生成sj模型就可以了。这个逻辑也不难,sj模型我了解的不深,所以这里我也不敢多讲。














restore jiajiaojie[houdu=10e-3]dfn addfracture dip 30 position 0 0 size [wlx*0.2]dfn property sj_kn 2e9 sj_ks 2e9 sj_fric 0.70 sj_coh 0.0 sj_ten 0.0 sj_large 1dfn model name smoothjoint install dist [houdu*0.5]cycle 1 solvesave addliexi


    效果如下:


image.png




三、直接生成预制裂隙的胶结材料


    这个方法是我比较推荐使用的,应该也没多少人会去用,这个方法的优点在于:


1)裂隙平整,且不会受粒径影响

2)不会像第二个方法一样在裂隙中间还存在颗粒


    这个方法的逻辑是在预压的时候,在裂隙位置生成wall,然后删除wall内的颗粒,并且继续伺服,之后生成胶结,删除这个wall。


    这部分代码可能比较复杂,这里的长度和角度忘了和前面统一了,用户可以自己修改一下。


    逻辑是根据裂隙的长度厚度和角度找到wall的四个节点,生成wall后平衡。



image.png

image.png

    运行完后,试样中间的蓝色就是我们的墙,这个是个矩形,因为比较薄,所以看上去像一条线。


image.png


之后加胶结并删除墙:






















restore liexi[pb_coh=10e6][ten_coh=2.7]cmat default type ball-facet model linear method deformability emod 10e8 kratio 1.5
cmat default type ball-ball model linearpbond method deformability ...            emod 12e8 kratio 1.5 pb_deformability emod 54e8 kratio 1.5 ...    property pb_coh [pb_coh] pb_ten [pb_coh*ten_coh] pb_fa 50 fric 0cmat applycleancycle 1solvecontact method bond gap [rdmin*0.2]wall delete walls range id 5cycle 1 solvesave jiajiaojie


image.png



四、效果比较:


方法一:


image.png

方法二


image.png

方法三:

图片


对上述三个方法进行评价:


如果生成宽裂隙,方法1和方法3都很好,方法2不太行。


如果生成窄裂隙,方法2和方法3都可以,方法1不太行。


综上:方法3大家可以好好学一下。

结构基础代码&命令离散元PFC科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-07-21
最近编辑:2月前
lobby
硕士 |擅长颗粒流PFC
获赞 851粉丝 4870文章 83课程 21
点赞
收藏
作者推荐
未登录
3条评论
夏你一跳
签名征集中
1年前
楼主大大,这个四:效果比较 里第二个图片如何让crack_shear和crack_tension和原来自己定义的dfn一起显示呀
回复 1条回复
柠檬不在酸
签名征集中
1年前
老师你好,我想定义的裂隙不处于中心,这时怎么定义删除颗粒的range
回复 2条回复
A·风过不留痕
签名征集中
1年前
啊,楼主救救,我试了试您的第三个方法,然后显示vector未落入domain范围内,但是我将domain扩大很多倍还是不行,是这个错误提示不是上面的意思还是怎么回事呢,谢谢!
回复 1条回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈