首页/文章/ 详情

颗粒力链描述式样的受力情况

2年前浏览5517

首先祝各位中秋节快乐,好长时间没有更新内容了,今天写一篇关于后处理的一个技术,后面会夹带点私货。本文的技术方法参考的同济付龙龙老师的颗粒力链方法,这里是我个人的理解写出来的实现方法,给各位参考。


一、理论方法


    本理论认为颗粒的连接形成颗粒的力链,所以直接以颗粒形成力链。这里关于颗粒力链有如下几个假设:1、形成力链的颗粒都属于高应力颗粒;2、颗粒之间主应力方向与颗粒接触方向的夹角有一定的阈值;3、组成力链的颗粒数有一个阈值。所以这里的技术方法也会有一些难点,包括高应力颗粒的筛选,方向夹角的计算等,下文一一解决。


二、高应力颗粒筛选


    这里将颗粒大主应力大于平均值的颗粒认为是高应力颗粒。使用的是ball.stress来获取颗粒的应力状态,也就是一个tensor。之后可以使用tensor.prin获取颗粒的主应力,这个返回值为一个vector,其中的xyz分别为大中小主应力。分为两步,首先第一次遍历获取总应力值来计算平均应力,第二次便利根据大主应力和平均应力的相对大小来判定是否是高应力颗粒。

image.png

    运行结果如图,这里以直剪实验来表现,其实是可以看出来高应力颗粒的分布和力链分布还是一致的。



image.png



三、单个颗粒的力链延申


    一个力链颗粒的延申方向需要有两个条件:1、延申方向的颗粒属于高应力颗粒;2、主应力和颗粒连线夹角小于阈值alpha;3、延申方向的颗粒是满足1 2条件中颗粒中的最大应力对应的颗粒。

    这里的一个点是使用math.atan反三角来获取应力的角度theta。连线向量为ball_L。其余的没啥难点,仔细阅读应该是可以看懂的。

    最终返回值就是下一个力链颗粒


image.png

image.png

image.png

四、单条力链的生成


    这里传入的是某个颗粒,然后形成一条力链,力链中的颗粒会储存在一个map结构中-map_lilian。这里会调用上面介绍的函数来计算,从一个颗粒开始不停的计算下一个颗粒,知道下一个颗粒的类型不是“Ball”为止,这里也对数目进行判定,如果小于3就不对其进行生成。

image.png

五、所有力链的生成


    这也是我们调用的主函数,对高应力组中的颗粒进行遍历即可。

image.png

效果为:


image.png


    可以看出和contact的效果几乎差不多,但是其作为一种比较新颖的后处理方式还是比较有意思的,这里也可以对力链进行统计分析,其实也是类似与颗粒玫瑰花图类似的方式。

image.png

结果为:


image.png


可以看出只有三种尺寸的力链,分别是3个颗粒、4个颗粒和5个颗粒,基本上力链中的颗粒数越多,其数目越少,这个也是合理的。



    最后对2021版新课程做一下说明,目前免费开放前39节课,到双轴为止,其实到这里也是满足入门需求了。

    40节之后的课程付费开放,目前定价89元,购买后可获得配套的代码。

    下面为课程的目录图,后续也会继续更新。


image.png

image.png

image.png

image.png

后面还会继续更新,更新内容不定。



代码&命令科普PFC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-07-20
最近编辑:2年前
lobby
硕士 |擅长颗粒流PFC
获赞 872粉丝 4943文章 83课程 22
点赞
收藏
作者推荐
未登录
3条评论
W1134430508
签名征集中
1年前
对于三维clump试样 这里面如何获取其应力呢?如ball.stress(bp)对应clump怎么弄呢?
回复
~~
签名征集中
2年前
老师,为什么我这个代码出不来结果
回复 2条回复
~~
签名征集中
2年前
你好老师,这个有没有对应的视频讲解呢
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈