吾生有涯 学海无涯
析模有界 知识无界

Fluent UDF中DEFINE_INIT压力初始化错误

内容纲要

DEFINE_INIT宏经常用于对计算区域中的物理量进行初始化。该宏可以作为Fluent全局初始化(标准初始化及Hybrid初始化)及Patch初始化的一个补充。DEFINE_INIT宏的结构形式比较简单:

DEFINE_INIT(name, d)

其包括两个参数:

  • name:宏的名称
  • d:Domain指针,用于指向初始化函数应用范围的指针。

DEFINE_INIT宏没有返回值,需要初始化的物理变量可以在宏内部直接进行赋值。由于DEFINE_INIT宏只有一个Domain指针参数,而想要对物理量赋值需要Thread指针,因此在宏的内部需要Thread在Domain上循环遍历,需要使用循环遍历宏thread_loop_cthread_loop_f

thread_loop_c(t,d)
{

}

如下面的几何模型,几何尺寸为50 mm x 50 mm。

现在要对$30

可以写UDF为:

#include "udf.h"
DEFINE_INIT(init_field, d)
{
cell_t c;
Thread *t;
real xc[ND_ND];
thread_loop_c(t,d)
{
begin_c_loop(c,t)
{
C_CENTROID(xc,c,t);
if (xc[1]>0.03 && xc[1]<0.04)
{
C_P(c,t) = 200;
C_U(c,t) = 20;
C_T(c,t) = 400;
}else
{
C_P(c,t) = 100;
C_U(c,t) = 10;
C_T(c,t) = 300;
}
}
end_c_loop(c,t)
}
}

编译并加载UDF。

DEFINE_INIT宏通过点击Function Hooks...按钮,在打开的User-Defined Function Hooks对话框加载。

进入Initialization面板,点击按钮Initialize进行初始化。

初始化的时候需要注意:

  1. 若DEFINE_INIT给压力和速度之外的物理量进行了赋值,那么确保在初始化之前启用了相应的物理模型。如本示例中使用C_T宏给温度赋值,那么需要先开启Energy模型。
  2. 在Initializatin面板中使用Standard Initialization,不建议使用Hybrid初始化。

在初始化面板中进行初始化。

初始化完毕后可以在后处理中查看物理量的分布。

  • 初始温度
  • 初始速度
  • 初始压力

注意看,这里速度和温度初始化都没有问题,但压力初始化有问题。

程序中30


(完)

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Fluent UDF中DEFINE_INIT压力初始化错误》
文章链接:https://www.topcfd.cn/39461/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册