首页/文章/ 详情

答复同学提问---如何在离散断裂网络DFN中计算RQD指标

2年前浏览1152

1 引言

昨天晚上有位同学问了一个问题,如何实现在离散断裂网络DFN中计算RQD【Deere's RQD---现代岩体工程分类方法的基石 (Part II)】,他已经给出了计算思路,如下图所示:(1) 使用geometry生成钻孔;(2)计算钻孔与DFN之间的intersection;(3) 把钻孔分为三个计算分区:端部1[fracture.intersect.end1]、中部和段部2[fracture.intersect.end2],分别计算三个分区大于10cm的长度,然后即可得到RQD的值。

早上起来之后磨了这个问题,步骤(1)和(2)给的计算思路相同但在计算每段长度使用了(3)和(4)不同的方法。我没有使用PFC,在UDEC中作了一个非常仓促的测试,但是代码应该基本上通用。下面简要一下我的计算思路,供这位同学和其他感兴趣的同学参考使用


2 RQD计算过程

(1) 生成钻孔:



geometry set 'borehole'geometry edge create by-position (-1,0)  (1,0)

上述代码产生一个长度2m的水平钻孔,我不记得在哪篇公 众 号文章中提到过,计算RQD的最大取样长度不应超过2m。


(2) 产生DFN


fracture generate fracture-count 50

使用默认的模板产生50条随机断裂。


(3) 计算相交点



fracture intersection compute ...with-geometry 'borehole' intersection-set 'frac_bh'

钻孔与DFN共有7个交点。


[number_of_fracture_intersections = fracture.intersect.num]


(4) 计算交点之间的距离

与这位同学给出的思路稍有不同,我没打算分区,而是计划直接在代码中进行判断。使用

fracture.intersect.find( )获取交点的指针,然后使用fracture.intersect.pos1( )获取交点的坐标,由于纵坐标为0,因此只用comp.x()获取x坐标即可。通过两个点的坐标相减即可计算出两点之间的距离,然后判断长度dis是否大于0.1,如果大于0.1,那么把这个距离储存在数组map()中【FISH: 使用MAP数组实现loop foreach】,循环计算7个交点之间的距离,最后计算并判断最后一段距离。这个过程的代码如下图所示:

最后用大于10cm的长度总和sum除以钻孔长度2m,即可求出RQD的值。


3 结束语

上述过程简要概括了在DFN中计算钻孔的RQD,由于边写本文边敲代码,代码写得完全不规范,仅用于临时测试,但已经给出了具体思路和需要使用的函数,基本上免费回答了这位同学提出的问题。此外,FISH语言在数据储存和操作上不够灵活,以后将用Python重新写一个通用的计算RQD的程序,以适应不同的钻孔方向。与DFN相关的公 众 号文章 Top 20如下所示,供扩展阅读。  

来源:计算岩土力学
断裂通用PFC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-27
最近编辑:2年前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 150粉丝 1103文章 1782课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈