找回密码
 注册
查看: 4897|回复: 5

udf并行问题

[复制链接]
发表于 2011-6-18 14:22:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我最近做了动网格模型,算起来超级慢,一天一夜才算了0.02秒,郁闷中啊,想单机多核并行,但udf无法加载,怎么设置都不行,搜索时好像说udf要添加并行语句,可我不懂这个啊,我把udf附上,恳请各位大虾帮助看应该怎么修改啊,udf1(运动边界)#include <stdio.h>
#include "udf.h"
DEFINE_CG_MOTION(moving_wall,dt,cg_vel,cg_omega,time,dtime)
{
    if(time<=79.3776)
     cg_omega[1]=0.11;
else
  cg_omega[1]=0.0;
}


udf2(速度进口)

#include <stdio.h>

#include "udf.h"

DEFINE_PROFILE(inlet_velocity,thread,position)

{

face_t f;

begin_f_loop(f,thread)

real flow_time=RP_Get_Real("flow-time");

    if(flow_time<=30)

             F_PROFILE(f,thread,position)=2.8;

    else

       F_PROFILE(f,thread,position)=3.846;

end_f_loop(f,thread)

}  
期待中啊!

[ 本帖最后由 qiu3218 于 2011-6-20 21:03 编辑 ]
发表于 2011-6-18 15:36:13 | 显示全部楼层
1.并行计算的时候,build时要写绝对路径,不能只写一个相对路径。
2.第一个好像不用改,第二个要改成并行计算版本,UDF帮助里面好像有类似的,你可以看看。
 楼主| 发表于 2011-6-20 18:26:50 | 显示全部楼层

udf

谢谢了, 我正在看呢,我已经写入了绝对路径可还是加载不了啊!郁闷!
发表于 2011-6-21 09:18:06 | 显示全部楼层
原帖由 2005011lcj 于 2011-6-18 15:36 发表
1.并行计算的时候,build时要写绝对路径,不能只写一个相对路径。
2.第一个好像不用改,第二个要改成并行计算版本,UDF帮助里面好像有类似的,你可以看看。



第二个要写成并行版本?只是针对这个案例来说的吧
难道说,一般情况下,单机串行计算(自己发明的名字)和单机多核时的并行计算UDF都不一样??
期待高手正本清源!
发表于 2011-6-21 09:44:23 | 显示全部楼层
linux下按如下操作即可:
单机编译UDF后,会生成一个目录libudf,进入该目录,再进入目录lnamd64,你会找到一个目录3d,把这个目录拷贝两份分别叫3d_host,3d_node就可以了,并行就可以使用了。
windows下我没有试过,应该方法类似,但是路径名不太一样。

另外一个笨办法就是单机读入以后,unload UDF,保存,然后并行启动fluent,读入case文件,重新进行编译。这样做一次以后,你就会发现并行和单机的目录生成不一样,以后照猫画虎,单机目录改成并行目录即可。
 楼主| 发表于 2011-6-21 12:20:57 | 显示全部楼层

udf并行

万分感谢啊!按照楼上的步骤我设置了一遍,没出问题,现在是可以计算了,就是说,我的udf没做修改也加载上了,那么是不是所有串行udf都可以这样加载呢,并行语句也不需要了啊?只是计算过程中希望别出错啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表