24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1177  |  回复: 8

leixiaobo713

银虫 (正式写手)

[求助] UDF编译问题!

在fluent模拟过程中,需要对材料施加初始热源,下面是通过UDF编的初始热源的程序,请高手指正问题,虽然能搞编译成功,但是模拟结果与预期相差甚远,流体温度基本不变!请高手指教!
#include "udf.h"
DEFINE_SOURCE(source_terms,cell,thread,dS,eqn)
{
real t=RP_Get_Real("flow-time" );
real T=C_T(cell,thread);
real source;
if(t==0)
  source=15600520;
else
  source=0;
dS[eqn]=0;
return source;
}
回复此楼

» 猜你喜欢

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

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

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

hotsonliao

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiegangmai: 金币+2, 鼓励讨论交流! 2013-07-24 22:39:32
leixiaobo713: 金币+10, ★★★★★最佳答案 2013-08-13 20:07:46
我觉得你可以先理解下物理意义,虽然说是初始热源,但是按照你的程序,作用时间为0,这个物理意义是什么呢?你可以尝试把t==0,改成t<=一个时间,看看有没有变化;另外,你说的模拟结果是什么结果?如果是最终稳定时的结果,那么在边界条件一样时,热源有和热源没有都是一样的,因为最终必须和外界达到能量平衡
2楼2013-07-24 15:22:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leixiaobo713

银虫 (正式写手)

我也按照你说的那个做过  就是在时间小于等于1e-15s时,但是 我按照非稳态模拟,在1s后,沿流道流体温度基本没有变化,所以对这个程序的正确性产生质疑,不知道你对次的看法是?
天道酬勤!
3楼2013-08-13 20:10:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kylafree

至尊木虫 (知名作家)

初始化后,再patch一个温度行不?
4楼2013-08-13 20:28:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leixiaobo713

银虫 (正式写手)

引用回帖:
4楼: Originally posted by kylafree at 2013-08-13 20:28:01
初始化后,再patch一个温度行不?

patch一个温度?这个我以前还真没接触过,您能给具体说下不,谢谢你了!
天道酬勤!
5楼2013-08-14 09:06:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wudeshou

铁杆木虫 (正式写手)

#include "udf.h"
DEFINE_SOURCE(source_terms,cell,thread,dS,eqn)
{
real t=RP_Get_Real("flow-time" );
real T=C_T(cell,thread);
real source;
if(t<=0.1)//假设0.1为时间步长
   source=1.560052e7;//15600520;
else
   source=0;
dS[eqn]=0;
return source;
}
试试这样行不行?
无止境--环保--近零排放--多相流--晶体生长--数值计算
6楼2013-08-14 12:58:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leixiaobo713

银虫 (正式写手)

引用回帖:
6楼: Originally posted by wudeshou at 2013-08-14 12:58:14
#include "udf.h"
DEFINE_SOURCE(source_terms,cell,thread,dS,eqn)
{
real t=RP_Get_Real("flow-time" );
real T=C_T(cell,thread);
real source;
if(t<=0.1)//假设0.1为时间步 ...

恩  这样设或者加大热源  的确能得出明显的温度差  但是作为初始热源,采用这种方法  热源添加时间的长短对结果明显是有影响的  那么多长时间才算是合理的呢?
天道酬勤!
7楼2013-08-14 21:48:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wudeshou

铁杆木虫 (正式写手)

★ ★
xiegangmai: 金币+2, 鼓励讨论交流! 2013-08-17 09:53:46
引用回帖:
7楼: Originally posted by leixiaobo713 at 2013-08-14 21:48:11
恩  这样设或者加大热源  的确能得出明显的温度差  但是作为初始热源,采用这种方法  热源添加时间的长短对结果明显是有影响的  那么多长时间才算是合理的呢?...

我以前帮师弟弄得程序是,某一个区域是长时间加热源,不像你这个是瞬时的。
我认为if(t<=0.1)这里面的0.1你之前是1e-15,1e-15可能都小于电脑的机器误差了。我以前发现有时fluent计算的时候显示的时间是0.999999,这就导致了1e-15的选取是不合理的,可能一开始这个瞬时源项都没加入。
具体应该选择多少,我不知道,我只能告诉你一些我的个人经验,仅供参考
无止境--环保--近零排放--多相流--晶体生长--数值计算
8楼2013-08-15 15:29:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leixiaobo713

银虫 (正式写手)

引用回帖:
8楼: Originally posted by wudeshou at 2013-08-15 15:29:25
我以前帮师弟弄得程序是,某一个区域是长时间加热源,不像你这个是瞬时的。
我认为if(t<=0.1)这里面的0.1你之前是1e-15,1e-15可能都小于电脑的机器误差了。我以前发现有时fluent计算的时候显示的时间是0.9999 ...

多谢您的指点,多谢了!
天道酬勤!
9楼2013-08-15 17:12:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 leixiaobo713 的主题更新
信息提示
请填处理意见