Fluent用户自定义函数(UDF)入门基础

前面我们所讲述的Fluent的相关知识只是很少很少的一部分,但是今天我们还是开始一部分新的知识。之所以这样做,是因为今天所讲述的知识在大家以后的学习中用途很广泛,同时这部分知识需要大家提前学习一些基础知识。



图1.UDF用户手册

UDF介绍:所谓UDF-用户自定义函数(User-defined functions),学习过编程语言的同学对此应该并不陌生,无论是C语言、JAVA还是Python,自定义函数被广泛的应用着,它能够使语言逻辑和代码的简洁性大幅度提高。Fluent的UDF有着同样的功能,但是又不完全相同。

在Fluent中,UDF使用C语言来编写,因此需要大家有一定的C语言基础,但是不必过于深入,大家只需要了解基本的格式和语法结构即可,同时需要对指针有一点了解。建议有其他语言基础的同学花一周的时间学习一下C语言---一周的时间已经足够了。

UDF特殊性:接下来我们说一下Fluent UDF的特殊性,实际上即便C语言功底很厉害的高手并不一定能够写好UDF,为什么呢?因为Fluent UDF和C语言的自定义函数完全就是两码事。它是Fluent封装好的可以传递给求解器的函数,主要由各种宏组成,每个宏有各自的作用。说的通俗易懂一点,其实UDF就是Fluent已经给用户起好了自定义函数的名字了,用户达到什么样的目的,使用相对应的宏就行。类似于我乘坐地铁去电影院,为了达到去电影院的目的,我使用了名叫地铁的工具,这里的名字“地铁”就相当于Fluent中的宏;如果放到C语言中,你可以给“地铁”起任意名字如“自行车”,这样会带来混乱,导致Fluent求解器识别不了你的目的。比如用户想让进口流体的速度正弦变化,那么就需要找到能够修改边界条件的宏-DEFINE_PROFILE(name, t, i),然后在里面指定速度函数即可。



图2.C语言自定义函数



图3.Fluent UDF

UDF功能:对于Fluent而言,UDF可以显著增强其功能,使用UDF你可以做如下的事情:

1. 自定义边界条件、材料特性、表面和体积反应速率、用户定义标量(UDS)、传输方程中的源项、扩散系数函数等

2. 每次迭代调整一次计算值。

3. 自定义的求解初始化

4. 按需执行UDF

5. 在迭代结束时、退出ANSYS Fluent或加载已编译的UDF库时执行

6. 增强后处理效果

7. 改进现有的ANSYS Fluent模型(如离散相模型、多相混合模型、离散坐标辐射模型)

上述功能都是直接使用Fluent比较难以完成但是实际又经常会用到的,尤其1、2在以后的学习中会经常使用到。

UDF宏:UDF有两类宏,DEFINE宏和结构宏。DEFINE宏是大的功能宏,能够完成某一项功能,如定义材料特性、定义边界条件等等。想要完成不同的功能就要在对应的DEFINE宏中书写代码,上述的每个功能都有其DEFINE宏。结构宏和FLUENT计算方式有关,涉及到网格、线程和相域的相关知识,比较复杂,我们以后再详细了解。结构宏可以相互嵌套,但是只能大套小。比较常见的结构宏如:

begin_f_loop(f, t)//遍历线程t上的面

{

//代码//

}

end_f_loop(f, t)

thread_loop_c(t, d)////遍历混合域d上的线程

{

//代码//

}

值得注意的是,DEFINE宏里面会包含结构宏,这样说来,DEFINE宏可以类比为C语言中的自定义函数,而结构宏则可以类比成循环语句for或while,只不过这里的循环的是网格或线程。

要想达到我们的目的,我们还需要知道各种物理量,UDF也给我们提供了各种各样的物理量,如获取网格温度C_T(c,t)。物理量宏都是这样的写法,C表示网格,T表示温度,(c,t)表示从t线程获取网格c的温度。C_T必须大写,(c,t)必须小写。下面给出一部分常用的物理量宏:



图4.常用的物理量宏

最后说一下,由于FLUENT UDF内容很多,我们不可能全部掌握,只能对一些常用的熟记





免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空