Fluent UDF 中文教程2 下载本文

double cos (double x); double sin (double x); double tan (double x); double cosh (double x); double sinh (double x); double tanh (double x); 2.13.2 各种数学函数

下面列表中,左边是C函数,右边是对应数学函数:

double sqrt (double x); 返回x的余弦函数 返回x的正弦函数 返回x的正切函数 返回x的双曲余弦函数 返回x的双曲正弦函数 返回x的双曲正切函数 x ydouble pow(double x, double y); x double exp (double x); double log (double x); double log10 (double x); double fabs (double x); double ceil (double x); double floor (double x); 2.13.3 标准I/O函数

C中有大量的标准输入输出(I/O)函数。在很多情况下,这些函数在指定的文件中工作。下面是一些例子。

FILE *fopen(char *filename, char *type); 打开一个文件 int fclose(FILE *fd); int fprintf(FILE *fd, char *format, ...); int printf(char *format, ...); int fscanf(FILE *fd, char *format, ...); 关闭一个文件 格式化输出到一个文件 输出到屏幕 格式化读入一个文件 ex ln?x? log10?x? x 不小于x的最小整数 不大于x的最大整数 函数fopen和fclose分别打开和关闭一个文件。函数fprintf以指定的格式写入文件,函数fscanf以相同的方式从某一文件中将数据读入。函数printf是一般的输出函数。fd是一个文件指针,它所指向的是包含所要打开文件的信息的C结构。除了fopen之外所有的函数都声明为整数,这是因为该函数所返回的整数会告诉我们这个文件操作命令是否成功执行。

9

在下面的例子中,需要打开的数据文件的名字用双引号括起来。fopen中的选项r表明该文件是以可读形式打开的。fscan函数从fd所指向的文件中读入两个浮点数并将它们存储为f1和f2。关于C的标准输入输出函数其它更多的信息,你可以查阅相关手册(如:[2])。 例子: FILE *fd;

fd = fopen(\ /* opens a file named data.txt */ fscanf(fd, \ fclose(fd);

2.14 用#define实现宏置换

UDF解释程序支持宏置换的C预处理程序命令。当你使用#define宏置换命令,C预处理程序(如,cpp)执行了一个简单的置换,并用替换文本替换宏中定义的每一个自变量。 #define macro replacement-text 如下面的宏置换命令: #define RAD 1.2345

预处理程序会在UDF中所有的变量RAD出现的地方将RAD替换为1.2345。在你的函数中可能会有很多涉及到变量RAD的地方,但是你只需要在宏命令中定义一次,预处理程序会在所有的代码中执行替换操作。 在下面这个例子中:

#define AREA_RECTANGLE(X,Y) ((X)*(Y))

你的UDF中所有的AREA_RECTANGLE(X,Y)都会被替换为(X)和(Y)的乘积。 2.15 用#include实现文件包含

UDF解释程序还支持文件包含的C前处理命令。当你使用#include包含一个文件时,C前处理程序会将#include filename行替换为文件名对应的文件内容。 #include \filename \

文件名对应的文件必须在当前目录中。只有udf.h文件例外,这是因为FLUENT解算器会自动将它读入。 如下面的文件包含命令: #include \

会将文件udf.h包含进你的源代码中。

10

的比较

函数和FORTRAN函数的子程序很相似,例子如下:

简单的C函数 等价的FORTRAN函数 int myfunction(int x) INTEGER FUNCTION MYFUNCTION(X) { int x,y,z; INTEGER X,Y,Z y = 11; Y = 11 z = x+y; Z = X+Y printf(\WRITE (*,100) Z return z; MYFUNCTION = Z } END 11

2.16 与FORTRAN 很多简单的C