首页/文章/ 详情

三种生成预制裂隙的方法

1年前浏览5642

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


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


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


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


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


    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
        最近编辑:1年前
        lobby
        硕士 |擅长颗粒流PFC
        获赞 834粉丝 4512文章 84课程 21
        点赞
        收藏
        作者推荐
        未登录
        3条评论
        夏你一跳
        签名征集中
        9月前
        楼主大大,这个四:效果比较 里第二个图片如何让crack_shear和crack_tension和原来自己定义的dfn一起显示呀
        回复
        柠檬不在酸
        签名征集中
        11月前
        老师你好,我想定义的裂隙不处于中心,这时怎么定义删除颗粒的range
        回复 2条回复
        A·风过不留痕
        签名征集中
        1年前
        啊,楼主救救,我试了试您的第三个方法,然后显示vector未落入domain范围内,但是我将domain扩大很多倍还是不行,是这个错误提示不是上面的意思还是怎么回事呢,谢谢!
        回复 1条回复
        课程
        培训
        服务
        行家
        VIP会员 学习 福利任务 兑换礼品
        下载APP
        联系我们
        帮助与反馈