打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DEFINE_INIT宏

“ 长风破浪会有时,直挂云帆济沧海!”


01
概述


DEFINE_INIT是一个通用的宏,你可以使用它为求解方案指定一组初始值。DEFINE_INIT实现了与patch相同的效果,但是使用了不同的方法,即使用UDF。每次初始化都执行一次DEFINE_INIT函数,并在求解程序执行默认初始化之后立即调用该函数。由于它是在流场初始化后调用的,所以通常用于设置流场的初始值。
02

用法


DEFINE_INIT(name, d)
DEFINE_INIT有两个参数:namednameUDF的名称,d是ANSYS FLUENT求解器传递到UDF的值
Domain *d指向要在其上应用初始化函数的域的指针。域参数提供对网格中所有单元格和面线程的访问。对于多相流,求解器传递给函数的指针是混合级域。

03

示例


下面的UDF名为my_init_func,用于初始化流场变量,如果
则温度为400K,否则温度为300K。
它只在解决方案过程开始时执行一次,该函数既可以在ANSYS FLUENT中解释执行也可以编译执行。UDF源代码如下:
/***********************************************************************UDF for initializing flow field variables************************************************************************/#include "udf.h"DEFINE_INIT(my_init_func,d){ cell_t c; Thread *t; real xc[ND_ND]; /* loop over all cell threads in the domain */ thread_loop_c(t,d) { /* loop over all cells */ begin_c_loop_all(c,t) { C_CENTROID(xc,c,t);      if (sqrt(ND_SUM(pow(xc[0],2.),pow(xc[1],2.),pow(xc[2],2.))) 0.25) C_T(c,t) = 400.; else C_T(c,t) = 300.; } end_c_loop_all(c,t) }}
宏ND_SUM(a,b,c)计算前两个参数(2D)或所有三个参数(3D)的和。

04

计算结果


可以看到,初始化之后中间区域温度为400K,其余位置温度为300K.(网格有点粗糙)

案例文件链接:

https://pan.baidu.com/s/11KfTJ691HL6_5gddJtgLhw

提取码:9gj3


end


后记:本人将毕生致力于CFD,为我国的仿真事业做一点点贡献。希望在有生之年可以看到国产的CAE软件大规模市场化,而不是被别人卡脖子。长风破浪会有时,直挂云帆济沧海!
点个“在看”支持一下呗!感谢感谢
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
内核命令行处理
GType 类型系统 - 清华大学开源软件俱乐部 THOSS
Fluent中的各种初始化
〖原创〗菜鸟学UDF的感觉,希望对UDFers有用 | 『 Fluent专版 』 - 傲雪...
Fluent UDF【18】:源项
DS18B20的c读写程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服