膜态沸腾UDF【转载】
膜态沸腾的UDF,添加注释。其中获取VOF梯度的方法详见前面的日志,其中很多宏无法通过UDF手册查阅,
蒸汽相中的质量源项的一般形式为:
式中:
通过一阶近似,热流之差可表达为:
式中:
通过此近似,源项变为:
因为没有内部质量源项,所以也想的质量源项变为:
能源方程的潜热变为:
截面的物性包括,表面张力为0.1N/m,潜热为105J/kg,饱和温度为500K。该问题的长度为Taylor-Raleigh不稳定性的波长。
该问题的速度为:
因此时间尺度为:
计算域水平宽度为,垂直高度为
。网格尺度为64(水平方向)×192(垂直方向),蒸汽液体截面的初始形状受到气泡增长的影响。因此,需要另外一个初始化UDF
式中,x(y)为水平(垂直)轴,单位为m。
努塞尔数为表征沸腾换热的无量纲数,其定义为:
因为该问题的时间为0.01s,时间步长为2×10-4,50个时间步。该问题需要进行6000步时间步迭代来捕捉气泡释放的过程
源代码如下:
#include "udf.h"
#include "sg.h"
#include "sg_mphase.h"
#include "flow.h"
#include "mem.h"
DEFINE_ADJUST(area_density, domain)
{
Thread *t; //定义一个线程指针
Thread **pt; //定义一个指向线程指针的指针
cell_t c; //定义单元
Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE);
real voidx, voidy, voidz=0;
{
Alloc_Storage_Vars(pDomain,SV_VOF_RG,SV_VOF_G,SV_NULL);
Scalar_Reconstruction(pDomain, SV_VOF,-1,SV_VOF_RG,NULL);
Scalar_Derivatives(pDomain,SV_VOF,-1,SV_VOF_G,SV_VOF_RG,
Vof_Deriv_Accumulate);
}
{
Alloc_Storage_Vars(domain, SV_T_RG, SV_T_G, SV_NULL);
T_derivatives(domain);
Free_Storage_Vars(domain, SV_T_RG, SV_NULL);
}
mp_thread_loop_c (t,domain,pt)
if (FLUID_THREAD_P(t))
{
Thread *tp = pt[P_PHASE];
begin_c_loop (c,t)
{
#if RP_3D
C_UDMI(c,t,0) = (C_VOF_G(c,tp)[0]*C_T_G(c,t)[0]+
C_VOF_G(c,tp)[1]*C_T_G(c,t)[1]+C_VOF_G(c,tp)[2]*C_T_G(c,t)[2]);
#endif
#if RP_2D
C_UDMI(c,t,0) = (C_VOF_G(c,tp)[0]*C_T_G(c,t)[0]+
C_VOF_G(c,tp)[1]*C_T_G(c,t)[1]);
#endif
}
end_c_loop (c,t)
}
Free_Storage_Vars(pDomain,SV_VOF_RG,SV_VOF_G,SV_NULL);
Free_Storage_Vars(domain, SV_T_G, SV_NULL);
}
DEFINE_SOURCE(gas, cell, thread, dS, eqn)
{
real x[ND_ND]; //定义一个变量用来存储网格的位置信息
real source;
Thread *tm = THREAD_SUPER_THREAD(thread); //获取混合相的指针
Thread **pt = THREAD_SUB_THREADS(tm);
real Kl = C_K_L(cell, pt[1])*C_VOF(cell, pt[1]),
Kg = C_K_L(cell, pt[0])*C_VOF(cell, pt[0]);
real L = 1e5; //水的气化潜热
source = (Kl+Kg)*C_UDMI(cell,tm,0) / L;
C_UDMI(cell, tm, 1) = source;
C_UDMI(cell, tm, 2) = -source*L;
dS[eqn] =0;
return source;
}
DEFINE_SOURCE(liquid, cell, thread, dS, eqn)
{
real x[ND_ND];
real source;
Thread *tm = THREAD_SUPER_THREAD(thread);
Thread **pt = THREAD_SUB_THREADS(tm);
source = -C_UDMI(cell, tm, 1);
dS[eqn] = 0;
return source;
}
DEFINE_SOURCE(energy, cell, thread, dS, eqn)
{
real x[ND_ND];
real source;
Thread *tm = thread;
source = C_UDMI(cell, tm, 2);
dS[eqn] = 0;
return source;
}
DEFINE_INIT(my_init_function, domain)
{
Thread *t;
Thread **pt;
Thread **st;
cell_t c;
Domain *pDomain = DOMAIN_SUB_DOMAIN(domain,P_PHASE); //获取主相的指针
Domain *sDomain = DOMAIN_SUB_DOMAIN(domain,S_PHASE); //获取次相的指针
real xc[ND_ND], y, x;
mp_thread_loop_c (t,domain,pt)
if (FLUID_THREAD_P(t))
{
Thread *tp = pt[P_PHASE]; //获取主相的指针
begin_c_loop (c,t)
{
C_CENTROID(xc,c,t);
x=xc[0];
y=xc[1];
if ( y < 0.00292 + 0.0006*cos(6.283*x/0.0778) )
C_VOF(c,tp) = 1;
else
C_VOF(c,tp) = 0;
}
end_c_loop (c,t)
}
mp_thread_loop_c (t,domain,st)
if (FLUID_THREAD_P(t))
{
Thread *sp = st[S_PHASE]; //获取次相的指针
begin_c_loop (c,t)
{
C_CENTROID(xc,c,t);
x=xc[0];
y=xc[1];
if ( y < 0.00292 + 0.0006*cos(6.283*x/0.0778) )
C_VOF(c,sp) = 0;
else
C_VOF(c,sp) = 1;
}
end_c_loop (c,t)
}
}
转载于:https://www.cnblogs.com/liusuanyatong/p/11259859.html
膜态沸腾UDF【转载】相关推荐
- hive的udf,udaf,udtf各自依賴兩種class(转载+分析整理)
Hive自定义函数包括三种UDF.UDAF.UDTF 名稱縮寫 特點 依賴 UDF(User-Defined-Function) 一进一出 org.apache.hadoop.hive.ql.exec ...
- fluent的udf在windows可以编译 linux错误,[转载]FLUENT UDF Win7 64位系统出现编译错误的处理方法...
"nmake"不是内部命令或外部命令,也不是可运行程序 Opening library "libudf"... Error: open_udf_library: ...
- fluent的udf需要c语言环境吗,[转载]FLUENT UDF 使用指导
|---files |---flgui |---fluent |---graphdev |---graphics |---include (UDS include files) |---interfa ...
- fluent怎么用c语言编程,[转载]FLUENT UDF 使用指导
|---files |---flgui |---fluent |---graphdev |---graphics |---include (UDS include files) |---interfa ...
- Python编写Hive UDF
2019独角兽企业重金招聘Python工程师标准>>> 1. 目的 从string类型的字段中解析并汇总每种category类型的总amount 2. 素材 表名:test_tabl ...
- MySql中管理百万级要注意些什么东西(转载)
一.我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应 用编程接口(API) 应用程序 二.优化硬件 如果你需要庞大的数据库表 (>2G),你应该考虑使用64位的硬 ...
- Hive UDF初探
1. 引言 在前一篇中,解决了Hive表中复杂数据结构平铺化以导入Kylin的问题,但是平铺之后计算广告日志的曝光PV是翻倍的,因为一个用户对应于多个标签.所以,为了计算曝光PV,我们得另外创建视图. ...
- spark hive udf java_【填坑六】 spark-sql无法加载Hive UDF的jar
/usr/custom/spark/bin/spark-sql --deploy-mode client add jar hdfs://${clusterName}/user/hive/udf/udf ...
- php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)
本帖最后由 Ybwh 于 2020-7-19 01:05 编辑 本文原创作者Ybwh,本文属i春秋原创奖励计划,未经许可禁止转载! 开机后扫描网段拿到ip地址 clipboard2.png (73.9 ...
最新文章
- 7月Python和机器学习最佳开源项目Top 10!
- 16进制转char_常州市赛题解:小X转进制
- 小知识点——DataTable把满足条件的一行放在第一行
- #模拟触手机屏幕_从操作系统的改变谈手机设计进化,单手并不是最终的便捷...
- Python读文件要用到的一些东西
- 买iphone不买android,为何宁可用4年前的苹果6s,也不买两三千的安卓呢?理由很真实...
- Go开发报错 -- Golang strings.Builder type undefined
- mysql hash切分_轻松优化MySQL-之数据库切分1
- 今天跟某个投了社区团购的资本合伙人聊,发现对于社区团购的认知,还是太肤浅
- VS.net2005的稳定性真的很差劲
- redhat rhel 7中如何切换中英文输入法。
- Synopsys Mentor Candence
- 应用中安装第三方apk的两种方法:利用Intent跳转安装页面、利用PackageInstaller静默安装
- 2014 史丰收速算
- idea2020版本无法使用actiBPM插件问题
- Linux 账号与身份管理2
- 四色定理(DFS深搜)
- Medkoo Biosciences艾美捷 甲氧沙林
- React Native Firebase
- cadence allegro 元器件定位
热门文章
- 图文并茂,动手操作一台宝马X7仪表里程校调,看看你买的二手 “新” 宝马是怎么调出来的!
- 【Linux系统管理】10 Shell 基础概念篇
- ABAP——smartform添加图片
- 择时 配置 选股 2016-9-12 图形正确
- MySQL Notifier
- 快速免费对接快递鸟圆通快递单号查询api接口
- nginx实现反向代理及负载均衡
- wps单独文档无法连接服务器,为什么wps没有云服务器
- ios不能保存png_AnyTrans for iOS for Mac (强大的ios设备管理工具)
- CloudCompare 可视化——Scale Filed