点击“CFD之仿真区”关注公 众号交流学习
概述
由于液体在加速和车辆或飞机运动过程中可能受到的一系列内部和重力作用导致油箱内的液体容易产生晃动。
由于晃动会改变运载火箭的运动方向,引起飞行器燃料储存装置的净力不平衡,以及在微重力条件下增强液体推进剂的晃动,因此有必要对其进行研究。
本案例主要演示由于箱体的横向振动而引起的液体晃动,主要包括:使用VOF多相流模型、编译UDF表示横向重力变化、案例设置及求解、后处理内容。案例模型为一个长方形的水箱里60%的水是液态水。水箱在x方向上有周期性的摆动,由以下随时间变化的重力决定。
01
启动fluent,读入网格文件
点击File→Read→Mesh读入网格文件。
02
模型设置
在general面板如下图所示设置。
点击Physics → Models → Multiphase...,如下图所示设置。
添加材料
点击Physics → Materials → Create/Edit...,如下图所示设置。
点击Fluent Database... 打开Fluent Database Materials面板
从Fluent Database Materials下拉列表中选择water-liquid (h2o < l >),关闭该面板。
在 Create/Edit Materials 面板,点击Change/Create,然后关闭该对话框。
设置相材料
点击Physics → Phases → List/Show All...,点击Edit,设置初相为air,次相为water。
编译UDF
点击user-defined → Functions → compiled...,如下图所示编译variable-gravity.c文件。
挂载gravity_variable_3d::libudf,点击user-defined → Functions Hooks...,如下图所示设置。(DEFINE_ADJUST宏需要在解释或编译UDF之后,挂载hook到模型中,可以将多个adjust udfs挂载到模型中。)
DEFINE_ADJUST是一个用于调整和修改FLUENT变量的通用宏。
DEFINE_ADJUST可以来修改流动变量(如:速度,压力)并计算积分。
DEFINE_ADJUST可以来对某一标量在整个流场上积分,然后基于该结果来调整边界条件。
在每一步迭代中都可以执行用DEFINE_ADJUST定义的宏,并在求解输运方程之前的每一步迭代中调用它。
宏——DEFINE_ADJUST ( name, d)
参变量类型——name表示UDF名字
Domain *d表示指向要应用调整函数的域的指针。域参数提供对网格 中所有单元格和面线程的访问。对于多相流,求解器传递给函数的指针是混合级域。d通过ANSYS Fluent求解器传递到UDF。
返回的功能——void表示DEFINE_ADJUST宏不返回任何值给求解器。
设置操作条件,点击Setup → Boundary Conditions → Operating Conditions...,如下图所示设置。(参考压力的位置必须位于充满空气的区域内,而不是充满水的区域内。)
设置求解方法
点击Solution → Solution → Methods...,如下图所示设置。
注:由于ITA方法每个时间步长都要执行大量的外部迭代,因此迭代时间推进(ITA)方法需要相当大的计算量。
与迭代方法相比,非迭代时间推进(NITA)方法的基本思想是,为了保持总体时间精度,实际上不需要将分割误差(splitting error)降低到零,而只需使其与截断误差的数量级相同即可。NITA方案,如下图所示:非迭代时间推进求解方法的概述,不需要外部迭代,每个时间步长只执行一个外部迭代,这大大加快了瞬态仿真的速度。然而,NITA方案仍然允许内部迭代来求解单个的方程组。因此,非迭代时间推进(NITA)方法具有较低的CPU占用率。虽然与迭代方法(ITA)相比,NITA必须使用更小的时间步长,但是总的CPU开销通常更小。如果NITA方案导致收敛困难,则应使用迭代方法。
创建监测点
点击Results→create→pionts...,如下图所示设置。
点击Solutions→definitions→New→surfacereport→Area-WeightedAverage…,如下图所示设置。
初始化
保持默认标准初始化,点击Initialize。
标记初始水区域
点击Solution → Cell Registers New → Region...,如下图所示。
点击Solution → Initialization → Patch...,如下入所示设置。
保存求解数据,以便制作动画,本案例在ANSYS EnSight后处理,可以直接保存.dat文件。点击Solution → Activities → Autosave...,如下图所示设置(注:建议.gz压缩格式保存文件)。
创建一个命令,确保将UDF中的重力变化传递到求解器
点击Solution → Activities →Execute Commands...,如下图所示设置。
保存初始case文件,点击File → Write → Case...。
求解计算,点击Solution → Run Calculation,如下图所示。
监测点总压变化见下图。
03
后处理
鉴于水平有限,没有做出较好的晃动视频,尽快学习吧