首页/文章/ 详情

离散元模拟休止角

2年前浏览2653

休止角的计算常用的有自然下落,然是这个方法受限制于颗粒数目,而且随机性较大。

而滚筒法在低颗粒数目情况下也能有比较好的模拟效果。

这里给出三种材料的计算结果。


(1)砂土颗粒


首先在生成圆形容器并且生成颗粒,加重力平衡











new domain extent -1 1wall generate circle position 0 0 radius 1ball distribute porosity 0.28 radius 0.006 0.009 range annulus center 0 0 radius 0 [1-0.009]...                                        plane o 0 0 dip 0 belowcmat default model linear method deformability emod     100e6  kratio 1.74 property fric 0.5 ball attribute density 2.7e3 damp 0.7cycle 2000 calm 50set gravity 9.8solvesave sample


以上为得到初始状态所需的代码。

然后简单的给圆形容器一个滚动速度便可以了,注意墙和球之间的摩擦效率要很大,这样模拟效率高。























ball attribute displacement multiply 0cmat add model linear method deformability emod   100e6  kratio 1.74 property fric 1.5 range contact type ball-facet [time_record=2]set mech age 0[time_record=mech.age]def savefile        if mech.age-time_record > baocunpinlv then        filename=string.build("jieguo%1",count)        command            save @filename                    endcommand        time_record=mech.age        count  =1    endif    endset fish callback -1.0 @savefilewall attribute centrotation  0 0 spin 50solve time 50

50s效果不够的话,可以继续运行最后一句话。

最后颗粒表面会稳定在某一个角度,这个角度就是休止角。简单用量角器量,或者用图像处理方法得到表面轮廓,进行线性拟合,都可以得到这个角度。


(2)稻谷颗粒


这里介绍一下PFC实现非圆形颗粒的方法——clump

用户可以引入图形轮廓文件,然后生成一个clump模板。

之后便可以像生成ball一样在算例里面生成clump了。

如图:


用户可以指定这个clump的参数,如果计算速度足够的话,这个轮廓可以显示的更加好。

下面给出变形的动图:



我这里没有完全计算完,这个已经算了三天三夜了,有条件的同学可以继续去算,下面附上代码:











































new domain extent -1 1wall generate circle position 0 0 radius 1geometry import daogu.dxfclump template create name daogu ...     geometry daogu ...    surfcalc bubblepack ratio 0.3 distance 150clump distribute porosity 0.18             ...                  resolution 1.0            ...                  numbin    1               ...                  diameter                  ...                    bin 1 size 0.03 0.045 ...                        volumefrac  1.0     ...                        template daogu       ...                            range annulus center 0 0 radius 0 [1-0.06]...                                        plane o 0 0 dip 0 below;clump distribute porosity 0.28 radius 0.006 0.009 range annulus center 0 0 radius 0 [1-0.009]...                                        ;plane o 0 0 dip 0 belowclump attribute density 3e3 damp 0.7cmat default model linear method deformability emod     100e6  kratio 1.74 property fric 0.5cycle 2000 calm 50set gravity 9.8solvesave sampleclump attribute displacement multiply 0cmat add model linear method deformability emod   100e6  kratio 1.74 property fric 1.5 range contact type pebble-facetset mech age 0[time_record=mech.age][baocunpinlv=2]def savefile        if mech.age-time_record > baocunpinlv then        filename=string.build("jieguo%1",count)        command            save @filename                    endcommand        time_record=mech.age        count  =1    endif    endset fish callback -1.0 @savefilewall attribute centrotation  0 0 spin 50

solve time 300

(2)碎石颗粒


碎石的堆积角的关键点不是它容易碎,而是它表面的不规则轮廓。

做数值模拟首先要分析,保留你所需要的关键信息。

如果你做碎石的压缩力学之类的东西,那你主要考虑碎石的易碎性。

如果你做这种堆积角,那么碎石的表面不规则性则是你所要考虑的关键!

如图


这里用clump生成一个不规则的碎石模型,然后后面就跟ball一样,这里没有计算到最终状态,已经算了三天三夜了,伤不起。



代码如下:









































new domain extent -1 1wall generate circle position 0 0 radius 1geometry import kuaiti.dxfclump template create name gangti ...     geometry kuaiti ...    surfcalc bubblepack ratio 0.3 distance 150clump distribute porosity 0.12             ...                  resolution 1.0            ...                  numbin    1               ...                  diameter                  ...                    bin 1 size 0.03 0.045 ...                        volumefrac  1.0     ...                        template gangti       ...                            range annulus center 0 0 radius 0 [1-0.06]...                                        plane o 0 0 dip 0 below;clump distribute porosity 0.28 radius 0.006 0.009 range annulus center 0 0 radius 0 [1-0.009]...                                        ;plane o 0 0 dip 0 belowclump attribute density 3e3 damp 0.7cmat default model linear method deformability emod     100e6  kratio 1.74 property fric 0.5cycle 2000 calm 50set gravity 9.8solvesave sampleclump attribute displacement multiply 0cmat add model linear method deformability emod   100e6  kratio 1.74 property fric 1.5 range contact type pebble-facetset mech age 0[time_record=mech.age][baocunpinlv=2]def savefile        if mech.age-time_record > baocunpinlv then        filename=string.build("jieguo%1",count)        command            save @filename                    endcommand        time_record=mech.age        count  =1    endif    endset fish callback -1.0 @savefilewall attribute centrotation  0 0 spin 50solve time 70


这里将稻谷和此处的轮廓图附上,我这里是用adobe illustrate画的二维图,然后导出的dxf

链接见附件




来源:超级大的lobby

附件

5积分链接.txt
离散元PFC材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-28
最近编辑:2年前
lobby
硕士 |擅长颗粒流PFC
获赞 880粉丝 4980文章 83课程 22
点赞
收藏
未登录
2条评论
仿真秀1001193132
签名征集中
8天前
很好!不错!
回复
孙可乐
签名征集中
2年前
大神,要是想通过dxf导入clump轮廓的话一次只能导入一个是吗,如果想导入很多怎么实现
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈