PFC5.0颗粒生成方法总结

颗粒生成主要有ball create、ball generate、ball distribute。

一、规则排列颗粒的生成

1、对于规则排列的颗粒,最简单的方法是利用ball create+ keyword命令,按照颗粒排列规则,建立出颗粒体系。
2、采用ball generate+keyword方法生成,该方法生成的颗粒是没有任何叠加的,因此生成的颗粒之间孔隙率大,需要借助外力将之压紧
针对规则分布的颗粒,颗粒的位置与半径必须精确地计算与设置。在固定的模型范围内,如果颗粒不规则,颗粒往往无法投放进去,因此很难达到设计的孔隙率。另外,该方法生成的颗粒在边界位置不做任何处理,只判断颗粒的圆心是否位于投放区域。

二、随机分布颗粒分布

1、ball distribute + keywords 按孔隙比生成方法。
ball distribute命令生成的颗粒是不判断叠加量的,它的孔隙率只是用颗粒面积(或体积)与模型生成域面积(或体积)来计算的,在计算开始颗粒体系需要弹开,并计算至平衡
如果采用两个ball-distribute命令生成颗粒体系,两个命令间所生成的颗粒无关,不交叉判断所生成颗粒体系是否满足设计孔隙率。
2、利用ball distribute +keywords按颗粒级配生成方法
针对规则分布的颗粒,颗粒的位置半径必须精确地计算与设置。在固定的模型范围内,如果颗粒不规则,颗粒往往无法投放进去,因此很难达到设计的孔隙率。另外,该方法生成的颗粒在边界位置不做任何处理,只判断颗粒的圆心是否位于投放区域。
3、利用ball create 随机投放生成颗粒
注意:如果颗粒的孔隙率过低,在后续随机投放颗粒时需要尝试的次数越来越多,会降低颗粒的生成效率。此时可以将颗粒尺寸降低先快速投放生成颗粒,再利用类似ball attribute radius multiply 2. 0命令将颗粒等比例放大,即充满模型区域,这实际就是ball generate生成颗粒方法。
4、ball generate方法
由于ball generate生成的颗粒是不重叠的,要在一定范围内充满颗粒,后期往往不成功。此时可以先降低颗粒尺寸,然后再将颗粒属性(半径)逐步提高到设计粒径,可以快速充满模型。
这种方法需要知道填充范围的面积(体积),然后设计一定的孔隙率(推荐二维0.15~0.20, 三维0.3~0.4)。 然后根据平均的颗粒半径估算颗粒数目,此处以二维实例说明这一过程:假设概念模型面积S,设计颗粒孔隙率为n,最小、最大颗粒半径分别为Rmin和Rmax,则模型区域内生成的颗粒数目:
N=(4S(1-n))/(π〖(R_min+R_max)〗^2 )
此时,如果直接采用颗粒半径[Rmin, Rmax] 随机生成颗粒,由于颗粒间的相互作用很难达到力学平衡,故在确定颗粒数目N后,可通过先缩放再膨胀的方式实现平衡。若对颗粒半径Rmin与Rmax采用等比例缩放,并设缩放系数为m (m值可取为一个较大的数),则:
Rmin0= Rmin/m; Rmax0= Rmax/m
然后利用ball generate生成相应的颗粒数目后,再将颗粒的半径逐步增大至设计值。

三、外部颗粒导入生成法

该方法是从颗粒填充域内随机一点出发,让颗粒围绕这个中心逐步填充。假设要在某个平面区域内采用[Rmin, Rmax] 构造密实的圆盘颗粒的体系,设想首先从一个点出发逐步扩展填充到整个区域,并对模型边界及孔隙内进行再填充,提高模型密度。
这种方法适用于任意模型的构建,由于计算截断误差的影响,这种方法生成的颗粒体系也需要经过伺服过程,但由于初始生成的颗粒之间都服从相切关系,因此初始弹性能非常小,颗粒基本不会出现溢出状况。