最近尝试了Fluent与Rocky DEM单向耦合,记录下使用的心得。Rocky DEM被Ansys收购之后,它们之间的耦合几乎无需复杂的配置了,RockyDEM安装上即可实现和Fluent的耦合。这里有一个双层筛的清选段模型,出口装有风机,设计风量为12000m³/h。右上入口落入原粮、清杂(包含长短不一的水稻茎秆),其中原粮占混合物总重的97.5%;右侧通道中有一料滚以52rpm的速度顺时针旋转,用以控制下落原粮的产量。按设计意图,几乎所有原粮应进入下方的双层筛部分(未建模部分)进行筛选,可能有一定量的混合物由于双层筛的振动加上风机作用到达左侧通道入口,且其中会有部分茎秆进入清选腔。设计希望尽可能所有清杂进入清选腔并最终在腔低被收集,且尽可能不从出口飞出。
为演示起见,这个案例采用稳态CFD和离散元单向耦合。首先在SpaceClaim中删去一些细微特征以保证后续得到质量较高的网格。模型关于xy平面对称,为减少计算网格数量,在抽取流体域之后取1/2模型为计算区域。同时在料滚周围创建一个圆柱作为MRF(Multi-Reference Frame)方法的空气旋转域和静止域的边界,后续将在旋转域中使用一个转速为52rpm的旋转坐标系。最后将旋转与和静止域之间进行共享拓扑,确保网格共节点。模型需要给各个边界设置Name-Selcetion,详见评论区链接中scdoc文件,该模型已经被处理成1/2封闭几何模型,需要用SpaceClaim2021R2或更高的版本打开。
在Fluent-Meshing中以skewness≤0.8为标准生成面网格,面网格最大尺寸34.2mm,最小尺寸2.1mm,并施加全局曲率细化控制和邻近细化控制。后基于面网格生成多面体体网格,体网格和面网格最大尺寸相同,尽量保证cell quality≥0.15。关于Fluent-Meshing的WaterTight封闭几何的画网格流程网络上已经有很多视频资源,这里不做细讲。
设置稳态CFD计算,并启用粘性湍流模型中的k-e Realizable模型,此模型适用于有个别网格质量稍差且无强曲率旋转的情形,且对网格质量要求不高。材料为常温下的空气。
在Cell Zone的设置中输入MRF旋转域的转轴原点、转速、转轴方向。其中转轴原点可以设置为一端的中心。这个点的坐标可以提前通过spaceclaim中的测量功能点击料滚的轴或者一端的中心点测量出来,然后记录下这个点的坐标,输入进axis origin一栏。
右上方入口设为-100Pa静压,左下方和右下方入口设为表压为0的条件。出口质量流量为向外2.0415kg/s(6000m³/h,因为是1/2模型,故设置为一半的设计风量)。
图中的绿色面和料滚处的红色面设置为对称面,其余未提及的面设置为无滑移壁面。
解算方法采用默认设置,计算步数设为2000个迭代步,报告频率为每5个迭代步一次。
残差大体减小至允许容差之内,且监视出口静压在一个较小的范围内波动,即停止计算。
CFD计算完成后,先输出为case and data,然后点击Rocky Export下的Export one-way data=>Export current data to Rocky,这是稳态流场与DEM耦合会用到的。此时会在工作目录中输出.f2r文件,作为单向耦合时的流场条件输入给离散元。同时还有各个边界的几何的.stl文件。现在可以关闭Fluent,打开Rocky DEM。
新建项目后右键点击Data浏览器中的Geometries,点击Import Geometry,导bot入上步保存的.cas文件。可以看到各部件以fluent中的边界命名。选择其中的upper-inlet、bot-inlet1、channel-inlet、outlet、对称面sym-sta和对称面面右键点击删除,因为这些面在实际物理中是不存在的,可能会发生物质的流进流出。
图形界面如下。
接下来需要创建颗粒的注入入口的几何与位置。右键Geometries,点击Create Inlet。创建bot_inlet1和upper_inlet两个颗粒入口,每个颗粒入口属性如下。
在Data栏中点击Physics,设置重力加速度为y-方向9.81m/s2。
由于模型中有个运动部件——料滚,以52rpm的速度顺时针旋转,首先需定义旋转运动系,右键点击Motion Frames,选择Create Motion Frame,然后按下方属性设置旋转系属性,这里的Relative Position就是Fluent里Frame Motion设置的旋转的origin。Rotation Vector根据右手定则因为料滚在面向我们的这一侧是顺时针旋转,所以转轴指向z-方向,那么vector就是(0,0,-1)。在仿真过程中料滚一直在旋转,所以Stop Time设置长一些,只要超过你设置的仿真时长就行。Type选择Rotation,初始速度为-52rpm,而且这里我们认为料滚是匀速转动,故旋转加速度为0。
要想让料滚运动,还得将这个旋转运动系赋予到部件上。点击Geometries下的blade_wall,在Data Editor中点击Geometry选项卡,在Motion Frame中选择刚才设置好的旋转运动系的名称。
想预览部件运动是否正确,回到Motion Frames项目,点击Preview。此时会弹出一个新的preview的图形窗口,并且在料滚的轴线处有一个局部坐标系,此时点击上方的播放按钮,可以预览部件播放动作,如果顺时针旋转,则说明刚才的设置无误。
接下来点击右侧Windows中的3D Views<01>,退出部件运动预览模式并回到常规的3D图形界面。
创建水稻颗粒、清杂(长短不一的茎秆)和设备壁面材料属性。右击Materials,选择Create Material,分别创建稻种颗粒(rice)、清杂(stem)和设备壁面(equip)材料属性如下。
再到Geometries这里,点击blade_wall,在Material这里选择equip,给料滚赋予equip材料。同理所有其他设备壁面都这样进行操作。
各种材料之间需要设置接触参数,点击Material Interactions,坐下角两个下拉栏可以选择已设置的任意两种材料之间的配对,比如这里选择rice和equip,设置稻种和壁面之间的静摩擦系数、动摩擦系数和碰撞恢复系数等。同理设置其他材料对的接触参数如下。
之后需要设置颗粒种类和形状。以稻种颗粒为例,右击Particles,点击Create Particle,在Daata Editors的Particle中命名为rice,Shape选择Sphero-Polyhedron(多角球体)。下方的Size中的Size Type选择筛分尺寸(Sieve Size),点击+添加尺寸分类,单位设置为m,短轴尺寸设置为0.007(因硬件条件有限颗粒巨多,所以在原尺寸基础上进行了一定倍数的粗粒化)。在Shape标签中的Verticle Aspect Ratio中填入2。点击View按钮在图形界面查看颗粒形状。同理设置短、中、长茎秆(分别命名为sstem、mstem、lstem),Shape为直纤维(Straight Fiber),Sieve Size均为0.002,Verticle Aspect Ratio则分别为8、15、25,它们也进行了同样倍数的粗粒化。
点击右侧WIndows中的3D View<01>,返回模型界面。现在要设置每个颗粒注入口的颗粒注入种类、注入流率、注入持续时间等。右击Data栏中的Inputs,点击Create Continuous Injection。首先为右上方入料口创建粒子注入参数,命名为upper_inlet,Entity Point设置为upper_inlet,点击下面particle选项卡的+号添加注入的颗粒种类并填入相对应的流量如下。
切换到Time选项卡,输入开始时间为0s,结束时间为1000s。
同理设置一个名为bot_inject 的Continuous Injection,Entry Point为bot_inlet1,各种颗粒的流量如下,开始和结束时间与upper_inlet相同。
另外,我们在这里加一个体积填充条件。右击Inputs,选择Create Volume Fill,命名为stockgrain,设置Particles和Regoin如下。Region当中的Seed坐标指的是填充颗粒最初发生处的坐标,这个保证在右侧腔体内即可。然后几何中选中所有wall作为限制种子填充的硬边界。同时在box bounds中设定一个长方体区域将这个颗粒体积填充区域限制其中,需要输入长方体的中心坐标和各维的长度。相应的区域会在图形界面中显示。
CFD耦合设置:点击CFD Coupling,下方的Coupling Mode下拉列表中选择1-Way:Constant(Fluid-Particle),这便是稳态流场单向耦合离散元的方式。此时自动弹出一个文件选择的对话框,选择之前由Fluent导出的.f2r文件即可。我们会发现CFD Coupling下多出一个1-Way Fluent,点击它左下角会出现一个设置粒子受力模型的地方。这里对于非球形颗粒,所有的Drag Law均设置为Schiller&Nauman,Lift Law选择Saffman。
随后点击Domain Settings,勾选Use Boundary Limits,软件根据几何范围自动确定计算域的范围。
点击Solver,设置Simulation Duration为5.8s,输出频率为0.05s输出一个结果,在General选项卡中可设置CPU或GPU。貌似无需设置仿真的时间步长,这个可能是软件根据模型情况自动决定的。最后点击Start按钮进行计算。
计算过程中可点击上方的颗粒相关变量按颜色显示的下拉列表,查看颗粒当前的各种变量云图分布。
根据我的使用状况,并结合以前使用EDEM的经历,总结下来:
1)Rocky在非球形颗粒的形状设置上比EDEM要方便一些。用过EDEM的都知道,如果是形状稍微复杂的颗粒可能需要用一个个元颗粒填充,还要用到bond模型,工作量不小。
2)Rocky允许在计算前预览部件运动,这一点方便判断Frame Motion是否设置正确。
3)毕竟现在同属于Ansys的模块,相比EDEM,Rocky和Fluent的耦合更加丝滑。而EDEM与Fluent需要通过UDF耦合,并且有版本限制,配置较为繁琐。关键是这个耦合UDF的更新并不是Ansys的人员执行的,而是Altair的工程师,而且更新得并不勤。当然EDEM和HyperWorksCFD算一对CP,但是我个人非常不爱用HyperWorksCFD,觉得它的内包面功能比较差。
4)Rocky在计算时可以查看有关颗粒的变量云图分布,而EDEM基本只能等计算结束。
5)因为EDEM的市场占有率较高,现在已经开发出了较多的和其他软件的耦合方法,如AnsysWorkbench、Recurdyn、SimSolid等等;Rocky目前只能和Ansys自己的模块耦合。
6)求解效率上感觉EDEM高一点,而且EDEM允许同时使用GPU和多个CPU;Rocky不能两者同时使用。
7)EDEM提供的材料库对于做颗粒物料的对标试验有极大的便利,它可以根据输入的休止角提供若干种接触系数的组合;而Rocky似乎没看到有这样的功能。
8)也许是我Rocky使用还不熟,在后处理上Rocky似乎不太好测量每种颗粒在某处的质量流量,这一点EDEM更方便,EDEM后处理能够设置质量流量传感器,还能通过设置Grid来显示物料不同分层的速度等。