ANSYS fluent udf帮助文件里自带了个关于入口速度的udf控制例子,其模型如下:
帮助中自带例子模型的坐标轴如上图所示,其对应的udf代码如下:
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity, thread, position) 参数为 UDF name,Thread *t, inti
{
realx[ND_ND];
realy,h;
face_tf;
h=0.016; h为入口通道宽度
begin_f_loop(f,thread)
{
F_CENTROID(x, f,thread); 参数为x[ND_ND],face_tf, Thread *t
y=2*(x[1]-0.5*h)/h; x[1]对应点的y坐标
F_PROFILE(f, thread,position)=0.1*(1.0-y*y); 这行和上一行合起来为抛物线方程
}
end_f_loop(f,thread)
}
EX1*********************************************
知道了udf 代码的具体含义,我们就可以自己尝试改变一下模型。我们先简单的将模型的坐标轴位置平移,以便更好地理解udf代码的编写。
如图所示,如若模型的坐标轴位置变换到如图位置,此时要改变的是抛物线方程。修改后的代码如下:
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity, thread, position)
{
realx[ND_ND];
realy,h;
face_tf;
h=0.016;
begin_f_loop(f,thread)
{
F_CENTROID(x, f, thread);
y=2*(x[1]+0.5*h)/h; 这个地方需要修改一下,根据抛物线方程来修改
F_PROFILE(f, thread,position)=0.1*(1.0-y*y);
}
end_f_loop(f,thread)
}
在fluent中打开模型,interpreted或者compiled编辑好的.c文件,求解结果如下所示:
EX2******************************************************
再次改变模型位置,如下图所示,改变xy轴方向
#include "udf.h"
DEFINE_PROFILE(inlet_y_velocity, thread,position) 图中入口速度为y方向,名称改为y方向,不改也没关系
{
realx[ND_ND];
realy,h;
face_tf;
h=0.016;
begin_f_loop(f,thread)
{
F_CENTROID(x, f, thread);
y=2*x[0]/h;
要修改的就是这个地方,第一,根据抛物线方程修改方程,第二,点的坐标取x[0],也即点的x轴坐标
F_PROFILE(f, thread,position)=0.1*(1.0-y*y);
}
end_f_loop(f,thread)
}
求解结果如下图:
可以看出,这样修改代码之后,和前面的EX1还有HELP文件里的例子结果就一样了。
以上的摸索,是为了方便大家更好地理解 fluent udf编程,改天我在分享最简单的三维模型该如何编写udf。
如有错误的地方,欢迎批评指正。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。