刚买了一台服务器,是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原理一样吗? |