标签:
fluentudf |
分类: 胡言乱语 |
1、什么是UDF
UDF(User Defined Function,用户自定义函数),可以用于被ANSYS FLUENT求解器动态加载以增强其标准功能的C语言程序。UDF归根结底是一段C语言代码,但是需要在FLUENT规定的框架范围内去定义,这样才能够被FLUENT认可并在其加载后以提供标准程序所不具备的功能。
2、干嘛要用UDF
在FLUENT中,可以利用UDF来延伸fluent自身的功能。比如说以下一些典型的应用:
(1)自定义属性。如边界条件、材料属性、化学反应速率、输运方程源、UDS等;
(2)迭代中调整计算中;
(3)初始化;
(4)异步执行命令;
(5)迭代完后执行命令;
(6)增强后处理;
(7)增强现有的模型(如离散相模型、多相流模型等等)
当然了,FLUENT本身已经具备了较多强大的功能,并不是所有的计算模型都需要使用UDF。
3、UDF具有的特征
虽然说UDF是利用C程序,但是毕竟是需要存在于FLUENT所订立的规则之下,因此其具有其特殊的特征:
(1)UDF是利用的C程序语言,故源文件的扩展名为.c,可以用文本编辑器进行编辑。另外,UDF程序必须符合C语言语法要求;
(2)UDF程序都是利用FLUENT提供的DEFINE宏进行定义;
(3)所有的UDF程序都需要包含udf.h头文件;
(4)UDF程序可以通过两种方式进行加载:解释与编译;解释型的UDF不需要外部编译器,而解释型的UDF则需要C编译器,在windows环境中常使用Visual studio,而在Linux环境中,则通常使用GCC。
4、UDF的一些限制条件
UDF不是万能的,虽然说在很多地方可以应用UDF以增强FLUENT自身的能力,但是毕竟局限于FLUENT的圈圈之类,还是存在一些局限性:
(1)UDF中使用的物理量以及返回值均采用SI单位制;
(2)若更换FLUENT运行环境(如FLUENT版本、操作系统环境等),则UDF需要重新进行编译加载。
5、UDF如何学习
UDF需要学习么?需要么,好像不需要。真的不需要么,个人觉得还是有必要的。
UDF利用的是C语言,所以了解基本的C语言语法是必要的。
那么C语法中有哪些是UDF中用得到的呢:首先,基本的赋值、条件判断、循环结构必须要清楚;其次掌握一些函数定义方面的基础;另外掌握宏定义有助于理解UDF的运作方式。个人觉得FLUENT附录中的C语言基础应该多看看,对于无编程经验的童鞋很重要。
UDF手册比较完善,在使用UDF之前,建议先查一查手册,对着手册上的例子先模仿一番,然后在实例的基础上进行修改。
熟悉FLUENT的内部运行规则,对于用好UDF是非常重要的。