膜态沸腾的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【转载】相关推荐

  1. hive的udf,udaf,udtf各自依賴兩種class(转载+分析整理)

    Hive自定义函数包括三种UDF.UDAF.UDTF 名稱縮寫 特點 依賴 UDF(User-Defined-Function) 一进一出 org.apache.hadoop.hive.ql.exec ...

  2. fluent的udf在windows可以编译 linux错误,[转载]FLUENT UDF Win7 64位系统出现编译错误的处理方法...

    "nmake"不是内部命令或外部命令,也不是可运行程序 Opening library "libudf"... Error: open_udf_library: ...

  3. fluent的udf需要c语言环境吗,[转载]FLUENT UDF 使用指导

    |---files |---flgui |---fluent |---graphdev |---graphics |---include (UDS include files) |---interfa ...

  4. fluent怎么用c语言编程,[转载]FLUENT UDF 使用指导

    |---files |---flgui |---fluent |---graphdev |---graphics |---include (UDS include files) |---interfa ...

  5. Python编写Hive UDF

    2019独角兽企业重金招聘Python工程师标准>>> 1. 目的 从string类型的字段中解析并汇总每种category类型的总amount 2. 素材 表名:test_tabl ...

  6. MySql中管理百万级要注意些什么东西(转载)

    一.我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应 用编程接口(API) 应用程序 二.优化硬件 如果你需要庞大的数据库表 (>2G),你应该考虑使用64位的硬 ...

  7. Hive UDF初探

    1. 引言 在前一篇中,解决了Hive表中复杂数据结构平铺化以导入Kylin的问题,但是平铺之后计算广告日志的曝光PV是翻倍的,因为一个用户对应于多个标签.所以,为了计算曝光PV,我们得另外创建视图. ...

  8. 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 ...

  9. php backdoor creator encoder,Raven2 渗透(phpmailer漏洞+UDF提权)

    本帖最后由 Ybwh 于 2020-7-19 01:05 编辑 本文原创作者Ybwh,本文属i春秋原创奖励计划,未经许可禁止转载! 开机后扫描网段拿到ip地址 clipboard2.png (73.9 ...

最新文章

  1. 7月Python和机器学习最佳开源项目Top 10!
  2. 16进制转char_常州市赛题解:小X转进制
  3. 小知识点——DataTable把满足条件的一行放在第一行
  4. #模拟触手机屏幕_从操作系统的改变谈手机设计进化,单手并不是最终的便捷...
  5. Python读文件要用到的一些东西
  6. 买iphone不买android,为何宁可用4年前的苹果6s,也不买两三千的安卓呢?理由很真实...
  7. Go开发报错 -- Golang strings.Builder type undefined
  8. mysql hash切分_轻松优化MySQL-之数据库切分1
  9. 今天跟某个投了社区团购的资本合伙人聊,发现对于社区团购的认知,还是太肤浅
  10. VS.net2005的稳定性真的很差劲
  11. redhat rhel 7中如何切换中英文输入法。
  12. Synopsys Mentor Candence
  13. 应用中安装第三方apk的两种方法:利用Intent跳转安装页面、利用PackageInstaller静默安装
  14. 2014 史丰收速算
  15. idea2020版本无法使用actiBPM插件问题
  16. Linux 账号与身份管理2
  17. 四色定理(DFS深搜)
  18. Medkoo Biosciences艾美捷 甲氧沙林
  19. React Native Firebase
  20. cadence allegro 元器件定位

热门文章

  1. 图文并茂,动手操作一台宝马X7仪表里程校调,看看你买的二手 “新” 宝马是怎么调出来的!
  2. 【Linux系统管理】10 Shell 基础概念篇
  3. ABAP——smartform添加图片
  4. 择时 配置 选股 2016-9-12 图形正确
  5. MySQL Notifier
  6. 快速免费对接快递鸟圆通快递单号查询api接口
  7. nginx实现反向代理及负载均衡
  8. wps单独文档无法连接服务器,为什么wps没有云服务器
  9. ios不能保存png_AnyTrans for iOS for Mac (强大的ios设备管理工具)
  10. CloudCompare 可视化——Scale Filed