Skip to content

MatDEM问题集

1.MatDEM软件可以记录裂隙的数量吗,或者某一结构体(局部)的裂隙数量?

答:breakId(breakId可以分别看出原始裂隙,剪切裂隙和拉张裂隙)

2.matdem最多支持多少粒子运算?

答:计算上限应该在400万到1500万。

3.监视点记录的数据在哪里查看,或者是怎么导出来

答:在status.SET中

4.如果要对模型箱内颗粒的粒径分层控制,底部粒径大,上部粒径小,有没有比较简单的办法?

答:先生成大颗粒,使其在重力作用下沉降至模型底部,然后在上方生成小颗粒,再次在重力作用下计算平衡

5.如果想把颗粒间的胶结强度设置为无限大,应该修改哪个参数或者使用什么函数呢?

答:nBondRate设为非常大,可以参考3DJointStress,或者把aFS0和aXb设大,颗粒的性质为a或m打头,连接的性质为n打头或Filter结尾

6.请问怎么关闭GPU计算,改不回cpu了

答:d.mo.setGPU('off')就可以了

7.图中picture F*S0是什么力?


答:颗粒间的弹簧拉伸或者压缩产生的颗粒间的相互作用力。

8.matdem中命令obj.dem将obj用d.mo替换后运行程序不发生改变,obj.SET.rightFZ中obj用d.mo替换就会报错。这个obj代表什么呢?

答:rightCommand是d.status中运行的,所以obj就是d.status

9.怎么记录这些中间步文件对应真实世界的时间呀?

答:时间是d.mo.totalT

10.请问可以利用matdem软件进行分析,在公开发表的文章中使用吗?

答:可以。

11.matdem的代码字体大小怎么放大?

答:下方代码可将文字放大。

picture

12.软件最多能算多少颗粒?

答:普通版本可计算30W粒子,学术注册版可计算100W粒子,如果需要计算更多,可选择智星云平台的云计算,设备软件为GPU高性能版本,可计算1000W颗粒。

13.怎么把matdem中的数据导出到execl中?

答:把数据写到文件中就行,搜一下matlab需要格式就行。

14.做matdem计算需要什么样的服务器?

答:建议还是租用GPU云或者买高性能台式机(选显存大的显卡,cpu主频高,内存至少是显存的两倍。如果模拟50万以上单元,则可以租用GPU计算云)比较合算

15.制作一块板去压单颗粒,如何才能提取到压力板对单颗粒施加的压力?

答:逻辑的话,应该可以筛选出与压力板接触的单元,先筛选与压力板距离小于一个直径的颗粒,然后遍历循环判断是与压力板颗粒接触,如果接触提取两接触颗粒之间作用力。这还涉及到压力板颗粒与模型颗粒一对多或者多对一的关系,具体得根据需要再看怎么做。

16.MatDEM软件对于重叠的颗粒Clump颗粒的 体积计算 和 惯性矩的计算采用的是什么原理?

答:matdem采用的是简化线性模型,不考虑颗粒的旋转。

17.对于clump重叠颗粒之间的直径有没有限制?

答:分散系数为一般为0.25,用于控制样品粒径的分布,即最大粒径与最小粒径的比值为(1+distriRate)2。

18.怎么把一个组设成刚性的,让里面的粒子不发生相对运动?

答:将单元定义为墙单元,d.defineWallElement(),可是实现粒子的固定。

19.picture如何解决这种问题?

答:把GPU开启的命令调整位置试试。原因是用GPU计算好像不能进行函数的调用,GPU计算后读取数据操作要有个将阵列转换成矩阵的一个步骤,可以手动修改,用gather()命令。

20.在模型中导入一个颗粒,放在半空中,把阻尼比设的很小,材料也赋完了,为什么平衡迭代后它就不往下移动呢?

答:重力是默认就有的,看下粒子的位移和速度。

21.做二维模型标准平衡的时候,发现选用100100尺寸的模型标准平衡一次耗时约是40250尺寸模型耗时的1/2,请问这个该从哪一方面来解释呢?

答:标准平衡为能量从一段传递到另一端消散的过程,由于最长维度上的堆积单元是两倍关系,同时粒子尺寸不变(即周期,时间步不变),所以标准平衡迭代时间最长维度单元比值的倍数。

22.模拟对应真实时间如何计算?

答:真实时间的计算为时间步✖迭代次数。

23.一次标准平衡的迭代次数

答:标准平衡的迭代次数=d.SET.StandardBalanceNum*d.SET.packNum。
d.SET.StandardBalanceNum:一个振动周期的时间步数量。
d.SET.packNum:最长维度单元数。

24.遇到过打开d.mo.isShear=1就无法计算的情况?

答:d.mo.setShear('on'),只改属性可能有些剪力变量没有初始化。

25.MatDEM的流固耦合能做三维的吗?

答:三维流固可以做的,仿真秀上有视频。

26.单轴模拟代码改为位移控制后出现的应力应变曲线为空白可能是哪些原因呀?

答:在单轴代码的基础上,添加上压力板topPlaten,然后用movegroup函数来施加位移荷载,然后定义应变,画出应力应变曲线(因为加了混合材料的步骤,添加组topPlaten是在混合材料这一步进行的),需要Z方向的应力就把Z方向的力提取到一个数组里面。

27.命令窗口提示内存不足,如何处理?

答:使用高性能设备,或者使用云平台计算。

28.用什么方法可以使结构体在受到力的作用后单元之间不分散开,还是原来完整的结构体?

答:setClump,ps:拉应变非常大时,clump也会断。超出邻居范围。

29.You may use the command f.define('fun/makeRing.m'); to define the function, and increase the computing speed! See help of f.define! 想请问一下遇到这个提示 需要管吗?

答:需要定义函数,也可不管,如果自定义函数放在for循环中,运行次数很多的话,先f.define定义下,放入缓存。速度会快很多。

30.建立的二维模型,厚度是多少呢?

答:如果定义L等于0的话,这样实际上颗粒在Y方向上厚度不一样的。如果要统一到B.ballR*2的话,可以运行B.convert2D(B.ballR);这个命令。

31.怎么增加初始模型边界和压力板的重叠量呢,让其更光滑一点?

答:如果要制作重叠为0.6的结构体的话,最开始制作结构体半径设置为ballR*(1-0.6),结构体建立完毕之后再把结构体单元的半径恢复(半径/(1-0.6)),就得到重叠为0.6的结构体,导入模型之后setclump就可以。边界是受保护的组,应该是B里面的参数设置边界。

32.matdem中的模型建立的时候如果不同颗粒尺寸差距较大会影响计算量或者占用内存吗,比如我的土颗粒和我的桩的颗粒尺寸不一样?这个影响大吗或者说一般最好在哪个范围之内呢?

答:是会有影响的,颗粒间半径差即分散系数,分散系数为一般为0.25,用于控制样品粒径的分布,就是最大粒径与最小粒径的比值为(1+distriRate)2

33.请问要使结构体团簇颗粒不分散,应该怎么设置呢?

答:setclump,  设置团簇。

34.设置了团簇,受到冲击,粒子会分散么?

答: 很难分散,除非颗粒超出邻居检索范围,通常要50%以上的拉应变。如果要100%以上拉应变不破坏,可以让单元间的重叠量增大。

35.如何获取100万颗粒的许可证?

答:在Matdem主程序界面上,点击注册,建议里面提交申请,可以申请100w粒子,如需更大粒子量的计算,可以使用智星云算力平台,是Matdem支持1000w粒子计算。

36.matdem可以根据已知颗粒坐标和半径大小生成颗粒么?

答:d.addelement命令可以,具体操作见《地质与沿途工程矩阵离散元分析》专著中。