#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. 【Python】单例模式

    单例 class MusicPlayer(object): instance = None def __new__(cls, *args, **kwargs): if cls.instance is ...

  2. Crypto模块中的签名算法

    因为支付宝当中需要自行实现签名,所以就用到了SHA265和RSA2,将拼接好的信息用私钥进行签名,并进行Base64编码,然后解密就用支付宝回传给用户的公钥解密就ok了,所以我就使用Crypto模块, ...

  3. zabbix Server 4.0 触发器(Trigger)篇

    zabbix Server 4.0 触发器(Trigger)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.触发器(Trigger)概述 1>.上一篇博客我们介绍了“内 ...

  4. Pandas进阶笔记 (0)为什么写这个系列

    使用Pandas数年之久了,从最早的0.17版本开始接触Pandas,到现在0.25版本,踩过不少坑,面对各种稀奇古怪的bug抓耳挠腮.每每想要解决bug,或者想要实现一个特定的数据操作需求,首先想到 ...

  5. 零基础python教程—python数组

    在学习Python过程中数组是个逃不过去的一个关,既然逃不过去咱就勇敢面对它,学习一下python中数组如何使用. 1.数组定义和赋值 python定义一个数组很简单,直接 arr = [];就可以了 ...

  6. HTTP和HTTPS的区别和常见的面试题

    本篇会着重介绍http和https的区别和常见的面试题 常见的http和https面试题: Http与Https的基本概念和他们的区别 HTTPS工作原理 常用的HTTP方法有哪些 GET方法与POS ...

  7. Analysis of algorithms: introduction

    一系列的人物角色 Programmer,client,theoretician和blocking 学生可能会承担里面的一个或者多个角色 Running time 提出running time这个概念的 ...

  8. Go语言 - 流程控制 if else | for | switch case

    流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制: if | for | switch | goto// switch ...

  9. nodejs查看本机hosts文件域名对应ip

    const dns = require('dns') dns.lookup('domainName', function(err, result) { console.log(result) }) r ...

  10. shellshock溢出攻击

    实验背景 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发.在本实验中,需要亲手重现攻击来理解该漏洞,并回答一些问题. 什么 ...