前面介紹了獲取節(jié)點(diǎn)數(shù)據(jù)的宏。本文講解一些關(guān)于面數(shù)據(jù)獲取的宏。 這些面相關(guān)宏定義在頭文件metric.h及mem.h 中,并且所有的宏均以F_ 作為前綴。 注意:面數(shù)據(jù)獲取宏只能用于壓力基求解器,并且一些與模型相關(guān)的宏,只在當(dāng)模型被開啟后才有效。
Fluent的數(shù)據(jù)以分層方式保存,如下圖所示。最頂級為Domain,其下為Cell,再下為Face,最底層數(shù)據(jù)為Node。在訪問過程中,也是從上往下逐層訪問,采用循環(huán)遍歷的方式。 
F_CENTROID宏用于網(wǎng)格面心坐標(biāo)。 宏調(diào)用形式: F_CENTROID( x , f , t ) 宏參數(shù): real x[ND_ND],face_t f,Thread *t 參數(shù)值獲取: 通過x數(shù)組獲得
此宏通過參數(shù)返回值,典型的傳址調(diào)用。一個簡單的示例: { /*定義數(shù)組接收坐標(biāo)參數(shù)*/
real x[ND_ND];
real y;
face_t f;
begin_f_loop(f,t)
{
F_CENTROID(x,f,t);
y = x[1];
...
}
end_f_loop(f,t)
}
F_AREA宏用于獲取網(wǎng)格面的法向向量。在一些求通過某些面的物理量分量時非常有用。在ANSYS Fluent中,邊界面的法向通常指向計(jì)算域的外部。對于內(nèi)部面的法向方向,通常利用節(jié)點(diǎn)排序采用右手定則進(jìn)行確定。 宏調(diào)用形式: F_AREA(A , f , t ) 宏參數(shù): real A[ND_ND],face_t f,Thread *t 參數(shù)值獲取: 通過A數(shù)組獲得
一個簡單的片段: {
real NV_VEC(A); /*定義向量A*/
F_AREA(A, f, t);
}
注意:F_AREA宏通過傳址調(diào)用返回值,參數(shù)A可以是數(shù)組A[ND_ND],也可以是向量。如果定義為向量,后面可以很方便的利用向量運(yùn)算(點(diǎn)積和叉積等)。 面參數(shù)訪問宏的一個主要用途在于訪問邊界面信息。如獲取邊界速度、壓力、溫度等。 如下表所示。 宏定義 | 參數(shù)類型 | 返回值 |
---|
F_U(f,t) | face_t f,Thread *t | 返回u方向速度 | F_V(f,t) | face_t f,Thread *t | 返回v方向速度 | F_W(f,t) | face_t f,Thread *t | 返回w方向速度 | F_T(f,t) | face_t f,Thread *t | 返回面上的溫度 | F_H(f,t) | face_t f,Thread *t | 返回面上的焓 | F_K(f,t) | face_t f,Thread *t | 返回面上的湍動能 | F_D(f,t) | face_t f,Thread *t | 返回面上湍動能耗散率 | F_YI(f,t,i) | face_t f,Thread *t,int i | 返回組分質(zhì)量分?jǐn)?shù) |
這些宏的返回值均為real型。采用返回值的形式獲取參數(shù)。如下代碼片段: real temperature;
temperature = F_T(f,t);
需要注意,這些宏只有在激活了相應(yīng)的模型后才有效。如獲取湍動能參數(shù)宏F_K(f,t),只有當(dāng)激活了湍流模型后才可以使用。 有一些宏既可以訪問邊界面上數(shù)據(jù),也可以訪問內(nèi)部面上的數(shù)據(jù)。比較常用的宏為F_P及F_FLUX。 宏定義 | 參數(shù)類型 | 返回值 |
---|
F_P(f,t) | face_t f Thread *t | 返回面上壓力值,real類型 | F_Flux(f,t) | face_t Thread *t | 返回通過面的質(zhì)量流量,real類型 |
與前面邊界面參數(shù)宏使用方法類似。
|