下面这个fluent 的UDF在单核的时候可以使用,如何可以在多核运算的时候也能使用呢?
需要添加什么代码?
请高手指点哦。
#include "udf.h"
real NV_VEC(A);
real avg_temp;
real sum_T_A=0.0;
real sum_A=0.0;
Thread *thread_out;
face_t f;
Domain *domain;
DEFINE_ADJUST(adjust,d)
{
domain=Get_Domain(1);
thread_out=Lookup_Thread(domain,8);
begin_f_loop(f,thread_out)
{
F_AREA(A,f,thread_out);
sum_A+=NV_MAG(A);
sum_T_A+=NV_MAG(A)*F_T(f, thread_out);
}
end_f_loop(f,thread_out)
avg_temp=sum_T_A/sum_A;
}
DEFINE_PROFILE(inlet_T, t, i)
{
begin_f_loop(f,t)
{
F_PROFILE(f,t,i) = avg_temp;
}
end_f_loop(f,t)
}
第1个回答 2014-07-30
多核版本Fluent,可以读取单核版本的.cas文件。你可以将编译好UDF的case保存,再次打开并行版本的Fluent打开case,这时候系统会自动在每个节点下面生成udfconfig-host*.h的,这里的*号对应节点编号,一般是从0开始的。例如,你选用了12个节点,就会生成udfconfig-host0.h到udfconfig-host12.h,这12个用于并行调用的程序。