|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
液相为主相,水蒸气,空气为第二相,
下面的udf是基于压力的质量变化:
#include "udf.h" /*包括常规宏*/
#include "sg_mphase.h" /*包括体积分数宏*/
#define LAT_HT 2260000 /*定义水蒸汽潜热*/
#define pi 3.1415 /*圆周率常数*/
#define R 8.314 /*gas constant 8.314j/mol.K*/
#define moleweight 0.018 /*SI unit water mole weight 0.018kg/mol */
#define A 9.3876
#define B 3826.36
#define C 45.47
DEFINE_SOURCE(liq_src, cell, t, dS, eqn)
{
Thread *tm, **pt;
Thread *mixture_thread;
real m_dot_l;
real P_SAT, P_mixture,P_vap;
tm = THREAD_SUPER_THREAD(t);
pt = THREAD_SUB_THREADS(mixture_thread); /*17*/
P_SAT=exp(A-B/(C_T(cell,t)-C))*1e6;
P_mixture = ABS_P(C_P(cell,tm),op_pres);
P_vap = P_mixture*C_VOF(cell,pt[1])/(C_VOF(cell,pt[1])+C_VOF(cell,pt[2])) ;
if(P_vap < P_SAT)
{
m_dot_l = -(P_SAT-P_vap)*sqrt(moleweight/(2*pi*R*C_T(cell,t)));
dS[eqn]= 0.5*sqrt(moleweight/(2*pi*R))*pow(C_T(cell,t),2)*(P_SAT-2*P_SAT*C_T(cell,t)*B/pow((C_T(cell,t)-C),2)-P_vap);
}
else
{
m_dot_l = (P_SAT-P_vap)*sqrt(moleweight/(2*pi*R*C_T(cell,pt[1])));
dS[eqn] = 0;
}
return m_dot_l;
}
DEFINE_SOURCE(vap_src, cell, t, dS, eqn)
{
Thread *tm, **pt;
Thread *mixture_thread;
real m_dot_v;
real P_SAT, P_mixture,P_vap ;
tm = THREAD_SUPER_THREAD(t);
pt = THREAD_SUB_THREADS(mixture_thread); /*40*/
P_SAT=exp(A-B/(C_T(cell,pt[0])-C))*1e6;
P_mixture = ABS_P(C_P(cell,tm),op_pres);
P_vap = P_mixture*C_VOF(cell,pt[1])/(C_VOF(cell,pt[1])+C_VOF(cell,pt[2])) ;
if(P_vap < P_SAT)
{
m_dot_v = (P_SAT-P_vap)*sqrt(moleweight/(2*pi*R*C_T(cell,pt[0])));
dS[eqn] =0;
}
else
{
m_dot_v = -(P_SAT-P_vap)*sqrt(moleweight/(2*pi*R*C_T(cell,t)));
dS[eqn]=0.5*sqrt(moleweight/(2*pi*R))*pow(C_T(cell,t),2)*(P_SAT-2*P_SAT*C_T(cell,t)*B/pow((C_T(cell,t)-C),2)-P_vap);
}
return m_dot_v;
}
DEFINE_SOURCE(enrg_src, cell, t, dS, eqn)
{
Thread *pri_th, *vap_th;
Thread *mixture_thread,**pt;
real m_dot;
real P_SAT, P_mixture,P_vap;
pt = THREAD_SUB_THREADS(mixture_thread);
pri_th=THREAD_SUB_THREAD(mixture_thread,0); /*63*/
vap_th=THREAD_SUB_THREAD(mixture_thread,1);
P_SAT=exp(A-B/(C_T(cell,pt[0])-C))*1e6;
P_mixture = ABS_P(C_P(cell,t),op_pres);
P_vap = P_mixture*C_VOF(cell,pt[1])/(C_VOF(cell,pt[1])+C_VOF(cell,pt[2])) ;
if(P_vap < P_SAT)
{
m_dot =-(P_SAT-P_vap)*sqrt(moleweight/(2*pi*R*C_T(cell,pt[0])));
dS[eqn]=0.5*sqrt(moleweight/(2*pi*R))*pow(C_T(cell,pt[0]),2)*(P_SAT-2*P_SAT*C_T(cell,pt[0])*B/pow((C_T(cell,pt[0])-C),2)-P_vap);
}
else
{
m_dot = (P_SAT-P_vap)*sqrt(moleweight/(2*pi*R*C_T(cell,pt[1])));
dS[eqn]=0.5*sqrt(moleweight/(2*pi*R))*pow(C_T(cell,pt[1]),2)*(P_SAT-2*P_SAT*C_T(cell,pt[1])*B/pow((C_T(cell,pt[1])-C),2)-P_vap);
}
return LAT_HT*m_dot;
} |
|