Otis
#30
最后几天截止时间我也来加一点:
- 实现了三维离散元的linear contact model/HM model/linear rolling contact model
- 并加入了库伦摩擦定律以及rolling、twisting的计算,使得球形颗粒能做出非球形颗粒的效果
- 采用verlet table减少neighbor contact list的更新次数
- 用两个field写了一个简单的hash table来做切向力的积分,减少哈希冲突
- 利用taichi写了几个简单的四元数函数,完整地考虑了颗粒的旋转与方位
附上我的源码以及动画:
这是不加rolling的自然休止角
由于文件大小限制,加了rolling和twsiting之后的自然休止角动图请移步
并且通过计算几个案例的计算,验证了代码的可靠性。
5 个赞
勘误:
先前文档DEM_Part.pdf部分内容有误,现更正如下。
DEM_Part_corr.pdf (326.1 KB)
2 个赞
压线来投个稿。我尝试改进原有方法在出现大粒子的情况下无法使用小网格的问题。改进后的方法能在有大粒子存在时依然使用较小的网格,只不过这样做性能的提升并不高,不知道有没有更好的处理方法。方法阐述详见github README。
Github repo: GitHub - DesmondZhong/dem
动图
2 个赞
新手小白也来压线投个稿,本意是想把圆形离散元扩展到椭圆形,奈何在椭圆形接触判断这块问题太大,目前只是基于圆形颗粒初步地实现了椭圆形颗粒的可视化,之后多向各位大佬请教。
Github repo: GitHub - JieQi-github/taichi_dem_ellipse_visualization: ellipse visualization based on taichi_dem
GIF:
1 个赞
sanli
#34
向各位大佬学习,模拟下福彩双色球红号"33选6",玩(play)时球随机跑,抽奖(draw)时球自由落体,速度较小时,最下边6个为中奖号码
Githup repo: GitHub - sanlishi/lottery_sim
2 个赞
kphmd
#35
优化内容:
1:list的内存排布。
2:增加gf2,保存粒子id 改为 保存粒子数据。
本地测评:从12.4FPS 优化到 15.1FPS(参数相同的情况下测试)
dem.py 修改后的代码
dem_v0.py 同参数的原始代码
代码:
kphmd/Taichi_DEM (github.com)
1 个赞
Otis
#36
请问你修改过后的list排布里grid_sp=8这个参数一般取多少能最大化的优化性能呢,跟每一维度的网格数有关嘛
kphmd
#37
可能和硬件缓存大小相关。不过利用太极编程语言的优势之一,修改少量代码就可以适配不同的硬件配置。
参考视频 高性能编程基础知识_哔哩哔哩_bilibili
DEM 代码优化挑战赛目前已经截止投稿了~ 感谢以下几位投稿选手:@llinus、@ mrzhuzhe、@ Mugi、@ Denver_Pilphis @ MuGdxy、@ Otis、@ DesmondZhong、 @JieQi-github、@ sanli、@ kphmd
代码评审&投票时间:10/31-11/4
敬请期待!
1 个赞
投票通道已开启!大家可以为自己喜欢的作品投票了~
投票时间:10/31-11/4
zane
#42
这个好棒,直接用粒子做弹性体模拟。这个模型粒子数多少,运行帧率多少呢?
斯坦福兔子形状的团块,颗粒数82337,初始胶结数307821。
因为是工程定量仿真,所以暂时做不到实时计算和显示,可视化GIF动图是通过存档数据后处理得到的。兔子下落这个算例时间步取为2.63e-5s,一共持续时间10s,故一共跑约380000步。将其等分为200个存档点,则每个存档点约1900步。每个存档点是可视化序列的1帧,所以导出的GIF是20fps。从计算时间来看,使用Nvidia A100 80GB VRAM GPU跑本例计算用时3211.26s,相当于1秒计算118步=仿真体系中的0.0031秒。以1秒60帧为基准的话,相当于0.1862fps。
我们将在11月25-28日于海口举办的第十二届中国颗粒大会上详细介绍,欢迎关注
1 个赞
zane
#44
好的,了解了。效果很棒,速度看来离实时应用还有些差距。
评选已结束
经过社区投票和评委评审,DEM 代码优化挑战赛结果如下:
恭喜以上几位同学~ 也感谢参与活动的小伙伴们~ 奖品和周边将在近期联系大家登记信息并发出~
4 个赞
aaguai
#49
你好,感谢大佬分享的code! 感觉受益匪浅,但是关于contact force计算前的部分,就是利用前缀和prefix实现加速接触检测,这里感觉好难理解,请问这个环节有什么资料之类的有比较详细的解释或者可以参考的吗