Fluent UDF【13】:循环操作宏
2017-06-11 by:CAE仿真在线 来源:互联网
UDF使用过程中,经常要通过循环遍历的方式对数据进行操作,如设置边界条件时,需要给每一个边界网格面赋值,此时需要通过逐层循环的方式访问每一个边界网格面。Fluent UDF中提供了众多循环来实现此功能。这些宏包括:
-
区域中单元循环thread_loop_c
-
区域中网格面循环thread_loop_f
-
单元中单元循环begin...end_c_loop
-
面中面循环begin...end_f_loop
-
单元中面循环c_face_loop
-
单元中的节点循环c_node_loop
-
单元面中的节点循环f_node_loop
利用thread_loop_c在指定domain中遍历所有的网格单元(cell)。使用方式非常简单,如下:
Domain *domain; Thread *c_thread; thread_loop_c(c_thread,domain) { /*对单元进行操作*/ ... }利用宏thread_loop_f来遍历domain中的所有网格面(face)。与遍历网格单元类似的使用。如:
Thread *f_thread; Domain *domain; thread_loop_f(f_thread,domain) { /*对网格面进行操作*/ }使用宏begin_c_loop及end_c_loop对所给定的网格单元集合中的所有单元进行遍历。
使用方式:
cell_t c; Thread *c_thread; begin_c_loop(c, c_thread) { } end_c_loop(c, c_thread)例如下面程序计算c_thread中的所有单元的温度和:
begin_c_loop(c, c_thread) { temp += C_T(c, c_thread); } end_c_loop(c, c_thread)利用宏begin_f_loop与end_f_loop来遍历给定face集合中的所有网格面。
使用方式:
face_t f; Thread *f_thread; begin_f_loop(f, f_thread) { } end_f_loop(f, f_thread)以下例程计算给定网格几何f_thread上的所有网格面上温度总和。
begin_f_loop(f, f_thread) { temp += F_T(f, f_thread); } end_f_loop(f, f_thread)利用宏c_face_loop来实现遍历网格单元上的所有网格面。如:
cell_t c; Thread *t; face_t f; Thread *tf;int n; c_face_loop(c, t, n) { f = C_FACE(c,t,n); tf = C_FACE_THREAD(c,t,n); }利用宏c_node_loop来实现遍历网格单元中的所有网格节点。
cell_t c; Thread *t; int n; Node *node; c_node_loop(c,t,n) { node = C_NODE(c,t,n); }利用宏f_node_loop来实现此目的。
face_t f; Thread *t; int n; Node *node; f_node_loop(f,t,n) { node = F_NODE(f,t,n); }
相关标签搜索:Fluent UDF【13】:循环操作宏 Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析