The accumulated volume errors are too large,这个报错在CEL里出现的时候,先查欧拉域的边界有没有锁死,滚筒是个圆筒形,水在转动过程中会往轴向两端甩,如果前后两个面的速度约束没覆盖到所有可能流到的区域,水从网格边界漏出去,体积就不守恒了,报错就来了。
滚筒用Discrete rigid,参考点设在筒体几何中心,欧拉域建一个比滚筒外径大一圈的圆柱体,Part类型选Eulerian,关键是两个域必须有重叠部分,这是CEL弱耦合的基本要求,数据在两个区域之间来回传递,网格重叠区域就是传递通道,欧拉域可以比滚筒大但滚筒外壁到欧拉域外壁之间要有一定厚度,太薄了水飞出去很快穿透。欧拉域的part在Part模块里就切好辅助partition,初始水位以下划一个区域,以上划一个区域,后面材料填充直接按set选,不用在assembly里再切一次。
水的材料用状态方程EOS里的Us-Up,声速c0=1483m/s,密度1000kg/m³,粘度0.001kg/ms,截面属性赋给整个Eulerian domain,但默认全部是Void状态,材料为0,Void为1,需要在Predefined Field里给初始水域的那几个partition赋材料为1,其余保持Void。初始水位大概到滚筒直径的三分之一到一半,全满的话水没地方晃,滚筒一转水压直接顶在筒壁上,算出来没有意义。

接触用general contact,切向Rough,因为水在筒壁上的流动方向不确定,不能用Frictionless,法向硬接触默认。Surface的设置注意,拉格朗日域那边选滚筒内侧面,Geometry类型,欧拉域那边选整个网格,Mesh类型,两个surface配成一对。网格划分CEL只能用六面体,EC3D8R,滚筒用C3D8R或刚体不划网格都行,欧拉域网格尺寸控制在滚筒直径的十分之一到十五分之一,太粗了水看不出流动细节,太细了计算量爆炸,一个直径400mm的滚筒欧拉域网格尺寸给25到40mm差不多,网格量在几万到十万级别,跑0.5秒的物理时间在16核机器上大约四五个小时。
滚筒转动在Initial和Step-1分别设边界条件,参考点除了绕筒轴转动的那个自由度外全约束,转动速度看实际工况,脱水阶段1400rpm换算成弧度每秒大概是147rad/s,洗涤阶段50rpm大概5.2rad/s,如果只算洗涤就设5左右,分析步用Dynamic Explicit,时间给0.5到1秒,场输出必须勾上EVF,Volume/Thickness/Coordinates下面的element volume fraction,不勾后处理什么都看不到。重力9810mm/s²沿-Z方向,mm-tonne-s单位制下水的密度是1e-9 tonne/mm³,不是1000。
后处理打开EVF_VOID,蓝色区域Void=0是有水的地方,红色Void=1是空气,阈值调到100%让水和不水的分界清晰,Spectrums改成Blue to red,把没有水的欧拉域单元隐藏掉只看水体形状,Animate History Time看水在筒内的晃动和飞溅过程。水在低转速下贴在筒底随筒壁爬升,到了一定角度重力超过离心力就塌落,高速脱水时水被甩到筒壁形成环状水膜,这个用EVF看非常直观。
跑的时候如果水从欧拉域飞出去,把欧拉域圆柱的侧表面用柱坐标系约束V1,前后端面约束V3,或者干脆三个方向全约束,约束给位移约束不行,CEL里欧拉域只能用速度载荷约束自由度。下一步把滚筒上的提升筋建出来,提升筋对水的抛洒轨迹影响很大,没有提升筋水就在筒底晃,有了提升筋水被带到高处再落下,冲击力完全不一样,提升筋的截面形状用……
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删