admin 管理员组

文章数量: 887021


2024年1月18日发(作者:smart是什么)

001修改湍流耗散并在控制板上显示的UDF

先看程序

#include "udf.h"

DEFINE_ADJUST(my_adjust,d)

(

Thread *t;

∕* Integrate dissipation. *∕

real sum diss=0.j

cell_t c;

thread」oop_c(t,d)

(

begin_c_loop(c,t)

sum_diss += C.D(c,t)* C_VOLUME(c,t);

end_c_loop(c,t)

}

printf("Volume integral of turbulent dissipation: %g∖∩", sum_diss);

)

解释

∪df.h是一个头文件,是每一个UDF程序必须要包含的,形式是/include

"udf.h",出现在没有程序的最开始部分。就是一个库函数,包括了

DEFINE宏的

定义,其他的程序提供的宏和函数。是已汇编的形式编入程序。是写UDF必须

有的。

DEFINE_ADJUST(my_adjust,d)是一个

DEFINE

宏。简单说一句,所谓宏,就

是一系列程序的合集,打包之后可以方便调用,对于用户来讲可以理解为黑箱,

只要提供参数,就能得到结果。

DEFINE_ADJUST(my_adjust,d)中my_adjust是具体的宏名称,用户取的,只要

符合C的命名规则,可以任意取,变成也是一样的。d是domain的

意思,由fluent软件提供,用户不需要管。

Thread*1;Thread,线程,可以理解为一种数据类型,整个定义了一个指针,

(这里需要一些C语言知识,指针的定义)。这句的意思是定义了一个指针,名

字是t,存储数据类型是Thread。

real sum_diss=0.;定义了一个实数变量,名字叫,并赋值为0

cell_tc;定义了一个cell」的变量,名字叫c

; cell」是fluent中的一种数据类

型。

thread」oop_c(t,d)在域上循环单元线程,即在给定域内循环单元线程。

domain可以理解成很多数据的集合,其中包括cell,也可能有face,这个宏只在

domain里面循环找cell thread。括号里的t是前面定义的,d是由程序给定的。

begin_c_loop(c,t)这是在单元线程里循环每个单元,之后进行操作,由

(c1t)结束循环。

sum_diss += C-D(c,t)* C_VOLUME(c,t);+二表示和自己家,写全就是

sum_diss

=sum_diss+ C-D(c,t)* C_VOLUME(c,t); sum_diss

是前面定义的实数。

C_D(c,t)和C_VOLUME(c,t)又是两个宏,区域可以看到,是t线程里面的c,

就是单元线程里的每个单元。C_D(c,t)表示该单元的湍流动能耗散率;

C_VOLUME(c,t)表示该单元的体积。

prin廿("Volume integral of turbulent dissipation: %g∖∩", sum_diss);打印一句话输出sum_diss的值。C语言基本打印语句。

,


本文标签: 单元 程序 线程 定义 用户