例子的来源是Abaqus CLE的官方教程,可是写的太粗线条,我还是搞了两天才做出了这个例子。其实就是个滚筒洗衣机带着洗衣机里的水一起转的问题。
看到评论里好多小伙伴想要ace+inp文件,我上传到了这里(其实爬评论你就会发现他们的百度网盘链接呦):
https://download.csdn.net/download/clarstyle/12238097
1. 分别为Eulerian domain和Lagrangian domain建立两个part
建立Lagrangian domain的Part,类型设置为Discrete rigid,并设置Reference Point。
建立Eulerian domain的Part,类型设置为Eulerian,要注意Eulerian domain和Lagrangian domain要保证有重叠的部分,这是一种弱耦合,数据在两个区域间抛来抛去,所以网格要有重叠部分。这导致在Eulerian domain里有的部分是有材料的,有的地方是没有材料的。为了之后设置材料分布时候方便,要把part实现划出几个辅助的partition。黄色虚线是在划分partition时,为了指明Extrude/Sweep方向用到的辅助坐标轴。
2. 定义水的材料属性
选择状态方程模型EOS中Us-Up,设置声速c0=1483m/s;密度为1000kg/m3;粘度为0.001kg/ms。并把截面属性赋给Eulerian domain。
3. 把两个Part组装起来
4. 新建一个Step-1
5. 为Eulerian domain和Lagrangian domain划分网格
6. 设置接触
新建一个Contact Property,因为不是普通的面和面的接触,水中的任何的一个部分可能在流动区域里的任何一个地方和Lagrangian domain接触,设置Tangential Behavior为Rough,赋给水和洗衣机之间的关系。新建一个Interaction,把刚才的Contact Property赋给它。
更重要的是设置接触的两个Surface。其中一个Surface是Lagrangian domain部分的内侧面,为Geometry类型,另一个Surface是Eulerian domain的全部网格,为Mesh类型。
7. 加载Load
为全模型加载重力场。
为Eulerian domain施加一个Boundary Conidition,为了在前后两个方向限制住水,限制要覆盖所有水可能会流到的区域。水运动到这个区域就让它的z方向速度变为0,这样水就不会流出洗衣机。
下面为Lagrangian domain施加Boundary Condition,让洗衣机转动,在1s内转动3个弧度,分别在Initial和Step-1设置BC-2。
最后设置在Eulerian domain的材料填充,虽然已经把水的材料的截面属性赋给了整个Eulerian domain区域,但是默认情况下所有Eulerian domain都是Void,即没有材料(下图中材料为0,Void为1),这也是在新建Eulerian截面属性的时候,出现这两个材料的原因。
为Eulerian domain的Part中初始存在水的部分设置Predefined Field材料。为初始存在水的partition新建一个Set,在Part的这个set中设置材料为1,Void为0,其他部分不用设置,依然是默认的材料为0,Void为1,即没有材料填充。
8. 设置Field Output Request
尤其要选中Volume/Thickness/Coordinates中的EVF,element volume fraction,为了观察水的流动。
9. 提交Job计算
10. 后处理
在Result-Field Output设置显示EVF_VOID看液体的流动。
红色部分void为1,没有水,蓝色部分void为0,有水。
为了让显示的更加清晰,设置不显示没有水的Eulerian domain区域。
将阈值改为100%,Spectrums改为Blue to red。
设置ODB Display Options和Options-Common,让结果显示为理想状态。最后将动画结果存储为avi格式,Animate-History Time,Save As。File-Print存储截图。