首页/文章/ 详情

三种生成预制裂隙的方法

8月前浏览8866

本文摘要(由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
最近编辑:8月前
lobby
硕士 |擅长颗粒流PFC
获赞 912粉丝 5298文章 83课程 23
点赞
收藏
作者推荐
未登录
6条评论
TAT
签名征集中
1月前
*** Bad conversion of parameter number 1 (camt).
这个的意思是参数设置不对导致不收敛吗
回复
TAT
签名征集中
1月前
请问出现这种问题是为啥?
Keywords: ball brick call calm clean clump cmat configure contact
continue cycle define dfn domain echo exit fish fos
fragment geometry group gui head
回复
M.oan
签名征集中
2月前
请教一下在删除墙内颗粒时,一直报错,错误是Bad conversion of parameter number 10 (0).
Expected toktens:
2D vector
of floating point values
回复
夏你一跳
签名征集中
1年前
楼主大大,这个四:效果比较 里第二个图片如何让crack_shear和crack_tension和原来自己定义的dfn一起显示呀
回复 1条回复
柠檬不在酸
签名征集中
1年前
老师你好,我想定义的裂隙不处于中心,这时怎么定义删除颗粒的range
回复 2条回复
A·风过不留痕
签名征集中
2年前
啊,楼主救救,我试了试您的第三个方法,然后显示vector未落入domain范围内,但是我将domain扩大很多倍还是不行,是这个错误提示不是上面的意思还是怎么回事呢,谢谢!
回复 3条回复
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈