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语言基本打印语句。
,
版权声明:本文标题:一个简单UDF程序解释 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705561979h490043.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论