正文共: 3592字 19图 预计阅读时间: 9分钟
我们知道,蒸发和沸腾的区别之一是前者发生在气液界面处,后者通常发生在固液界面。在模拟相变时,最为经典的是Lee模型,也是FLUENT默认的蒸发/冷凝模型。其实我们在使用这个模型时常忽略了一点,这个模型其实本质是从蒸发模型推导而来的(软件的命名也是evaporation/condensation),但是我们常常用在沸腾模拟中。Lee模型根据当地的温度和饱和温度的对比来判断发生蒸发或者冷凝,其判据只有温度而没有其他,所以这事挺诡异的。当然,如果我们加入一些其他的约束,比如让其只在气液界面处作温度判断,就可以模拟蒸发现象了。今天我们来做一个这样的案例。
创建如下二维平面模型,划分四边形结构化网格,节点数60300,最小正交质量1.0。
启用VOF两相流模型,主相为液态水,次相为水蒸气,不考虑表面张力。
我们采用改造后的Lee模型模拟相变过程,核心思想是调用主相的体积分数梯度并计算它的模,采用一个梯度模阈值判断气液界面位置,让Lee模型只在这个区域起作用,本案例我们取2000,这个阈值可以根据网格粗细主观设定。UDF代码在文末,编译使用,有偿获取。
分别对主相、次相和混合相施加源项,并挂载adjust宏,该宏用于计算体积分数梯度的模。
创建4个用户存储器,分别存储体积分数梯度的模、水的质量源项、蒸汽的质量源项以及能量源项。注意一定要设置,因为UDF使用了这些存储器。
启用重力项。
用于UDF代码用到了梯度宏,因此我们要在内存进行释放,输入以下TUI语句。
/solve/set> expert
Linearized Mass Transfer UDF? [yes]
use alternate formulation for wall temperatures? [no]
Save cell residuals for post-processing? [no]
Keep temporary solver memory from being freed? [no] y
Allow selection of all applicable discretization schemes? [no]
底部设置为恒温壁面,温度374K
两侧为对称面。
顶部为压力出口,压力0Pa,即标准大气压。回流相为100%水蒸气,回流温度373.15K。注意本案例液态水的饱和温度373.15K。
采用如下值进行初始化,并用patch方式设置初始液位,同时使得液体温度略高于饱和温度(373.3K),使得蒸发发生的温度条件得以满足。
瞬态求解,时间步长0.0001s。
我们先计算一个时间步,使得体积分数梯度模等四个用户存储器都初始化。我们看一下 体积分数梯度的模,显然只有在气液界面处的模才足够大,其他地方均为0。
我们再看一下计算至某个时刻的其他几个用户存储器值,首先是液体源项,在界面处为负值,往上和往下都为0,也就是说这个位置液体质量减少(蒸发失去质量)
显然,蒸汽源项的值应该与液体源项的值相反,如下
最后,看一下能量源项的值,界面处为负值,也就是蒸发吸热。
本案例UDF代码如下