找回密码
 注册
查看: 1874|回复: 1

求助:怎样把液体蒸发的UDF程序改成蒸汽凝结?

[复制链接]
发表于 2012-8-4 14:05:41 | 显示全部楼层 |阅读模式

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

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

x
要模拟管内水蒸汽凝结,网上搜到了沸腾蒸发的程序,求助各位大侠怎样应用到蒸汽凝结中啊
蒸发程序如下:
#include "udf.h"  ‘包括常规宏

#include "sg_mphase.h"  ‘包括体积分数宏CVOF(C,T)

#define T_SAT 373    ‘定义蒸发温度100℃

#define LAT_HT 1.e3   ‘定义蒸发潜热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[eqn] = -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[eqn] = 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[eqn] = 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[eqn] = -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[eqn] =  -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[eqn] = 0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)/T_SAT;}

  return LAT_HT*m_dot;  气化潜热与质量转移率相乘得能量源项W/m3

}

[ 本帖最后由 七夜ys 于 2012-8-4 14:35 编辑 ]
 楼主| 发表于 2012-8-4 14:06:53 | 显示全部楼层

回复 1# 七夜ys 的帖子

不带注释:
#include "udf.h"  

#include "sg_mphase.h"  

#define T_SAT 373   

#define LAT_HT 1.e3   

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_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[eqn] = -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[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_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[eqn] = 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[eqn] = -0.1*C_R(cell, sec_th)* fabs(C_T(cell, sec_th) - T_SAT)/T_SAT;
}
  return m_dot_v;
}

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, pri_th)*C_R(cell, pri_th)*
                fabs(C_T(cell, mix_th) - T_SAT)/T_SAT;
    dS[eqn] =  -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[eqn] = -0.1*C_VOF(cell, sec_th)*C_R(cell, sec_th)/T_SAT;}
  return LAT_HT*m_dot;  
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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