24小时热门版块排行榜    

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

manariel

银虫 (小有名气)

[求助] udf实现出口值赋给另一管入口

DEFINE_PROFILE(Jz34_k,thread,i)
{
Thread *thread_out;         
face_t face;
int ID_out=347;    //对管1出口id赋值
Domain *domain;

domain=Get_Domain(1);  
thread_out=Lookup_Thread(domain,ID_out);//找到管1出口的thread
                                      
begin_f_loop(face,thread)
{
   begin_f_loop(face,thread_out)
   {
    F_PROFILE(face,thread,i) =F_K(face, thread_out);
   }
   end_f_loop(face,thread_out)
}




程序最后的循环嵌套中,内部的循环是否可以去掉,直接写成:

begin_f_loop(face,thread)
{
F_PROFILE(face,thread,i) =F_K(face, thread_out);
}
end_f_loop(face,thread)
能否实现目的?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

47425804

木虫 (正式写手)


★ ★
xiegangmai(金币+2): 鼓励讨论交流! 2012-03-11 10:24:06
除了楼上两位说的问题外,我觉得还有点问题,供参考。
face变量同时用在了出口和入口,如果实际上出口和入口的网格情况完全一致,那还是可以的。
但是,如果出口网格的编号方向和入口网格的编号方向刚好是相反的,那就有问题了。比方说出口编号为1的face本来应该对应入口编号为10的face,可是楼主这样的写法,出口的1号face还是指向了入口的1号face,就刚好头脚颠倒了。
又或者,入口有10个face,出口却只有9个face,那这样必然就少了一个对不上,计算要报错。
楼主并没有给出具体的网格情况,所以我只是猜测,可能以上问题其实都不是问题。
最稳妥的方法是,采用UDM的方法将出口face和入口face手动对应起来,当然程序的实现就要复杂很多了。
4楼2012-03-10 22:18:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

kylafree

至尊木虫 (知名作家)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai(金币+1): 谢谢参与! 2012-03-10 20:16:42
你上面那个写法是错误的,连编译都通不过,你没试着编译一下吗?
2楼2012-03-10 14:08:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jesseliuxl

金虫 (小有名气)


xiegangmai(金币+1): 谢谢参与! 2012-03-10 20:16:48
那个begin_f_loop肯定多一个嘛
生命不息折腾不止
3楼2012-03-10 14:16:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

manariel

银虫 (小有名气)

引用回帖:
: Originally posted by 47425804 at 2012-03-10 22:18:47:
除了楼上两位说的问题外,我觉得还有点问题,供参考。
face变量同时用在了出口和入口,如果实际上出口和入口的网格情况完全一致,那还是可以的。
但是,如果出口网格的编号方向和入口网格的编号方向刚好是相反的 ...

这是圆管内的流动模拟,我画网格时将上下面链接了,画完面网格后,然后用cooper方法画的体网格
5楼2012-03-12 09:05:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见