Fluent UDF 中文教程2 下载本文

内容发布更新时间 : 2024/5/20 8:17:04星期一 下面是文章的全部内容请认真阅读。

int a[10], b[10][10]; real radii[5];

a[0] = 1; /* 变量a为一个一维数组*/ radii[4] = 3.14159265; /*变量radii为一个一维数组*/ b[10][10] = 4; /*变量b为一个二维数组*/ 2.10指针

指针变量的数值是其它变量存储于内存中的地址值。C程序中指针变量的声明必须以*开头。指针广泛用于提取结构中存储的数据,以及在多个函数中通过数据的地址传送数据。 例如:int *ip;

本语句声明了一个指向整型变量的指针变量ip。此时你可以为指针变量分配一个地址值了。现在假定你要将某一地址分配给指针ip,你可以用取地址符&来实现。例如: ip = &a;

就分配给指针ip变量a的地址值了。

要得到指针变量所指向的单元的值,你可以使用: *ip

你还可以为指针ip所指向的变量赋值,例如: *ip = 4;

将4赋给指针ip所指向的变量。下面是使用指针的例子: int a = 1; int *ip;

ip = &a; /* &a返回了变量a的地址值*/ printf(\ *ip = 4; /* a = 4 */ printf(\

在上面的语句中,整型变量赋初值为1。然后为整型变量声明一个指针。然后整型变量a的地址值分配给指针ip。然后用*ip来输出指针ip所指向的值(该值为1)。然后用*ip间接的给变量a赋值为4。然后输出a的新值。指针还可以指向数组的起始地址,在C中指针和数组具有紧密的联系。 2.10.1 作为函数自变量的指针

5

C函数可以通过指针进入和修改它们的自变量。在FLUENT中,线程和域指针是UDF常用的自变量。当你在UDF中指定这些自变量时, FLUENT解算器会自动将指针所指向的数据传送给UDF,从而使你的函数可以存取解算器的数据(你不必声明作为自变量从解算器传送给UDF的指针)。例如,某一传送给指定(由DEFINE_PROFILE宏来定义的)自定义轮廓UDF的自变量是一个指向应用于边界条件的线程的指针。DEFINE_PROFILE函数会存取线程指针所指向的数据。 2.11 控制语句

你可以使用控制语句,如if, if-else和循环来控制C程序中语句的执行顺序。控制语句决定了程序序列中下一步该执行的内容 2.11.1 if语句

if语句是条件控制语句的一种。格式为: if (逻辑表达式) {语句}

其中逻辑表达式是判断条件,语句是条件满足时所要执行的代码行。 例子 if (q != 1) {a = 0; b = 1;} 2.11.2 if-else语句

if-else语句是另一种条件控制语句。格式为: if (逻辑表达式) {语句} else {语句}

如果逻辑表达式条件满足,则执行第一个语句,否则执行下面的语句。 例子 if (x < 0.) y = x/50.; else { x = -x; y = x/25.;

6

}

下面是等价的FORTRAN代码,大家可以比较一下: IF (X.LT.0.) THEN Y = X/50. ELSE X = -X Y = X/25. ENDIF 2.11.3 for循环

for循环是C程序最为基本的循环控制语句。它和FORTRAN中的do循环很类似。格式为: for (起点;终点;增量) {语句}

其中起点是在循环开始时执行的表达式;终点是判断循环是否结束的逻辑表达式;增量是循环迭代一次之后执行的表达式(通常是增量计数器)。 例子:

/* 输出整数1-10及它们的平方*/ int i, j, n = 10; for (i = 1 ; i <= n ; i++)

{ }

j = i*i;

printf(\

下面是等价的FORTRAN代码,大家可以做一比较: INTEGER I,J N = 10 DO I = 1,10 J = I*I WRITE (*,*) I,J ENDDO 2.12常用的C运算符

运算符是内部的C函数,当它们对具体数值运算时会得到一个结果。常用的C运算符是算术运算符和逻辑运算符。

7

2.12.1 算术运算符

下面是一些常用的算术运算符。 = 赋值 + 加 - 减 * 乘 / 除 % 取模 ++ 增量 -- 减量

注意:乘、除和取模运算的优先级要高于加、减运算。除法只取结果的整数部分。取模只取结果的余数部分。++运算符是增量操作的速记符。 2.12.2 逻辑运算符 下面是一些逻辑运算符。 < 小于 <= 小于或等于 > 大于 >= 大于或等于 == 等于 != 不等于

2.13 C库函数

当你书写UDF代码时,你可以使用C编译器中包括的标准数学库和I/O函数库。下面各节介绍了标准C库函数。标准C库函数可以在各种头文件中找到(如:global.h)。这些文件都被包含在udf.h文件中。 2.13.1 三角函数

下面的三角函数都是计算变量x(只有一个还计算y)的三角函数值。函数和变量都是双精度实数变量。具体的意义大家应该都很清楚,就不具体介绍了。

double acos (double x); double asin (double x); double atan (double x); 返回x的反余弦函数 返回x的反正弦函数 返回x的反正切函数 double atan2 (double x, double y); 返回x/y的反正切函数 8