|
发表于 2010-4-28 15:08:19
|
显示全部楼层
原帖由 yuzhuchen1504 于 2010-4-28 03:10 发表
谢谢!ID是Fluent里Define——Boundary Define里显示的ID吗?
我编的这个您帮我看一下吧~谢谢了!
#include "udf.h"
face_t f;
Thread *f_thread;
int ID,i,count;
real temp[100];
real avgtemp;
Domai ...
#include "udf.h"
#define WALL1_ID 3 //根据壁面1的实际id修改
real avg_temp=300.0;
DEFINE_ADJUST(wall1_avg_temp, domain)
{
real NV_VEC(A);
real sum_T_A=0.0,sum_A=0.0;
face_t f;
Thread*f_thread;
f_thread = Lookup_Thread(domain, WALL1_ID);
begin_f_loop(f, f_thread)
{
F_AREA(A,f,f_thread);
sum_A+=NV_MAG(A);
sum_T_A+=NV_MAG(A)*F_T(f, f_thread);
}
end_f_loop(f, f_thread)
avg_temp=sum_T_A/sum_A;
}
DEFINE_PROFILE(Wall2_T,t,position)
{
face_t f;
begin_f_loop(f,t)
{
F_PROFILE(f,t,position) = avg_temp;
}
end_f_loop(f,t)
}
将计算平均温度放在DEFINE_PROFILE里面也是可以的,但是会空耗很多计算量,因为对于壁面2上的每一个面都会计算一遍,有多少个面就重复计算多少遍,毫无意思,所以放在DEFINE_ADJUST比较好,每次迭代前算一次就够了。记得hook。
[ 本帖最后由 gearboy78 于 2010-4-28 07:11 编辑 ] |
|