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

Fluent UDF中DEFINE_INIT压力初始化错误问题解决方法

内容纲要

前面提到在使用DEFINE_INIT进行压力初始化时会出现问题(Fluent UDF中DEFINE_INIT压力初始化错误)。

如下面的几何模型,几何尺寸为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;
}else
{
C_P(c,t) = 100;
}
}
end_c_loop(c,t)
}
}

编译并加载UDF。在初始化面板中进行初始化。初始化完毕后可以在后处理中查看初始压力的分布。如下图所示,可以看到,压力并未按照程序中所指定的压力值进行分布。在30 mm < y < 40 mm区域内的压力值被初始化为100 Pa,其他区域的压力值为0 Pa,而200 Pa的压力值则出现在30 mm < y < 40 mm的壁面上。

后来经热心网友提醒,可能是因为压力基求解器与边界条件所引起(前面测试用的计算模型四个边界均为壁面边界,采用的是默认的压力基求解器)。

解决方式有三种。

  1. 使用密度基求解器。
  2. 使用压力基求解器,但计算域中至少有一个压力边界(压力入口边界或压力出口边界)。
  3. 使用压力基求解器,修改UDF程序代码。

1 密度基求解器

  • 激活密度基求解器

当使用密度基求解器时,采用下面的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;
}else
{
C_P(c,t) = 100;
}
}
end_c_loop(c,t)
}
}

此时可以正常初始化。如下图所示。

但是密度基求解器并不那么好用,大量的物理模型无法在密度基求解器下使用。不过可以在初始化后将密度基求解器转换为压力基求解器,虽然麻烦点儿,但也能解决问题。

2 修改边界类型

依然使用压力基求解器。

当使用压力基求解器时,若所有边界均为壁面边界,则会出现之前那种无法正常初始化的情况。但计算域中存在至少一个压力边界(压力入口或压力出口)时,可以正常初始化。

  • 修改左侧边界为压力入口边界

此时初始化的结果如下图所示。图中显示,压力初始化正常。

也可以尝试将右侧边界指定为压力出口。

初始化后如图所示,可以看到压力也能够正常初始化。

因此若要想在密闭区域中使用压力基求解器时进行压力初始化,可以先修改其中某个边界为压力边界,初始化完毕后再改回来。

3 修改UDF程序

如果头铁非要在密闭环境下使用压力基求解器,且要对区域内的压力进行初始化,该怎么做?

可以按下面所示修改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;
}
else if(xc[1]>=0.04 && xc[1] <=0.05)
{
C_P(c,t) = 100;
}
else if(xc[1]<=0.03 && xc[1]>0.001) //给了一个小容差0.001
{
C_P(c,t) = 100;
}
}
end_c_loop(c,t)
}
}

上面的代码初始化后如下图所示。

那下面还有一点压力为零的部分(0

注:此解决方法不太优雅。


(完)

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

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

说两句 抢沙发

评论前必须登录!

 

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

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

支付宝扫一扫

微信扫一扫

登录

找回密码

注册