#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)
//如果混合区的单元温度高于蒸发温度。质量转移由液相向气相转移,吸热,质量转 移量前有负号

{

else

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;

}

{    //相反,气相向液相转移则放热

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

}

沸腾换热UDF【转载】的更多相关文章

  1. 基于 HTML5 换热站可视化应用

    换热站是整个热网系统中最核心的环节,它将一侧蒸汽或高温水通过热交换器换成可以直接进入用户末端的采暖热水.换热站控制系统是集中供热监控系统的核心部分,换热站控制系统既可独立工作,也可以接受调度中心的监督 ...

  2. OpenFOAM——圆柱绕流对流换热

    本算例来自<ANSYS FLUENT技术基础与工程应用:流动传热与环境污染控制领域> TOP和DOWN为对称边界(symmetry),入口速度为0.01m/s,入口温度为300K,圆柱温度 ...

  3. 工业4.0:换热站最酷设计—— Web SCADA 工业组态软件界面

    前言 随着工业4.0的不断普及与发展,以及国民经济的飞速前进,我国的城市集中供热规模也不断扩大,科学的管理热力管网具有非常重大的经济和社会效益.目前热力系统,如换热站大都采用人工监控,人工监控不仅浪费 ...

  4. Java 类的热替换---转载

    构建基于 Java 的在线升级系统 Java ClassLoader 技术剖析 在本文中,我们将不对 Java ClassLoader 的细节进行过于详细的讲解,而是关注于和构建在线升级系统相关的基础 ...

  5. 膜态沸腾UDF【转载】

    膜态沸腾的UDF,添加注释.其中获取VOF梯度的方法详见前面的日志,其中很多宏无法通过UDF手册查阅, 蒸汽相中的质量源项的一般形式为: 式中: 通过一阶近似,热流之差可表达为: 式中: 通过此近似, ...

  6. FLUENT求解传热系数surfaceheattransfercoef.的参考值的设置【转载】

    转载自:http://blog.sina.com.cn/s/blog_7ef78d170101ch30.html surface heat transfer coef. 计算公式: FLUENT求解传 ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  8. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  9. 【转载】ANSYS有限元分析中的单位问题

    原文地址:http://www.cnblogs.com/ylhome/archive/2009/02/26/1398756.html ansys中没有单位的概念,只要统一就行了.所以,很多人在使用时, ...

随机推荐

  1. django+celery+redis环境配置

    celery是python开发的分布式任务调度模块 Celery本身不含消息服务,它使用第三方消息服务来传递任务,目前,celery支持的消息服务有RabbitMQ,redis甚至是数据库,redis ...

  2. Linux 基础学习2

    目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...

  3. Ubuntu安装KScope

    命令安装 # apt-get install kscope 1. 编译安装 # tar xvf kscope-1.9.4.tar.gz # cd kscope-1.9.4 # qmake # make ...

  4. Android笔记(六十六) android中的动画——XML文件定义属性动画

    除了直接在java代码中定义动画之外,还可以使用xml文件定义动画,以便重用. 如果想要使用XML来编写动画,首先要在res目录下面新建一个animator文件夹,所有属性动画的XML文件都应该存放在 ...

  5. Android笔记(三十九) Android中的数据存储——SQLite(一) create

    SQLite是内置于Android的一款轻量级关系型数据库,她运算速度快,占用资源少,通常只需要几百K的内存就足够了,因而特别适合在移动设备上使用. SQLite不仅支持标准的SQL语法,还遵循数据库 ...

  6. gitlab及jenkins

    1.安装配置gitlab服务,在gitlab新建一个仓库,配置本地密钥,并通过ssh方式拉取gitlab仓库代码 https://packages.gitlab.com/gitlab/gitlab-c ...

  7. PLC编程的基础知识的总结

    1.Programmable Logic Controller   PLC 代替计算机实现复杂的逻辑控制系统  ,可编程控制器是一种数字运算操作电子系统,转门在工业控制系统中使用而设计的,采用一种可以 ...

  8. 用js刷剑指offer(数组中的逆序对)

    题目描述 题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P ...

  9. python的简介(解释器、变量、用户交互、if语句)

    一.python的起源 python是吉多·范罗苏姆(Guido van Rossum)在1989年的圣诞节期间因为无聊打发时间所开发的一个脚本解释程序. python是一门解释型.弱类型的编程语言. ...

  10. 02 c++的封装性 (构造和析构)

    封装性: 关键字:public private protected 破坏封装:友元函数 friend 实现数据的隐藏:class类 默认是私有,结构体默认是公有. 类和对象:(定义类的注意事项) 在类 ...