找回密码
 注册
查看: 2017|回复: 0

请教一下【多相多组分中水蒸发的UDF】

[复制链接]
发表于 2010-7-1 21:40:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
沸腾蒸发原始的例子是这样的:
#include "udf.h"          /*包括常规宏*/
#include "sg_mphase.h"    /*包括体积分数宏*/
#define T_SAT 373         /*定义饱和温度*/
#define LAT_HT 1.e3       /*定义水蒸汽潜热*/


DEFINE_SOURCE(vap_src, cell, pri_th, dS, eqn) /*定义气相源项*/
{
        Thread * mix_th, *sec_th;    /*混合相、第二相*/
        real m_dot_v;
        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_v = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)*fabs(C_T(cell, mix_th) - T_SAT)/T_SAT; /*如果混合区单元的温度高于蒸发温度,液相向气相的质量质量转移*/
                dS[eqn] = 0.;    /*由于是液相向气相转移,所以气相的质量源项对来自液相的质量转移的偏导为零*/
        }
        else
        {
                m_dot_v = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
                dS[eqn] = -0.1*C_R(cell, pri_th)*fabs(C_T(cell, pri_th) - T_SAT)/T_SAT;  /*由于是气相向液相转移,所以气相的质量源项对自身的质量转移的偏导不为零*/
        }
        return m_dot_v;
}

DEFINE_SOURCE(liq_src, cell, sec_th, dS, eqn)  /*定义液相源项*/
{
        Thread *mix_th, *pri_th;   /*混合相、第一相 定义计算区域指针*/
        real m_dot_l;             /*蒸发冷凝速率  定义液相质量转移*/
        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_l = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)* fabs(C_T(cell, sec_th) - T_SAT)/T_SAT;  /*如果液相单元的温度高于蒸发温度,液相向气相的质量转移*/
                dS[eqn] = -0.1*C_R(cell, sec_th)*fabs(C_T(cell, sec_th) - T_SAT)/T_SAT; /*定义源项对质量转移偏导*/
        }
        else
        {
                m_dot_l = 0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
                dS[eqn] = 0.; /*于是气相向液相转移,所以液相的质量源项对质量转移的偏导为零*/
        }
        return m_dot_l;
}

DEFINE_SOURCE(enrg_src, cell, mix_th, dS, eqn)   /*混合模型能量源项*/
{
        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, sec_th)*C_R(cell, sec_th)*fabs(C_T(cell, sec_th) - T_SAT)/T_SAT;  /*如果混合区的单元温度高于蒸发温度。质量转移由液相向气相转移,吸热,质量转移量前有负号*/
                dS[eqn] = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)/T_SAT;
        }
        else
        {
                m_dot = 0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)*fabs(T_SAT-C_T(cell,mix_th))/T_SAT;
                dS[eqn] = -0.1*C_VOF(cell, pri_th)*C_R(cell, pri_th)/T_SAT;}  /*相反,气相向液相转移则放热*/
        return LAT_HT*m_dot;    /*能量大小气化潜热与质量转移率相乘得能量源项*/
}


但是我模拟的是每一相里都有多个组分,第一相气相(水蒸气、O2、NO、N2),第二相液相(尿素、水)。请问如何制定第二相中的第2个组分“水”与第一相中的第1个组分“水蒸气”之间的蒸发过程?请高手帮忙解答,感激不尽!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表