24小时热门版块排行榜    

查看: 941  |  回复: 1

zjwjiayou

新虫 (小有名气)

[求助] Fluent UDF 改单机多核

最近在学习udf的并行,也看了很多资料,仍然不能掌握,所以给出一个例子请求帮助。
以下是一个简单的定义物体x方向上的速度每一个时间步后速度增加0.001,如何改成单机多核,或者说不用改就能在单机多核上运行?
谢谢!
#include "udf.h"
#include "mem.h"
#include "math.h"
#include "dynamesh_tools.h"

static real init_vel=0;

DEFINE_CG_MOTION(sway,dt,vel,omega,time,dtime)
{
FILE *fd;

init_vel+=0.001;/*迭代出新的速度*/
vel[0]=init_vel;

   fd=fopen("vel.dat","a";
   fprintf(fd,"%f,%f\n", time, vel[0]);
   fclose(fd);
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjwjiayou

新虫 (小有名气)

补充一点:
我的电脑是单机4核,用的15.0,采用的串行,编译上述udf得到的速度更新结果如下:它并不是每一个时间步速度增加,而是每个时间步内速度已经叠加16次,并且我也尝试过和每一步的迭代次数无关。
不知道问题出在哪里了,请有经验的朋友指点!感谢!

timestep  速度
0.001000,0.001
0.001000,0.002
0.001000,0.003
0.001000,0.004
0.001000,0.005
0.001000,0.006
0.001000,0.007
0.001000,0.008
0.001000,0.009
0.001000,0.010
0.001000,0.011
0.001000,0.012
0.001000,0.013
0.001000,0.014
0.001000,0.015
0.002000,0.016
0.002000,0.017
0.002000,0.018
0.002000,0.019
0.002000,0.020
0.002000,0.021
0.002000,0.022
0.002000,0.023
0.002000,0.024
0.002000,0.025
0.002000,0.026
0.002000,0.027
0.002000,0.028
0.002000,0.029
0.002000,0.030
0.002000,0.031
0.002000,0.032
2楼2015-11-14 17:23:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zjwjiayou 的主题更新
信息提示
请填处理意见