加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

fluent udf manual中的velocity例子

(2016-05-10 15:11:55)
分类: 学生2-专业带来乐趣
ANSYS fluent udf帮助文件里自带了个关于入口速度的udf控制例子,其模型如下:
http://s7/bmiddle/006lQGG7gy71zCQ9Vhc86&690udf manual中的velocity例子" TITLE="fluent udf manual中的velocity例子" />
帮助中自带例子模型的坐标轴如上图所示,其对应的udf代码如下:
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity, thread, position)  参数为 UDF name,Thread *t, int i
{
     real x[ND_ND];                      
     real y,h;
     face_t f;
     h=0.016;                            h为入口通道宽度             
     begin_f_loop(f,thread)
     {
        F_CENTROID(x, f, thread);    参数为x[ND_ND],face_t f, 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 代码的编写。
http://s11/bmiddle/006lQGG7gy71zHS0wgWda&690udf manual中的velocity例子" TITLE="fluent udf manual中的velocity例子" />
如图所示,如若模型的坐标轴位置变换到如图位置,此时要改变的是抛物线方程。修改后的代码如下:
#include "udf.h"
DEFINE_PROFILE(inlet_x_velocity, thread, position)
{
     real x[ND_ND];
     real y,h;
     face_t f;
     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文件,求解结果如下所示:
http://s1/mw690/006lQGG7gy71zIfXHEs50&690udf manual中的velocity例子" TITLE="fluent udf manual中的velocity例子" />

EX2******************************************************
再次改变模型位置,如下图所示,改变xy轴方向
http://s13/bmiddle/006lQGG7gy71zIlsdTCdc&690udf manual中的velocity例子" TITLE="fluent udf manual中的velocity例子" />
修改代码如下:
#include "udf.h"
DEFINE_PROFILE(inlet_y_velocity, thread, position)  图中入口速度为y方向,名称改为y方向,不改也没关系
{
     real x[ND_ND];
     real y,h;
     face_t f;
     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)
}
求解结果如下图:
http://s13/mw690/006lQGG7gy71zIUFEHq1c&690udf manual中的velocity例子" TITLE="fluent udf manual中的velocity例子" />
可以看出,这样修改代码之后,和前面的EX1还有HELP文件里的例子结果就一样了。

以上的摸索,是为了方便大家更好地理解 fluent udf编程,改天我在分享最简单的三维模型该如何编写udf。
如有错误的地方,欢迎批评指正。




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有