24小时热门版块排行榜    

查看: 3467  |  回复: 1

longma135

金虫 (小有名气)

[求助] 请教下begin_c_loop和begin_c_loop_all的区别 已有1人参与

搜了一些解释,还是没弄明白,求解答
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

奔跑鱼

新虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
longma135: 金币+5, ★★★★★最佳答案 2014-02-27 08:50:47
特地去查了一下,找到如下解释:
1. begin, end_c_loop macro is used for looping over all the cells in particular thread for serial processing.
2. For parallel processing, the cells inside a partition can be categorized as interior and exterior cells.
3. The macros begin, end_c_loop_int; begin, end_c_loop_ext and begin, end_c_loop_all are used for looping over interior, exterior and all the cells (in a partition) respectively.
4. In parallel simulations, both begin, end_c_loop and begin, end_c_loop_all macros will do the same job.
5. For faces the looping macro in parallel are begin, end_f_loop_int; begin, end_f_loop_ext and begin, end_f_loop for looping over interior, boundary and all faces respectively. For all practical purpose, the user need not separate the interior and boundary faces of a partition. Hence, begin, end_f_loop_int and begin, end_f_loop_ext macros are rarely used.

Please refer to section 10.5.5 of Fluent 6.2 User's guide for more information.
http://www.fluentusers.com/fluent/doc/ori/html/udf/node257.htm
再加上百度知道这个回答(http://zhidao.baidu.com/link?url ... VQkNAruWFO9xV7J32BK
把这个宏展开其实就清楚了
其实串行时,两者是相同的;并行时,host 节点两者相同,node 节点两者不一样,可能是
#if !RP_NODE
# define begin_c_loop_all begin_c_loop
# define end_c_loop_all end_c_loop
#else
# define begin_c_loop(c,t) begin_generic_loop_1(c,t,THREAD_N_ELEMENTS_INT(t)+THREAD_N_ELEMENTS_LAYER(t,LAYER_PRIMARY)){
# define end_c_loop }end_generic_loop_1
# define begin_c_loop_all(c,t) begin_generic_loop_1(c,t,C_THREAD_N_ELEMENTS_ALL(t)){
# define end_c_loop_all }end_generic_loop_1
#endif /* RP_NODE */
应该就明白了
2楼2014-02-26 22:52:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 longma135 的主题更新
信息提示
请填处理意见