24小时热门版块排行榜    

查看: 1955  |  回复: 20

刘炎举8

铁虫 (小有名气)

[求助] UDF编写 已有1人参与

我想写一个室外温度参数随时间变化的函数udf,读入到fluent中后,显示undeclared variable,不知道怎么改,求教。函数是T=-sin[3.14(t+2)/12]*8+31(其中t从0~24)


#include "udf.h"
DEFINE_PROFILE(inlet_z_temp,thread,position)
{
real x[ND_ND];
real z;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
z=x[2];
F_PROFILE(f,thread,position)=-sin[3.14(t+2)/12]*8+31;
}
end_f_loop(f,thread)
}
回复此楼

» 猜你喜欢

力量越大,责任越大
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stanstanne

银虫 (正式写手)

看到一个错误,没有加*号:sin[3.14(t+2)/12]*8 -> sin[3.14*(t+2)/12]*8
我是一个粉刷匠
2楼2017-05-02 16:04:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

刘炎举8

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by stanstanne at 2017-05-02 16:04:09
看到一个错误,没有加*号:sin*8 -> sin*8

我设置了,还是不行啊,显示     line 14: invalid type for unary -: function returning double
是不是编写的有错啊,我对UDF就是小白
力量越大,责任越大
3楼2017-05-02 18:04:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

13298128738

新虫 (初入文坛)

z在这里没用吧,去掉real x[ND_ND]; z=x[2];  你把第四行代码改为 real t = CURRENT_TIME;
4楼2017-05-02 18:28:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

刘炎举8

铁虫 (小有名气)

引用回帖:
4楼: Originally posted by 13298128738 at 2017-05-02 18:28:18
z在这里没用吧,去掉real x; z=x;  你把第四行代码改为 real t = CURRENT_TIME;

我按照您的方法做了(也去掉了第二行的z,第九行的x),导入fluent显示subscripted expression is not an array or pointer: int(函数那一行),这是怎么回事,我这里没有下标啊?
力量越大,责任越大
5楼2017-05-02 18:43:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stanstanne

银虫 (正式写手)

4楼说的很有道理,去看这个帖子,里面有关于随时间变化的例子,很详细,看着改一下
http://muchong.com/bbs/viewthread.php?tid=7543273&authorid=4197453
我是一个粉刷匠
6楼2017-05-03 08:40:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

MoonLee777

新虫 (正式写手)

随时间变化你把时间取出来啊、取坐标不对

发自小木虫IOS客户端
7楼2017-05-03 09:32:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

simon022000

新虫 (小有名气)

你看一下我的贴的,我和你一样的,我的udf 可以正常运行

发自小木虫Android客户端
8楼2017-05-03 23:48:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wplwhl

铁杆木虫 (著名写手)

欧拉拉

不一样的烟火
9楼2017-05-03 23:58:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

刘炎举8

铁虫 (小有名气)

#include "udf.h"
DEFINE_PROFILE(inlet_temp,thread,position)
{
face_t f;
begin_f_loop(f,thread)
{
real t = CURRENT_TIME;
F_PROFILE(f,thread,position)=-sin*[3.14*(t+2)/12]*8+31;
}
end_f_loop(f,thread)
}
这样对吗?时间这样设置合适吗?时间是二十四小时变化的,就是1~24
力量越大,责任越大
10楼2017-05-04 17:12:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 刘炎举8 的主题更新
信息提示
请填处理意见