Fluent UDF利用的是C语言,本文简单介绍在UDF中经常会用到的C语言常识。
本文部分内容来自UDF手册。
1 C语言中的注释
C语言中的注释利用/*及*/
来实现。例如:
/*这是一个注释*/
注释也可以跨行实现,如:
/*这是一个
跨行注释*/
注意:在编写UDF的过程中,不能把DEFINE宏(如DEFINE_PROFILE)放置在注释中,否则会引起编译错误
2 基本数据类型
Fluent UDF解释器支持的标准C数据类型包括:
int
。整形,存储形如1,2,3之类的整数。long
。长整形。存储数据与int类似,但范围更广。float
。浮点型。存储小数,如1.234等double
。双精度浮点型。与float类似。char
。字符型,如'a','b','c'等。
Fluent UDF中还有real
型,其实这是Fluent自定义的数据类型,在双精度求解器中,real类型与double类型相同,而在单精度求解器中,real类型等同于float类型。UDF自动进行转换,因此在需要浮点数时,可以全部采用real类型。
3 常数
在C语言中可以利用#define来定义常数。需要注意的是,定义为常数类型后,该变量的值不能改变。如:
#define WALL_ID 5
#define YMIN 0.0
#define YMAX 0.4
这样定义完毕后,WALL_ID的值不能再发生改变,因此如下的语句会引发编译错误:
WALL_ID = WALL_ID +1 ;
4 变量
变量用于存储数据。所有变量都包含类型、名称以及值,有时候还包含存储标记(如静态变量和外部变量)。C语言中所有的变量在使用之前都必须声明,这样C编译器才会知道该如何为此变量分配内存。
4.1 全局变量和局部变量
C语言中的全局变量定义在函数的外部,该变量可以被源文件中所有的函数引用。全局变量如果未被声明为静态变量的话,还可以被外部函数引用。如下例中的全局变量声明:
#include "udf.h"