24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2330  |  回复: 4

rainbot

银虫 (小有名气)

[交流] 【求助】linux版fluent使用udf并行问题请教已有2人参与

刚买了一台服务器,是8路4核的配置,系统为linux ,fluent6.3.26。调试的时候,将原来在windows系统下的算例拿过来测试,结果发现需要调用udf的算例无法运行。本人对linux了解较少,fluent也是刚刚起步,请大家多多指教。
体操作步骤如下:
1. 将 windows下做好的cas和dat文件,以及udf文件 上传到服务器。
2.在 shell中输入 "fluent 3d -t20"   启动fluent图形界面。
3. read—— case &data, 将文件读入。这时报错 “ error:chip-exex: function "liq_gas_source" not found." 这个可能是由于从windows考过来的文件,里面编译udf文件的路径不一样所致。
4. 我在define----(user-defined)———functions-------(interpreted)中重新指定udf位置,然后interpret。这时就显示    cpp -I"/public/fluent.inc/fluent6.3.26/src  

    error:/root/Documents/udfcase/mass_evaporator.c: line 2: syntax error   
5.这个时候我在开始迭代,也可以算,但是结果相当于没有加udf。

6.我的udf也很简单,内容如下
#include "udf.h"

DEFINE_MASS_TRANSFER(liq_gas_source,cell,thread,from_index,
from_species_index, to_index, to_species_index)
{
   real m_lg;
   real T_SAT = 343.15;
   Thread *liq = THREAD_SUB_THREAD(thread, from_index);
   Thread *gas = THREAD_SUB_THREAD(thread, to_index);

   m_lg = 0.;
   if (C_T(cell, liq) >= T_SAT)
     {
       m_lg = 0.1*C_VOF(cell,liq)*C_R(cell,liq)*
               fabs(C_T(cell,liq)-T_SAT)/T_SAT;
     }
   if ((m_lg == 0. ) && (C_T(cell, gas) <= T_SAT))
     {
       m_lg = -0.1*C_VOF(cell,gas)*C_R(cell,gas)*
         fabs(T_SAT-C_T(cell,gas))/T_SAT;
     }
if(C_T(cell, liq)>T_SAT){
/* printf("\n m_dot_v=%g\n",m_dot_v);
  printf("\n m_dot_v=%g\n",C_T(cell, liq)-T_SAT);*/
}
   return (m_lg);
}


请问, 如何才能在是udf能正常并行?。另外这种多路服务器和多节点cluster原理一样吗?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tacaro

至尊木虫 (知名作家)

小木虫大能猫骑士勋章

★ ★
adu886886(金币+2):辛苦了 2010-07-02 17:57:26
1 并行udf和串行udf是不同的,udf帮助里有一章就是介绍这个的,你可以借鉴一下

2. Linux下换行符那个位置的unicode码和 windows不一样,有时需要转换才能在linux环境下解释或者编译

ps:c环境也是必不可少的
2楼2010-07-02 17:43:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rainbot

银虫 (小有名气)


zzuwangshilei(金币+1):积极参与 2010-07-02 22:00:49
我对linux了解较少, 看你的回复我理解就是:
1.多路并行是属于串行
2.就是我的udf中, 回车符可能有问题。
3.你觉得我的系统可能没有装c环境。
引用回帖:
Originally posted by tacaro at 2010-07-02 17:43:11:
1 并行udf和串行udf是不同的,udf帮助里有一章就是介绍这个的,你可以借鉴一下

2. Linux下换行符那个位置的unicode码和 windows不一样,有时需要转换才能在linux环境下解释或者编译

ps:c环境也是必不可少的

3楼2010-07-02 17:54:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tacaro

至尊木虫 (知名作家)

小木虫大能猫骑士勋章

rainbot(金币+5):虽然问题没有解决,不过还是要谢谢你,呵呵 2010-07-09 17:10:57
引用回帖:
Originally posted by rainbot at 2010-07-02 17:54:39:
我对linux了解较少, 看你的回复我理解就是:
1.多路并行是属于串行
2.就是我的udf中, 回车符可能有问题。
3.你觉得我的系统可能没有装c环境。




我理解你理解中我的理解是对的
4楼2010-07-02 19:49:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chengxi0_0

金虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
请问楼主,问题解决了吗,我遇到和你一样的问题,请问你是怎么解决的
5楼2016-11-24 15:17:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 rainbot 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见