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

Fluent UDF【2】:学习途径

内容纲要

要怎样做才能做到无畏惧编写任何UDF程序?估计很多与UDF打交道的人都会问到这个问题。 

面对UDF文档中那众多的宏描述,小伙伴们是不是感觉到茫然无措,不知从何入手。有时候读别人写好的程序感觉并不难,然而自己写的时候总是感觉不对劲。 

我们今天就来聊聊UDF到底该怎么学。

1

关于C语言

Fluent UDF使用C语言,因此要想熟练使用UDF的话,掌握基本的C语言是很有必要的。 
市面上C语言的书籍很多,其中有很多的经典教材。然而几乎每一本C语言的书籍都很厚,里面涉及的内容非常的多,如果不是专门搞程序设计的话,想要精通C语言,势必需要花费大量的时间。推荐看一些经典的C语言教材。如下面这本。 

 

其实UDF只是利用了C语言很少的一部分,我们利用UDF,只需要掌握C语言的最核心的内容,包括:

  • 基本语法:语法重要性自然不用多说。UDF采用C语言进行编写,自然必须符合C语言基本语法习惯,否则解释和编译都难以通过。C语言的语法很多,可以找一本经典C语言书籍,照着写一两个程序基本就熟悉了。

  • 控制结构:包括逻辑控制、循环控制等。虽然说UDF中的控制形式有特别的宏来完成,然而掌握C语言的控制结构更有助于理解UDF中的各种稀奇古怪的循环结构。

  • 数组与指针:这个需要重点理解,在UDF中有很多的内置变量类型是数组或指针,不理解的话后面写程序会抓破脑袋。指针也是C语言的特色。

  • 函数与宏:搞清楚C语言函数传值调用与传址调用的区别。尤其是搞明白传址调用,在UDF宏中,好多的传址调用。弄清楚C语言宏定义的方式,这个稍加注意就能够看懂。 
    其他的也没什么需要去关注的了。

2

关于UDF代码编写

UDF文件可以用任何文本编辑器编写,记事本、写字板都可以。当然如果想要有语法高亮效果的话,可以找一些专业的编辑器。像免费的Notepad++,Atom等,还有其他的要钱的软件如ultraEdit,EditPlus、Sublime text等,都是非常不错的选择。 

该如何编写呢?Fluent提供了大量的UDF宏,单单帮助文档里头就有好几百个,当然如果你记忆力超群能够把这些宏的用法全都记住,自然是很不错的。但是大多数人估计是记不住的,幸好UDF手册写得很详细,各种宏的用途及其程序实例都很齐全。因此在实际的代码编写过程中,最简单的做法是根据UDF手册中各种程序实例改写自己的程序代码。

3

UDF的数据操作

UDF的本质工作还是操纵数据,这是所有计算机程序的共性。 

那么问题来了。操纵什么数据?数据从哪里来?数据修改之后往哪里去? 
很多人觉得UDF难写,其实是没搞清楚上面的三个问题。

  • 操纵什么数据?这个是最难的,需要些什么数据,这个问不了别人,只有自己才清楚。这里要说的是,当你把要修改的模型数据拿出来之后,需要将其转化为用基本物理量进行表达。我们可以通过查询UDF手册,看看那些数据获取宏能够得到哪些数据。

  • 数据从哪里来?有一些数据是通过宏直接获取得到,我们姑且将其称之为基础数据,如要获取压力,单元的压力可以用C_P宏获取,面压力可以用F_P获取。而有些数据则没办法直接通过宏得到,此时我们需要利用基础数据进行代数运算来得到这些值。

  • 数据往哪里去?操纵完毕的数据自然是要返回给Fluent。令人迷惑的是返回的形式,有些宏采用显式方式返回,例如在DEFINE_PROFILE宏中,采用F_PROFILE宏返回数据给Fluent。而有些宏则没有这些显式的返回形式。此时要仔细查阅UDF手册中关于宏的描述。还有一些传址调用也能返回数据。 
    其实只要搞清楚了这三个问题,UDF并不是什么很难的东西。

4

总结

对于UDF程序的编写工作,总的来说需要注意:

  • UDF手册是最主要的参考文档。

  • UDF的核心工作在于数据处理。





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

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

说两句 抢沙发

评论前必须登录!

 

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

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

支付宝扫一扫

微信扫一扫

登录

找回密码

注册