|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
问题是这样的,一个圆管.里面是金属粉末,氢气进入后与金属发生化合发应,生成金属氢化物,放热.
老板现在让我把问题简化成,圆管里面是固体,内热源,但是热源放热是沿着x方向逐层放热的,每层放热的时间一定,即x=0的层面最先开始放热,放热时间为0-t,x=a的层面,放热的时间为b-b+t.
编写了几个udf,都不成功,算出来的温度场都是一样的,不存在温度梯度,原因肯定在udf这里:
#include"udf.h"
DEFINE_SOURCE(heat_source,f,t,dS,eqn)
{
real source;
real y;
real time;
real x[ND_ND];
face_t f;
begin_f_loop(f,t)
{
F_CENTROID(x,f,thread);
y=x[0];
time=RP_Get_Real("flow-time");
if(y <=time<=y+2)
{
source=5e8;
dS[eqn]=5e8;
}
else
source=dS[eqn]=0;
return source;
}
我的意思是,x=0的层面,放热的时间为从0秒开始,到第2秒结束,其他层面因为x坐标不同,放热滞后.
理论上预计的温度场应该是左边温度比较高,右边比较低,随着时间的推移,温度又逐渐达到一致.
但是我每次算出来的,温度从左到右都是一致.请教:问题在哪儿?
|
|