24小时热门版块排行榜    

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

Iwinok

新虫 (初入文坛)

[交流] Fluent中UDF自定义了一个热流密度 已有4人参与

想在一个空壁上加载正弦变化的热流密度,用UDF编了加载之后,一初始化就报错。错误提示:
Fluent received fatal signal (Access_VIOLATION)
我写的程序:
#include "udf.h"
#define pi 3.1415926
#define F1 20000.0  
DEFINE_PROFILE(heat_flux,t,i)
{
  face_t f;
  real time=CURRENT_TIME;
  real temp=F_T(f,t);
  real u=0.2497+0.001471*temp-2.097e-6*pow(temp,2.0);
  begin_f_loop(f,t)
{
  F_PROFILE(f,t,i)=(F1+F1*sin(2*pi*F1*time))*u;
}
end_f_loop(f,t)
}
请大家帮忙看看,是我的程序有问题吗?
回复此楼

» 猜你喜欢

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

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

Iwinok

新虫 (初入文坛)

修改了下,现在能运行了,但是怎么只加载了一个点。
UDF如下:
#include "udf.h"
#define e 2.718281828459
#define pi 3.1415926
#define F1 15000.
#define F2 20000.
#define r1 0.0015
#define r2 0.001
DEFINE_PROFILE(heat_flux,t,i)
{
  face_t f;
  real time=CURRENT_TIME;
  real u;
  real F3;
  real temp=F_T(f,t);
if(temp<400.)
{
F_PROFILE(f,t,i)=1.0e7;
}
else
begin_f_loop(f,t)
{
  u=0.2497+0.001471*temp-2.097e-6*pow(temp,2.0);
  F3=F1+F2*sin(2*pi*F2*time);
  if(F3<0.)
  {
    F3=0.;
  }
  F_PROFILE(f,t,i)=4*pi*F2*F3*u*(pow(r1,3)-pow(r2,3))/(3*pow(r1,2)*(pow(r1,2)-pow(r2,2)));
}
end_f_loop(f,t)
}

运行后就一处有热流密度

9楼2013-01-18 14:56:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

5超7

至尊木虫 (著名写手)

菜鸟


小木虫: 金币+0.5, 给个红包,谢谢回帖
u是什么东西?

[ Last edited by 5超7 on 2013-1-16 at 11:07 ]
我要奋斗到底
2楼2013-01-16 11:04:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meercy

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
我看到两个问题,不知道有没有用:
1."2.097e"中e是什么?
2.我觉得real temp=F_T(f,t);应该放在loop里面
3楼2013-01-16 12:50:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Iwinok

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by meercy at 2013-01-16 12:50:44
我看到两个问题,不知道有没有用:
1."2.097e"中e是什么?
2.我觉得real temp=F_T(f,t);应该放在loop里面

谢谢啊,这个确实是要方在loop里。那time也是要放在里面吧
4楼2013-01-16 13:50:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见