24小时热门版块排行榜    

查看: 1333  |  回复: 2

哇塞骰

铜虫 (小有名气)

[求助] 类似空话模型(cavitation)的udf,求大家帮忙看看对不对 已有1人参与

在用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;
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gyctju

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
哇塞骰: 金币+10, ★★★★★最佳答案, 先给十个,谢谢回答 2014-04-12 10:02:56
1,这个网上流传很广的udf例子,最多只能算个现象出来,这种方式算出来的相变速率(其实就是传热速率)与实际相差甚远,这跟他的一些常数取值有关(0.1, 这个值的取法目前看不出出处)。
2,如果你将你研究对象的相变类比成空化的话,建议参考空化的理论模型编写udf,帮助文档里对采用的空化模型的数学表达式有详细的描述。
3,空化模型有相应的使用范围,如空化体积分数等,超出一定限度不仅计算结果可能不合理甚至收敛也是很大的问题。
4,新版本里,vof模型下已经允许采用空化模型
2楼2014-04-11 22:35:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

哇塞骰

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by gyctju at 2014-04-11 22:35:53
1,这个网上流传很广的udf例子,最多只能算个现象出来,这种方式算出来的相变速率(其实就是传热速率)与实际相差甚远,这跟他的一些常数取值有关(0.1, 这个值的取法目前看不出出处)。
2,如果你将你研究对象的 ...

首先很感谢你这么详细的答复,真的非常感谢。
对于0.1的传热系数,之前也见到过论坛的帖子,说这个0.1是不是靠谱不好说,据说取几百设置上万的。这个我准备根据模拟效果改的。
之前看过帮助里关于空化是数学描述,但是看到不是很详细,我想有必要再看看。
然后就是你说的新版本里vof可以使用空化了,因为之前看的书、资料什么的都是6.3的,都说用空化要在混合多相流模型中使用,我现在用的是14.5,不知道能否同时使用,还请指点一二。
再次感谢
3楼2014-04-12 10:08:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 哇塞骰 的主题更新
信息提示
请填处理意见