《一个简单UDF程序解释.docx》由会员分享,可在线阅读,更多相关《一个简单UDF程序解释.docx(3页珍藏版)》请在优知文库上搜索。
1、OOl修改湍流耗散并在控制板上显示的UDF先看程序#includeudf.hDEFINE_ADJUST(my_adjust,d)(Thread*t;*Integratedissipation.*/realSUrTLdiss=0.;cell_tc;thread_loop_c(t,d)(begin_c_loOP(C,t)sum_diss+=C-D(c,t)*C_VOLUME(c,t);end_c_loop(c,t)printf(VolmeintegralOfturbulentdissipation:gn,sm-diss);)解释udf.h是一个头文件,是每一个UDF程序必须要包含的,形式是#inc
2、ludedf.h,出现在没有程序的最开始部分。就是一个库函数,包括了DEFlNE宏的定义,其他的程序提供的宏和函数。是已汇编的形式编入程序。是写UDF必须有的。DEFINE_ADJUST(my_adjust,d)是一个DEFINE宏。简单说一句,所谓宏,就是一系列程序的合集,打包之后可以方便调用,对于用户来讲可以理解为黑箱,只要提供参数,就能得到结果。DEFINE_ADJUST(my_adjust,d)中my_adjust是具体的宏名称,用户取的,只要符合C的命名规则,可以任意取,变成yor-adjust也是一样的。d是domain的意思,由fluent软件提供,用户不需要管。Thread*t
3、;Thread,线程,可以理解为一种数据类型,整个定义了一个指针,(这里需要一些C语言知识,指针的定义)。这句的意思是定义了一个指针,名字是t,存储数据类型是Thread。realsm,diss=0.;定义了一个实数变量,名字叫sm.diss,并赋值为0;celljc;定义了一个CelLt的变量,名字叫c;CelLt是fluent中的一种数据类型。thread_loop_c(t,d)在域上循环单元线程,即在给定域内循环单元线程。domain可以理解成很多数据的集合,其中包括cell,也可能有face,这个宏只在domain里面循环找CeIIthread。括号里的t是前面定义的,d是由程序给定的
4、。begin-cjoop(c,t)这是在单元线程里循环每个单元,之后进行操作,由ed.cjoop(c,t)结束循环。sum_diss+=C-D(c,t)*C_VOLUME(C,t);+=表示和自己家,写全就是sm-diss=sum-diss+C.D(c,t)*C_VOLUME(c,t);sum_diss是前面定义的实数。CLD(Ct)和JVc)LUME(C,t)又是两个宏,区域可以看到,是t线程里面的c,就是单元线程里的每个单元。JD(C,t)表示该单元的湍流动能耗散率;CLVc)LUME(C,t)表示该单元的体积。printf(,Volmeintegralofturbulentdissipation:%gn,SUrrLdiss);打E一句话,输出SIJm_diss的值。C语言基本打印语句。