
發布
注冊
/
登錄udf編程的案例
『分享』【下載】一篇UDF編程介紹
udf programming.pdf
主要是FLUENT用的C的一般基本結構,UDF的基本宏介紹,最后是湍流UDF實例,把前面的宏串講一下。感覺最后對CFX,FLUENT,START-CD的UDF的比較不錯
udf programming.rar
fluent入門一般問題(六)
在利用UDF編寫程序時需注意哪些問題? (#157)
我一般用txt文件進行UDF編程,之后將文件改為.c文件
將程序導入到Fluent中利用編譯功能,具體操作
在fluent中的Define -> Use-Defined -> Compiled 打開之后,選擇source files下面的Add...,找到編寫好的.c文件打開,點擊Build,就會生成一個以liberary name命名的文件夾,編譯好的資料就放在這個文件夾里面,最后點擊load就會將編譯好的內容導入到Fluent中,這樣你在有UDF選項的下拉菜單中就會看到你編好的程序名稱。
利用UDF編程和C語言編程很相似,所以最好知道一些C語言編程的基礎,再掌握一些Fluent的UDF固有的一些命令,基本上一些簡單的程序就都沒問題了
59 在UDF中compiled型的執行方式和interpreted型的執行方式有什么不同? (#72)
采用與FLUENT 本身執行命令相同的方式構建的。采用一個稱為Makefile的腳本來引導c 編譯器構造一個當地目標編碼庫(目標編碼庫包含有將高級c 語言源代碼轉換為機器語言。)這個共享庫在運行時通過“動態加載”過程載入到FLUENT 中。目標庫特指那些使用的計算機體系結構,和運行的特殊FLUENT 版本。因此,FLUENT 版本升級,計算機操作系統改變以及在另一臺不同類型的計算機上運行時,這個庫必須進行重構。
編譯型UDF 通過用戶界面將原代碼進行編譯,分為兩個過程。這兩個過程是:訪問編譯UDF 面板,從源文件第一次構建共享庫的目標文件中;然后加載共享庫到FLUENT 中。
采用與FLUENT 本身執行命令相同的方式構建的。
展開 論文推薦 | 燃料泵柱塞油膜摩擦生熱CFD仿真分析
02
柱塞油膜摩擦生熱仿真
圖5為燃料泵柱塞油膜摩擦生熱仿真流程圖, 主要包括以下步驟: 1) 建立柱塞運動方程和油液黏溫關系, 并通過UDF編程將柱塞運動方程和黏溫關系導入仿真軟件; 2) 建立油膜幾何模型, 進行網格劃分及網格無關性檢驗; 3) 對不同油膜出口壓力、壁面溫度以及轉速條件進行油膜摩擦生熱引起的溫升仿真計算, 得到相應結果。
圖 5 摩擦生熱仿真分析方法流程圖
2.1 計算精度與網格無關性驗證
采用商用CFD軟件FLUENT中的Laminar模型、SIMPLE算法以及2階精度格式進行計算。其中, 連續性方程、動量方程和能量方程的標度殘差均小于10?3, 保證計算結果精度。網格劃分在考慮精度與計算成本情況下, 保證油膜厚度方向網格始終大于16層, 滿足y+<1。通過油膜2處位置的溫度變化量驗證網格無關性。加密網格和時間步的計算結果變化較小, 認為網格具有獨立性與收斂性, 即模型計算結果不受網格影響, 具有一定的可靠性。
2.2 柱塞油膜流動狀態與黏溫關系
柱塞運動速度對油液流動狀態有直接影響, 在仿真中需要選擇合適的流動狀態才能保證計算結果的準確性。因此, 還需對油膜流動狀態進行判斷。文中仿真模型主要關注油膜區域。通過雷諾數可以判斷油膜流動狀態, 即
(4)
式中: 為油液密度; 為動力黏度; v為流動速度; l為特征長度。
展開 ANSYS Fluent通用流體仿真核心技術應用與工程實例培訓班
培訓授課經驗9年,精通ICEM,Gambit,CFD-Fluent各系列版本的應用,精通Solidworks等3D作圖軟件(復雜幾何體導入及導出建模及網格軟件如fluent),并精通網格劃分、流固耦合流動及傳熱、輻射、燃燒、組分傳輸及反應、離散相的計算、多相流模型、旋轉機械、動網格 模型;精通UDF編程、后處理及數據處理(Origin等)。熟悉CFD-POST、Tecplot、Paraview等后處理軟件。
主持多項國家級科研項目和企業合作研發工程項目,擁有豐富的科研及工程技術經驗、資深的技術底蘊和專業背景。

9月24-26日 | ANSYS Fluent通用流體仿真核心技術應用與工程實例培訓班
培訓授課經驗9年,精通ICEM,Gambit,CFD-Fluent各系列版本的應用,精通Solidworks等3D作圖軟件(復雜幾何體導入及導出建模及網格軟件如fluent),并精通網格劃分、流固耦合流動及傳熱、輻射、燃燒、組分傳輸及反應、離散相的計算、多相流模型、旋轉機械、動網格 模型;精通UDF編程、后處理及數據處理(Origin等)。熟悉CFD-POST、Tecplot、Paraview等后處理軟件。
主持多項國家級科研項目和企業合作研發工程項目,擁有豐富的科研及工程技術經驗、資深的技術底蘊和專業背景。
【3月19-21日 線上】ANSYS Fluent通用流體仿真核心技術應用與工程實例培訓班
培訓授課經驗9年,精通ICEM,Gambit,CFD-Fluent各系列版本的應用,精通Solidworks等3D作圖軟件(復雜幾何體導入及導出建模及網格軟件如fluent),并精通網格劃分、流固耦合流動及傳熱、輻射、燃燒、組分傳輸及反應、離散相的計算、多相流模型、旋轉機械、動網格 模型;精通UDF編程、后處理及數據處理(Origin等)。熟悉CFD-POST、Tecplot、Paraview等后處理軟件。主持多項國家級科研項目和企業合作研發工程項目,擁有豐富的科研及工程技術經驗、資深的技術底蘊和專業背景。
高手拆招,如何使用 Fluent 軟件做好電子產品的散熱問題?
Fluent 可以計算相變換熱,但通常要與多相流或者UDF連用,屬于Fluent 仿真中相對高級的問題,難度也更大,通常在電子散熱問題中不會涉及。
電子器件發熱
Fluent 通過對固體計算區域添加能量源項的方式,來描述電子元器件的發熱情況,輸入的源項單位是W/m3。
電子元器件發熱
當然,對于不同的問題,各類電子元器件的發熱功率是不一樣的,大部分情況我們按照常數進行分析;但有些發熱功率是時間的函數,有些則是空間的函數,還有一些是其他變量(如溫度、濕度等)的函數。
為此,Fluent 可以通過分布文件(Profile)或UDF(用戶自定義函數)的方式解決上述問題,原則上可以輸入任意已知類型的發熱功率。
某型汽車新能源電池單個電芯發熱功率隨電芯溫度變化情況
單個電芯發熱功率隨電芯溫度變化UDF編程代碼(節選)
壁面邊界條件
固體壁面在電子散熱問題中往往扮演著重要的角色,因此,絕大多數的電子期間散熱問題都必須要處理固體壁面(wall)問題。
Fluent 中提供三種不同的壁面處理方式,能夠根據問題的不同來進行有針對性的仿真簡化,從而達到提高工作效率的目的。
l 方法一:對固體區域劃分網格
在固體域求解能量方程,需要對網格區域劃分網格。這是最精確方法,流體與固體交界處會使用耦合熱邊界條件進行計算,只需要工程師賦予正確的材料屬性,其他全部由Fluent自行計算得到。
不足:固體區域通常很薄,在其中劃分體網格會極大的增加網格的總數。
展開 如何使用 Fluent 軟件做好電子產品的散熱問題?
Fluent 可以計算相變換熱,但通常要與多相流或者UDF連用,屬于Fluent 仿真中相對高級的問題,難度也更大,通常在電子散熱問題中不會涉及。
電子器件發熱
Fluent 通過對固體計算區域添加能量源項的方式,來描述電子元器件的發熱情況,輸入的源項單位是W/m3。
▲ 電子元器件發熱
當然,對于不同的問題,各類電子元器件的發熱功率是不一樣的,大部分情況我們按照常數進行分析;但有些發熱功率是時間的函數,有些則是空間的函數,還有一些是其他變量(如溫度、濕度等)的函數。
為此,Fluent 可以通過分布文件(Profile)或UDF(用戶自定義函數)的方式解決上述問題,原則上可以輸入任意已知類型的發熱功率。
▲ 某型汽車新能源電池單個電芯發熱功率隨電芯溫度變化情況
▲ 單個電芯發熱功率隨電芯溫度變化UDF編程代碼(節選)
壁面邊界條件
固體壁面在電子散熱問題中往往扮演著重要的角色,因此,絕大多數的電子期間散熱問題都必須要處理固體壁面(wall)問題
Fluent 中提供三種不同的壁面處理方式,能夠根據問題的不同來進行有針對性的仿真簡化,從而達到提高工作效率的目的。
方法一:對固體區域劃分網格
在固體域求解能量方程,需要對網格區域劃分網格。這是最精確方法,流體與固體交界處會使用耦合熱邊界條件進行計算,只需要工程師賦予正確的材料屬性,其他全部由Fluent自行計算得到。
■ 不足:
固體區域通常很薄,在其中劃分體網格會極大的增加網格的總數。
展開 Fluent動網格的經典21個問題
可以用邊界型函數或者UDF 定義邊界的運動方式。FLUENT 要求將運動的描述定義在網格面或網格區域上。如果流場中包含運動與不運動兩種區域,則需要將它們組合在初始網格中以對它們進行識別。那些由于周圍區域運動而發生變形的區域必須被組合到各自的初始網格區域中。不同區域之間的網格不必是正則的,可以在模型設置中用FLUENT軟件提供的非正則或者滑動界面功能將各區域連接起來。
4. 在Fluent中使用動網格,為什么要具備一定的C語言編程基礎?
因為一般來講,在Fluent中使用動網格,基本上都要使用到UDF,所以你最好具備一定的C語言編程基礎。
5. 在Fluent中,動網格計算中網格的動態變化過程可以用哪三種模型進行計算?
彈簧近似光滑模型(spring-based smoothing)、動態分層模型(dynamiclayering)和局部重劃模型(local remeshing)。
6. 在Fluent中,彈簧近似光滑模型的使用范圍是什么?
原則上彈簧光順模型可以用于任何一種網格體系,但是在非四面體網格區域(二維非三角形),最好在滿足下列條件時使用彈簧光順方法:
(1)移動為單方向。
(2)移動方向垂直于邊界。
如果兩個條件不滿足,可能使網格畸變率增大。另外,在系統缺省設置中,只有四面體網格(三維)和三角形網格(二維)可以使用彈簧光順法,如果想在其他網格類型中激活該模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活該選項即可。
7. 在Fluent中,動態分層模型的應用有什么限制?
(1)與運動邊界相鄰的網格必須為楔形或者六面體(二維四邊形)網格。
(2)在滑動網格交界面以外的區域,網格必須被單面網格區域包圍。
展開 Fluent動網格知識匯總 附FLUENT中文教程下載
//
4)用戶定義的運動方式
對于同時存在運動和變形的區域,只能使用UDF 來定義其運動方式,定義步驟如下:
(1)在Zone Names(區域名稱)中選擇需要定義的區域名稱,并在Type(類型)下選擇User-Defined(用戶定義)。
(2)在Motion Attributes(運動屬性)標簽下,然后在Mesh Motion UDF(網格運動UDF)下選擇相應的UDF 函數。
(3)點擊Create(創建)按鈕完成設置。
關于UDF 函數的編制方法請參見與UDF 相關的章節。
補充資料:
FLUENT三種動邊界控制實現方法
1) void DEFINE_CG_MOTION (UDFname,Dynamic_Thread * dt,real vel[ ], real omega[ ], real time,real dtime)。
此函數接口用于控制剛體的運動,用戶把剛體質心運動速度和角速度分別賦值給vel和omega, FLUENT根據它們的值來自動計算出邊界下一步的位置,從而實現動邊界的控制; 剛體質心的位置可以在函數接口界面對話框中定義。Dynamic Zones中的dwall就是要控制的動邊界,Motion UDF/Profile中的stc1sta010a0ph0就是UDFname,從中可看出它已被制定成用于控制dwall,理論上 FLUEN T可以通過這種方式實現無窮多個動邊界的控制; C.G.Location用于設定初始位置的質心,C.G.Orientation用于設定剛體的初始角度。
展開 關于UDF介紹(一)
另一方面,編譯式UDF沒有任何C編程語言或其它注意的求解器數據結構的限制。
簡單算例
1、計算模型如下圖:
入口速度隨高度變化
2、UDF文件編寫如下:
#include "udf.h"
DEFINE_PROFILE(inlet_parab, thread, equation)
{
real x[3],y;
face_t f;
float u;
floatrho=1.0;
floatmu=0.1;
floatdp=0.3;
floath=2.0;
begin_f_loop(f,thread)
{
F_CENTROID(x, f, thread);
y =x[1];
u=dp*0.5/rho/mu*y*(y-h);
F_PROFILE(f, thread, equation) = u;
}
end_f_loop(f, thread)
}
3、導入并編譯UDF
4、計算結果
C語言基礎
數據類型
FLUENT的UDF解釋程序支持下面的C數據類型:
Int:整型
Long:長整型
Real:實數
Float:浮點型
Double:雙精度
Char:字符型
注意:UDF解釋函數在單精度算法中定義real類型為float型,在雙精度算法宏定義real為double型。因為解釋函數自動作如此分配,所以使用在UDF中聲明所有的float和double數據變量時使用real數據類型是很好的編程習慣。
常數
常數是表達式中所使用的絕對值,在C程序中用語句#define來定義。最簡單的常數是十進制整數(如:0,1,2)包含小數點或者包含字母e的十進制數被看成浮點常數。按慣例,常數的聲明一般都使用大寫字母。
展開 