Fluent UDF【2】:学习途径
要怎样做才能做到无畏惧编写任何UDF程序?估计很多与UDF打交道的人都会问到这个问题。
面对UDF文档中那众多的宏描述,小伙伴们是不是感觉到茫然无措,不知从何入手。有时候读别人写好的程序感觉并不难,然而自己写的时候总是感觉不对劲。
我们今天就来聊聊UDF到底该怎么学。
关于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语言宏定义的方式,这个稍加注意就能够看懂。
其他的也没什么需要去关注的了。关于UDF代码编写
UDF文件可以用任何文本编辑器编写,记事本、写字板都可以。当然如果想要有语法高亮效果的话,可以找一些专业的编辑器。像免费的Notepad++,Atom等,还有其他的要钱的软件如ultraEdit,EditPlus、Sublime text等,都是非常不错的选择。
该如何编写呢?Fluent提供了大量的UDF宏,单单帮助文档里头就有好几百个,当然如果你记忆力超群能够把这些宏的用法全都记住,自然是很不错的。但是大多数人估计是记不住的,幸好UDF手册写得很详细,各种宏的用途及其程序实例都很齐全。因此在实际的代码编写过程中,最简单的做法是根据UDF手册中各种程序实例改写自己的程序代码。UDF的数据操作
UDF的本质工作还是操纵数据,这是所有计算机程序的共性。
那么问题来了。操纵什么数据?数据从哪里来?数据修改之后往哪里去?
很多人觉得UDF难写,其实是没搞清楚上面的三个问题。- 操纵什么数据?这个是最难的,需要些什么数据,这个问不了别人,只有自己才清楚。这里要说的是,当你把要修改的模型数据拿出来之后,需要将其转化为用基本物理量进行表达。我们可以通过查询UDF手册,看看那些数据获取宏能够得到哪些数据。
- 数据从哪里来?有一些数据是通过宏直接获取得到,我们姑且将其称之为基础数据,如要获取压力,单元的压力可以用C_P宏获取,面压力可以用F_P获取。而有些数据则没办法直接通过宏得到,此时我们需要利用基础数据进行代数运算来得到这些值。
数据往哪里去?操纵完毕的数据自然是要返回给Fluent。令人迷惑的是返回的形式,有些宏采用显式方式返回,例如在DEFINE_PROFILE宏中,采用F_PROFILE宏返回数据给Fluent。而有些宏则没有这些显式的返回形式。此时要仔细查阅UDF手册中关于宏的描述。还有一些传址调用也能返回数据。
其实只要搞清楚了这三个问题,UDF并不是什么很难的东西。总结
对于UDF程序的编写工作,总的来说需要注意:
- UDF手册是最主要的参考文档。
UDF的核心工作在于数据处理。
更多CFD资料可微信扫描下方二维码关注微信公众号。

Fluent UDF【2】:学习途径的更多相关文章
- Fluent UDF【1】:简介
前面基本完成了动网格专题的发布,不过还是有一些内容并没有更新进去,比如说in-cylinder.接触检测.2.5D网格重构等.不过这些都是小技巧,写起来挺麻烦,以后有时间再通过案例视频的方式讲解好了. ...
- Fluent UDF【4】:C语言
Fluent UDF利用的是C语言,本文简单介绍在UDF中经常会用到的C语言常识. 本文部分内容来自UDF手册. 1 C语言中的注释 C语言中的注释利用/*及*/来实现.例如: /*这是一个注释*/ ...
- Fluent UDF【8】:编译型UDF
UDF除了可以以解释的方式外,其还可以以编译的方式被Fluent加载.解释型UDF只能使用部分C语言功能,而编译型UDF则可以全面使用C语言的所有功能. 1 编译型UDF介绍 编译型UDF的构建方式与 ...
- Fluent UDF【7】:解释型UDF
UDF宏有两种方式可以被Fluent所接受:编译和解释.其中有一些宏既可以被解释也可以被编译,而一些宏则只能被解释.有一些场合只接受编译后的UDF(如动网格中的一些宏),而有些场合既可以接受编译的UD ...
- Fluent UDF【6】:预处理命令
今天要讲的内容是关于C语言的预处理.搞清楚了这个,就可以分析UDF中的各种头文件源代码,从此写UDF不求人. 1 关于预处理 在UDF的各种头文件中(文件路径D:\Program Files\ANSY ...
- Fluent UDF【5】:第一个UDF
这里以一个简单的初始化案例来描述UDF的使用过程. 0 Fluent中的Patch Fluent中提供了全域初始化以及局部Patch功能.对于整体区域的全局初始化可以采用starndard及hybri ...
- Fluent UDF【3】:环境配置
windows操作系统下UDF的编译需要借助Visual Studio中的C编译器.因此若要想编译UDF,则必须事先配置好编译环境. Visual Studio Visual Stuido(后面简称V ...
- Serial Fluent UDF on Windows
test test Table of Contents 1. Serial UDF on Windows OS 1 Serial UDF on Windows OS Note: Udf has to ...
- Fluent——UDF监测指定点的物理量
Fluent版本:19.0 Fluent当中提供了监测某一点物理量随迭代次数或者随时间变化的功能,下面我们就介绍如何在UDF当中实现相同的功能,并且UDF更加灵活,通过UDF的方式我们在知道某点运动规 ...
随机推荐
- Ubuntu18.04下的音频录制和编辑软件Ardour及QjackCtl(jackd gui)
Ardour 是一个Linux和OSX下的多音轨录制和数字音频编辑软件. 需要配合ALSA或者JACK总线使用. 快速入门 http://brunoruviaro.github.io/ardour4- ...
- 在 Laravel 5.1 中使用 Pjax
在 Laravel 5.* 的版本中,使用 Pjax 实现无刷新效果,以及酷炫的进度条 项目地址:https://github.com/yccphp/pjax-for-laravel-5 求 star ...
- 【win7 + win server 2008】设置定时任务,设置.bat 文件去执行php脚本 == 用来配合爬虫程序简直不要太爽
Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行 一.首先进行任务管理器设置 每隔1分钟执行.BAT 文件配置 首先Windows Server 200 ...
- e藏在哪里?
e约等于2.718,是和pi齐名的自然常数. 在任何一个均匀随机器中,都藏着e. import random def count(): k = 0 s = 0 while s < 1: k += ...
- Python装饰器几个有用又好玩的例子
装饰器是一种巧妙简洁的魔术,类似于Java中的面向切面编程,我们可以再函数执行前.执行后.抛出异常时做一些工作.利用装饰器,我们可以抽象出一些共同的逻辑,简化代码.而简化代码的同时,就是在增加代码鲁棒 ...
- MM bound 与 Jensen's inequality
MM bound 与 Jensen's inequality 简森不等式 在使用最大似然估计方法求解模型最优解的时候,如果使用梯度下降(GD or SGD)或者梯度上升(GA or SGA),可能收敛 ...
- 手动修改magento域名
So it turns out the problem was that Apache didn't have write permissions to the WEBROOT/var directo ...
- 【sql】CHARINDEX
语法:CHARINDEX ( expressionToFind ,expressionToSearch [ , start_location ] ) 参数: 1)expressionToFind 包含 ...
- 利用css如何让嵌套的div层不继承父div层的透明度?
http://zhidao.baidu.com/link?url=cvQhh0Q7_ah0qg9tc-2zP0cjB_PoIiIq6t6RFpp4aZPPNoVJUqyy7TT41TU5pWzRtRY ...
- C语言函数实现的另类方法
在前面看过那个BT的Javascript程序后,我们来看一个C语言的,相信大家还记得输出从1到1000的数最后的那个示例,本站还有很多这样的示例,如:变态的hello word,如何教新手编程,还有恐 ...