24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 2818  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

5超7

至尊木虫 (著名写手)

菜鸟


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
5楼: Originally posted by Iwinok at 2013-01-16 13:51:20
u是温度相关的一个系数

既然这样的话,u应该放到loop里面
我要奋斗到底
6楼2013-01-16 14:09:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

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的回帖

Iwinok

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 5超7 at 2013-01-16 11:04:40
u是什么东西?

u是温度相关的一个系数
5楼2013-01-16 13:51:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Iwinok

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by 5超7 at 2013-01-16 14:09:52
既然这样的话,u应该放到loop里面...

是不是热流密度只能用解释型的,能用编译的吗?
7楼2013-01-17 16:37:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

5超7

至尊木虫 (著名写手)

菜鸟


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
7楼: Originally posted by Iwinok at 2013-01-17 16:37:13
是不是热流密度只能用解释型的,能用编译的吗?...

你试试不就知道了吗?
我要奋斗到底
8楼2013-01-17 17:00:37
已阅   回复此楼   关注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的回帖

Iwinok

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by 5超7 at 2013-01-17 17:00:37
你试试不就知道了吗?...

能帮我看看吗
10楼2013-01-18 15:11:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Iwinok 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见