就是不买日货 发表于 2012-5-23 16:31:55

VOF模型中两相分界面的问题

请教一下各位前辈,本人准备用fluent模拟蒸发相变(不是沸腾)的过程,在其中遇到一些问题:

1. 蒸发是只发生在表面的,也就是液态水和水蒸气的分界面,那么怎么实现捕捉到这些分界面,以便只在这些cell中使用质量,能量的源相?
查了网上,有人说不需要特殊的UDF来捕捉界面,那么怎么做到呢?要扫描(loop)每一个含有水蒸气,水,或者同时2者都含有的区域,判断volume fraction是不是在0和1之间,然后对于这些cell施加源相?如果这样的话,对于那种分界面但是正好占满了cell,也就是说volume fraction原本就是1的那部分分界面就不包括在这个循环内了...很纠结...

有人说,可以通过在气液的初始位置画一条线,给它一个边界条件。这种做法是不是不对呢?因为那条线是不动的,而气液分界面随着蒸发是在下降的!

2. 网上盛传的UDF,应该是模拟沸腾蒸发的吧?不是一般的常温下的蒸发?大家有没有常温下蒸发的UDF呢?是不是应该利用饱和蒸汽压来替代网上盛传的UDF中温度的判断条件?其他的都一样?~

在下刚接触FLUENT不久,望各位前辈指点一下~谢谢!

网上盛传的UDF如下:
#include "udf.h" ‘包括常规宏
#include "sg_mphase.h" ‘包括体积分数宏CVOF(C,T)
#define T_SAT 373 ‘定义蒸发温度100℃
#define LAT_HT 2.26e06 ‘定义蒸发潜热J/Kg
DEFINE_SOURCE(liq_src, cell, pri_th, dS, eqn) ‘液相质量源项UDF
{
Thread *mix_th, *sec_th; ‘定义计算区域线指针
real m_dot_l; ‘定义液相质量转移 kg/(m2.s)
mix_th = THREAD_SUPER_THREAD(pri_th); ‘指向混合区的主相即液相的指针
sec_th = THREAD_SUB_THREAD(mix_th, 1);指向单相控制区的气相的指针,气相为第二相
if(C_T(cell, mix_th)>=T_SAT) ‘如果液相单元的温度高于蒸发温度,液相向气相的质量质量转移
{
m_dot_l = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
dS = -0.1*C_R(cell, pri_th)*fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
‘ 定义源项对质量转移偏导 ,
}
else {
m_dot_l = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
‘如果指向混合区液相的单元温度小于蒸发温度,气相向液相的质量转移,液相

dS = 0.; ‘由于是气相向液相转移,所以液相的质量源项对质量转移的偏导为零
}
return m_dot_l;
}
DEFINE_SOURCE(vap_src, cell, sec_th, dS, eqn) ‘气相质量源项UDF
{
Thread * mix_th, *pri_th;
real m_dot_v;
mix_th = THREAD_SUPER_THREAD(sec_th); ‘指向混合区的第二相即气相的指针
pri_th = THREAD_SUB_THREAD(mix_th, 0); 指向单相控制区的液相的指针,液相为主相
if(C_T(cell, mix_th)>=T_SAT) ‘如果混合区单元的温度高于蒸发温度,液相向气相的质量质量转移
{
m_dot_v = 0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
dS = 0.; ‘由于是液相向气相转移,所以气相的质量源项对来自液相的质量转移的偏导为零
}
else {
m_dot_v = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
‘如果指向混合区的单元温度小于蒸发温度,气相向液相的质量转移
dS = -0.1*C_R(cell, sec_th)* fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
由于是气相向液相转移,所以气相的质量源项对自身的质量转移的偏导不为零
}
return m_dot_v;
}
DEFINE_SOURCE(enrg_src, cell, mix_th, dS, eqn) ‘混合模型能量源项UDF
{
Thread *pri_th, *sec_th;
real m_dot;
pri_th = THREAD_SUB_THREAD(mix_th, 0);‘指向混合区的液相的指针
sec_th = THREAD_SUB_THREAD(mix_th, 1); ‘指向混合区的气相的指针
if(C_T(cell, mix_th)>=T_SAT) ‘如果混合区的单元温度高于蒸发温度。质量转移由液相向气相转移,吸 热,质量转移量前有负号
{
m_dot = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
dS = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)/T_SAT;
}
else { 相反,气相向液相转移则放热
m_dot = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
dS = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)/T_SAT;}
return LAT_HT*m_dot; 气化潜热与质量转移率相乘得能量源项W/m3
}

[ 本帖最后由 就是不买日货 于 2012-5-23 19:47 编辑 ]

就是不买日货 发表于 2012-5-23 16:32:39

请各位前辈指教~感激不尽啊~

bidax 发表于 2023-12-27 10:51:18

您好我也有相同的疑问?我的想法是有个梯度宏用那个去获取相界面,并在相界面上添加源项,以此来实现蒸发。
我模拟蒸发器中的相变,在蒸发器中也应该有沸腾现象那这种现象可以直接用LEE模型嘛
Lee模型是用来模拟沸腾现象吧
页: [1]
查看完整版本: VOF模型中两相分界面的问题