24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2204  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

leixiaobo713

银虫 (正式写手)

[求助] fluent中UDF编译的问题!

本人现在做fluent模拟的问题,需要用UDF对热源进行编译。其中热源是随时间变化的,当时间t=0时,热源为一个关于温度的函数,当t不等于0时,热源为0(也就是材料仅有一个初始热源)。下面为所编程序,但是老是出错,请高手指教,感激不尽!
#include "udf.h"
DEFINE_SOURCE(source_terms,c,t,dS,eqn)
{
real A=0.01;
real B=0.02;
real C=0.001;
real D=0.001;
real T=C_T(c,t);
real t=RP_Get_Real("flow-time" );
real source;
if(t=0)
  source=A*T+B*pow(T,2)+C*pow(T,3)+D*pow(T,4);
else
  source=0;
dS[eqn]=0;
return source;
}
结果interpreted时出现下面提示:
t definition shadows previous definition
Error: C:\Documents and Settings\Administrator\\327\300\303\346\Source terms.c: line 14: invalid expression type for if: float.
不知如何解决啊,里面既有时间t, 也有real T=C_T(c,t);

[ Last edited by leixiaobo713 on 2013-7-14 at 23:57 ]
回复此楼

» 收录本帖的淘帖专辑推荐

Fluent UDF

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

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

天道酬勤!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pointh

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
leixiaobo713: 金币+10, ★★★★★最佳答案 2013-07-15 09:03:30
xiegangmai: 金币+2, 谢谢参与! 2013-07-24 20:58:09
有两个问题:
1.你想用时间变量t,但这个t在宏DEFINE_SOURCE里面已经定义了;
2.“if (t=0)”这种写法不太好,因为计算机里面的数和我们想的不太一样,我们认为是0,但计算机里面它可能是0.00000000001这种,因此你判断等于时一定要注意一下。像这种你最好写成“if (t<1e-10)”之类的。
2楼2013-07-15 09:01:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 leixiaobo713 的主题更新
信息提示
请填处理意见