Fluent UDF【12】:常用的數(shù)據(jù)宏
2017-06-11 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
除了前面提到的網(wǎng)格單元數(shù)據(jù)獲取宏、網(wǎng)格面數(shù)據(jù)獲取宏及節(jié)點數(shù)據(jù)獲取宏外,在數(shù)據(jù)獲取方面,還有幾個非常常用的宏。編寫UDF程序時,經(jīng)常與這些宏打交道。這些宏包括:
-
Loookup_Thread
-
THREAD_ID
-
Get_Domain
-
F_PROFILE
-
THREAD_SHADOW
Thread是UDF中一種非常重要的數(shù)據(jù)結(jié)構(gòu),有時常常需要獲取某個邊界的Thread進行其他操作,此時可以利用宏Lookup_Thread實現(xiàn)。
-
宏描述:Lookup_Thread(d,id)
-
宏參數(shù):Domain *d, int id
-
返回值:Thread *t
id值可以從邊界條件面板中獲取得到,如下圖所示。
獲取某個zone的ID之后,就可以對該區(qū)域進行操作了。下面的例程是獲取ID為1的邊界上各網(wǎng)格面中心節(jié)點坐標。
#include "udf.h" DEFINE_ADJUST(print_f_centroids, domain) { real FC[2]; face_t f; int ID = 1; Thread *thread = Lookup_Thread(domain, ID); begin_f_loop(f, thread) { F_CENTROID(FC,f,thread); printf("x= %f,y= %f", FC[0], FC[1]); } end_f_loop(f,thread) }獲取區(qū)域的ID可以使用宏THREAD_ID來實現(xiàn)。
-
宏描述:THREAD_ID(t)
-
宏參數(shù):Thread *t
-
返回值:返回相應(yīng)Thread的對應(yīng)ID值,int類型
調(diào)用形式:
int zone_id = THREAD_ID(t);獲取區(qū)域指針可以通過宏Get_Domain來實現(xiàn)。
當區(qū)域的指針無法通過宏參數(shù)傳遞進來時,可以使用宏Get_Domain來獲取指定id的區(qū)域的指針,利用DEFINE_ON_DEMAND宏中。
-
宏描述:Get_Domain(id)
-
宏參數(shù):int id
-
返回值:Domain *d
注意:對于單相流,id值為1;對于多相流,id值為大于1的整數(shù)。
多相流中的id值可以在Phase對話框中查看,如下圖所示。
下面是一個例程:
DEFINE_ON_DEMAND(my_udf) { Domain *mixture_domain; mixture_domain = Get_Domain(1); Domain *subdomain; subdomain = Get_Domain(2); ... }設(shè)置邊界值可以利用宏F_PROFILE來實現(xiàn)。
-
宏描述:F_PROFILE(f,t,i)
-
宏參數(shù):face_t f, Thread *t, int i
-
返回值:void,此宏沒有返回值
此宏后兩個參數(shù)通過Fluent傳入,第一個參數(shù)通過循環(huán)宏得到。如下例程:
#include "udf.h"DEFINE_PROFILE(pressure_profile,t,i) { real x[ND_ND]; real y; face_t f; begin_f_loop(f,t) { F_CENTROID(x,f,t); y = x[1]; F_PROFILE(f,t,i) = 1.1e5 - y*y; } end_f_loop(f,t) }當一個面存在影子面時,可以利用宏THREAD_SHADOW獲取該面的影子的Thread。
-
宏描述:THREAD_SHADOW(t)
-
宏參數(shù):Thread *t
-
返回值:Thread *t
當宏參數(shù)所對應(yīng)的面沒有影子面時,此宏返回NULL。
相關(guān)標簽搜索:Fluent UDF【12】:常用的數(shù)據(jù)宏 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析