|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
在用fluent做管内汽水两相流。实际系统比较复杂,所以入口条件不是特别明确。猜测进口是满管饱和水,流动过程中发生汽化,然后又气体又液化成水。但是因为整个流域温差很小,暂时不考虑汽化潜热所以汽化模型应该类似于空化。因为用vof模型来追踪气液相界,所以在使用vof的同时不能使用cavitation模型。就想着自己写个udf。
这个udf是按照沸腾的udf改编的,并将最后的能量源项去除不考虑,求大家帮忙看看有没有什么问题。相变参考量用的压力。主相是液相,次相是汽相。
编译没有问题,但是计算总是发散。求大家帮忙啦。感激不尽。
#include "udf.h"
#include "sg_mphase.h"
#define P_SAT 12826
DEFINE_SOURCE(liq_src, cell, pri_th, dS, eqn)
{
Thread *mix_th, *sec_th;
real m_dot_l;
mix_th = THREAD_SUPER_THREAD(pri_th); “混合区主相即液相”
sec_th = THREAD_SUB_THREAD(mix_th, 1); “控制区次相即汽相”
if(C_P(cell, mix_th)<P_SAT) “混合区单元压力小于汽化压力,则液相发生汽化”
{
m_dot_l = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
fabs(C_P(cell, mix_th) -P_SAT)/P_SAT;
dS[eqn] = -0.1*C_R(cell, pri_th)*fabs(C_P(cell, mix_th) - P_SAT)/P_SAT;
}
else { “混合区单元压力大于汽化压力,则汽相液化”
m_dot_l = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
fabs(P_SAT-C_P(cell,mix_th))/P_SAT;
dS[eqn] = 0.;
}
return m_dot_l;
}
DEFINE_SOURCE(vap_src, cell, sec_th, dS, eqn)
{
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_P(cell, mix_th)<T_SAT) “混合区单元压力小于汽化压力,则液相汽化”
{
m_dot_v = 0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*
fabs(C_P(cell, mix_th) - P_SAT)/P_SAT;
dS[eqn] = 0.;
}
else { “混合区单元压力大于汽化压力,则汽相液化”
m_dot_v = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*
fabs(P_SAT-C_P(cell,mix_th))/P_SAT;
dS[eqn] = -0.1*C_R(cell, sec_th)* fabs(C_P(cell, mix_th) - P_SAT)/P_SAT;
}
return m_dot_v;
} |
|