24小时热门版块排行榜    

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

ltpreason

新虫 (初入文坛)

[求助] udf 根据监测点的压力值设置入口的质量流量

初学udf,请大家帮忙看下哪有问题,或者如果这样思路不对,应该如何做,已被折磨n天,跪求大神指教。
#include "udf.h"
#include "mem.h"
#define m_standard 8000.
#define m_interval 500.
DEFINE_ADJUST(mass_inlet,d)
{
Thread *t1,*t2;
cell_t c;
face_t f;
real xc[ND_ND];
int i;
real p=0.;
thread_loop_c(t1,d)
{
/*坐标为(10,10)的点为监测点,循环找到一些和它接近的点,
把这些点的压力值赋给p,并认为最后一次赋的值即为监测点的值*/
begin_c_loop(c,t1)
{
C_CENTROID(xc,c,t1);
if(sqrt(ND_SUM(pow(xc[0]-10.,2.),
pow(xc[1]-10.,2.)))<0.001)
p=C_P(c,t1);
}
end_c_loop(c,t1)
}
/*根据监测点的压力值,来改变入口的质量流量*/
begin_f_loop(f,t2)
{
if(p<=350000.)
F_PROFILE(f,t2,i) = m_standard+m_interval;
else if(p>350000.&&p<380000.)
F_PROFILE(f,t2,i) = m_standard;
else
F_PROFILE(f,t2,i) = m_standard-m_interval;
}
end_f_loop(f,t2)
}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ltpreason

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by shuai_1314 at 2013-05-14 23:09:57
Thread *thread_name = Lookup_Thread(domain,zone_ID)

用这个命令,zone_ID就是你的各种边界和流动区域对应的那个编号,比如你的fluid编号是2,你的入口边界编号是5

Thread *t1 = Lookup_Thread(d,2);
Th ...

非常感谢您!
我加了这两句,可是调用时还是报错。
能再帮忙看看吗?先谢谢您了!
6楼2013-05-16 20:38:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

shuai_1314

捐助贵宾 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
ben_ladeng: 金币+1, 谢谢指点 2013-05-13 19:37:51
你的thread t1和t2没有给出明确的定义,根本不知道是指向哪个区域,看下帮助文档里的data access吧

[ 发自手机版 http://muchong.com/3g ]
率真随性的射手
2楼2013-05-13 07:57:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ltpreason

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by shuai_1314 at 2013-05-13 07:57:05
你的thread t1和t2没有给出明确的定义,根本不知道是指向哪个区域,看下帮助文档里的data access吧

谢谢大神,能再给些具体的修改意见吗?我今天自己看了下那的帮助,还是一头雾水。。
3楼2013-05-13 19:21:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shuai_1314

捐助贵宾 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
xiegangmai: 金币+2, 谢谢参与! 2013-05-15 11:22:00
ltpreason: 金币+5, 有帮助 2013-05-16 20:37:12
引用回帖:
3楼: Originally posted by ltpreason at 2013-05-13 19:21:11
谢谢大神,能再给些具体的修改意见吗?我今天自己看了下那的帮助,还是一头雾水。。...

Thread *thread_name = Lookup_Thread(domain,zone_ID)

用这个命令,zone_ID就是你的各种边界和流动区域对应的那个编号,比如你的fluid编号是2,你的入口边界编号是5

Thread *t1 = Lookup_Thread(d,2);
Thread *t2 = Lookup_Thread(d,5);

应该这样定义,多看看帮助文档搞清楚domain和thread
率真随性的射手
4楼2013-05-14 23:09:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见