FLUENT流體模擬UDF講解_第1頁
FLUENT流體模擬UDF講解_第2頁
FLUENT流體模擬UDF講解_第3頁
FLUENT流體模擬UDF講解_第4頁
FLUENT流體模擬UDF講解_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、計算流體力學(xué)軟件計算流體力學(xué)軟件Fluent培訓(xùn)培訓(xùn)UDF基礎(chǔ)基礎(chǔ)A Pera Global Company PERA China概要nFLUENT UDF簡介nFLUENT 數(shù)據(jù)結(jié)構(gòu)和宏n兩個例子nUDF 支持A Pera Global Company PERA China簡介n什么是UDF? UDF 是用戶自己用C語言寫的一個函數(shù),可以和FLUENT動態(tài)鏈接 標(biāo)準(zhǔn)C 函數(shù) 三角函數(shù),指數(shù),控制塊,Do循環(huán),文件讀入/輸出等 預(yù)定義宏 允許獲得流場變量,材料屬性,單元幾何信息及其他n為什么使用 UDFs? 標(biāo)準(zhǔn)的界面不能編程模擬所有需求: 定制邊界條件,源項,反應(yīng)速率,材料屬性等 定制物理模

2、型 用戶提供的模型方程 調(diào)整函數(shù) 執(zhí)行和需求函數(shù) 初始化A Pera Global Company PERA China可以使用UDF的位置User-Defined PropertiesUser-Defined BCsUser Defined INITIALIZESegregatedPBCSExit LoopRepeatCheck Convergence Update Properties Solve Turbulence Equation(s)Solve SpeciesSolve EnergyInitializeBegin LoopDBCSSolve Other Transport Equa

3、tions as requiredSolver?Solve Mass Continuity;Update VelocitySolve U-MomentumSolve V-MomentumSolve W-MomentumSolve Mass& MomentumSolve Mass,Momentum,Energy,SpeciesUser-defined ADJUSTSource termsSource termsSource termsSourcetermsA Pera Global Company PERA ChinaUDF 數(shù)據(jù)結(jié)構(gòu) (1)在UDF中,體域和面域通過Thread數(shù)據(jù)類型

4、獲得Thread 是 FLUENT 定義的數(shù)據(jù)類型為了在thread (zone)中獲得數(shù)據(jù),我們需要提供正確的指針,并使用循環(huán)宏獲得thread中的每個成員(cell or face)Fluid (cell thread or zone)Boundary (face thread or zone)DomainCellDomainCellsCell Threadface ThreadFacesA Pera Global Company PERA ChinaUDF 數(shù)據(jù)結(jié)構(gòu)(2)ncell_t 聲明了識別單元的整型數(shù)據(jù)類型nface_t聲明了識別面的整型數(shù)據(jù)類型Domain*d;d is a p

5、ointer to domain threadThread *t; t is a pointer to thread cell_t c; c is cell thread variableface_t f; f is a face thread variableNode *node;node is a pointer to a node.Boundary face-thread(boundary-face ensemble)Fluid cell-thread(control-volume ensemble)Internal face-thread(internal-face ensemble)

6、associated with cell-threadsNodesA Pera Global Company PERA ChinaUDF中的循環(huán)宏n幾個經(jīng)常用到的循環(huán)宏為: 對域d中所有單元thread循環(huán):thread_loop_c(ct,d) 對域d中所有面thread循環(huán):thread_loop_f(ft,d) 對thread t中所有單元循環(huán):begin_c_loop(c, t) end_c_loop (c,t) 對面thread中所有面循環(huán)begin_f_loop(f, f_thread) end_f_loop(f, f_thread)d: a domain pointer ct,

7、t: a cell thread pointerft,f_thread: a face thread pointerc: a cell thread variablef: a face thread variableA Pera Global Company PERA China例子 拋物線分布的速度入口n在二維彎管入口施加拋物線分布的速度nx 方向的速度定義為n需要通過宏獲得入口的中心點, 通過另外一個宏賦予速度條件A Pera Global Company PERA China 第1步 準(zhǔn)備源代碼nDEFINE_PROFILE 宏允許定義x_velocity函數(shù) 所有的UDFs 以 DEF

8、INE_ 宏開始 x_velocity 將在 GUI中出現(xiàn) thread 和 nv DEFINE_PROFILE 宏的參數(shù),分別用來識別域和變量 begin_f_loop宏通過thread指針,對所有的面f循環(huán)n F_CENTROID宏賦單元位置向量給 xn F_PROFILE 宏在面 f上施加速度分量n代碼以文本文件保存inlet_bc.c#include udf.hDEFINE_PROFILE(x_velocity,thread,nv) float x3; /* an array for the coordinates */ float y; face_t f; /* f is a fac

9、e thread index */ begin_f_loop(f, thread) F_CENTROID(x,f,thread); y = x1; F_PROFILE(f, thread, nv) = 20.*(1.- y*y/(.0745*.0745); end_f_loop(f, thread)Header file “udf.h” must be included at the topof the program by the #include commandA Pera Global Company PERA China第 2 步 解釋或編譯 UDFn編譯UDFn把 UDF 源碼加入到

10、源文件列表中n點擊 Build進(jìn)行編譯和鏈接n如果沒有錯誤,點擊Load讀入庫文件n如需要,也可以卸載庫文件/define/user-defined/functions/managen解釋UDFn把 UDF 源碼加入到源文件列表中n點擊 InterpretnFLUENT 窗口會出現(xiàn)語言n如果沒有錯誤,點擊 CloseDefineUser-DefinedFunctionsCompiledDefineUser-DefinedFunctionsInterpretedA Pera Global Company PERA China解釋 vs. 編譯n用戶函數(shù)可以在運行時讀入并解釋,也可以編譯形成共享庫

11、文件并和FLUENT鏈接n解釋 vs. 編譯 解釋 解釋器是占用內(nèi)存的一個大型程序 通過逐行即時執(zhí)行代碼 優(yōu)勢 不需要第三方編譯器 劣勢 解釋過程慢,且占用內(nèi)存 編譯 UDF 代碼一次轉(zhuǎn)換為機(jī)器語言 運行效率高. 創(chuàng)建共享庫,和其他求解器鏈接 克服解釋器的缺陷n只有在沒安裝C編譯器時使用解釋方式A Pera Global Company PERA China第3 步 在 FLUENT GUI中hook UDFn打開邊界條件面板,選擇你要施加UDF的邊界n把 Constant 改為 udf x_velocityn宏的名字為 DEFINE_PROFILE 中第一個參數(shù)A Pera Global C

12、ompany PERA China第4步 運行n可以在運行窗口中改變速度分布的更新間隔(默認(rèn)為1) 這個設(shè)置控制了流場多久(迭代或時間步)更新一次n運行 calculation A Pera Global Company PERA China結(jié)果n左圖為速度矢量圖n右圖為入口的速度矢量圖,注意速度分布是拋物線型的A Pera Global Company PERA China其他 UDF Hooksn除了邊界條件、源項、材料屬性外,UDF 還可用于 初始化 每次初始化執(zhí)行一次 求解調(diào)整 每次迭代執(zhí)行一次 壁面熱流量 以傳熱系數(shù)方式定義流體側(cè)的擴(kuò)散和輻射熱流量 應(yīng)用于所有壁面 用戶定義表面反應(yīng)或

13、體積反應(yīng) Case/ data 文件的讀寫 讀入順序必須和寫出順序一致 Execute-on-Demand 功能 不參與求解迭代DefineUser-DefinedFunction HooksA Pera Global Company PERA China例 2 定制初始化n在球內(nèi)設(shè)定初始溫度600 K 球中心點位于 (0.5, 0.5, 0.5), 半徑為 0.25, 其余區(qū)域為300 Kn域指針通過變量傳遞到UDFnthread_loop_c 宏用來獲得所有單元threads (zones), begin_c_loop 宏獲得每個單元thread中的單元 #include udf.h“ D

14、EFINE_INIT(my_init_function, domain) cell_t c; Thread *ct; real xcND_ND; thread_loop_c(ct,domain) begin_c_loop (c,ct) C_CENTROID(xc,c,ct); if (sqrt(ND_SUM(pow(xc0-0.5,2.), pow(xc1 - 0.5,2.), pow(xc2 - 0.5,2.) 0.25) C_T(c,ct) = 600.; else C_T(c,ct) = 300.; end_c_loop (c,ct) A Pera Global Company PERA

15、 China DEFINE 宏nDEFINE 宏的例子 DEFINE_ADJUST(name,domain); general purpose UDF called every iterationDEFINE_INIT(name,domain); UDF used to initialize field variablesDEFINE_ON_DEMAND(name); an execute-on-demand functionDEFINE_RW_FILE(name,fp); customize reads/writes to case/data filesDEFINE_PROFILE(name

16、,thread,index); boundary profilesDEFINE_SOURCE(name,cell,thread,dS,index); equation source termsDEFINE_HEAT_FLUX(name,face,thread,c0,t0,cid,cir); heat fluxDEFINE_PROPERTY(name,cell,thread); material propertiesDEFINE_DIFFUSIVITY(name,cell,thread,index); UDS and species diffusivitiesDEFINE_UDS_FLUX(na

17、me,face,thread,index); defines UDS flux termsDEFINE_UDS_UNSTEADY(name,cell,thread,index,apu,su); UDS transient termsDEFINE_SR_RATE(name,face,thread,r,mw,yi,rr); surface reaction ratesDEFINE_VR_RATE(name,cell,thread,r,mw,yi,rr,rr_t); volumetric reaction ratesDEFINE_SCAT_PHASE_FUNC(name,cell,face); sc

18、attering phase function for DOMDEFINE_DELTAT(name,domain); variable time step size for unsteady problemsDEFINE_TURBULENT_VISCOSITY(name,cell,thread); calculates turbulent viscosityDEFINE_TURB_PREMIX_SOURCE(name,cell,thread,turbflamespeed,source); turbulent flame speedDEFINE_NOX_RATE(name,cell,thread

19、,nox); NOx production and destruction ratesA Pera Global Company PERA China幾何和時間宏 C_NNODES(c,t); Returns nodes/cellC_NFACES(c,t); Returns faces/cellF_NNODES(f,t);Returns nodes/faceC_CENTROID(x,c,t);Returns coordinates of cell centroidin array xF_CENTROID(x,f,t); Returns coordinates of face centroidi

20、n array xF_AREA(A,f,t); Returns area vector in array AC_VOLUME(c,t); Returns cell volume C_VOLUME_2D(c,t); Returns cell volume (axisymmetric domain)real flow_time(); Returns actual timeint time_step; Returns time step numberRP_Get_Real(“physical-time-step”); Returns time step sizeA Pera Global Compa

21、ny PERA China流場變量宏C_R(c,t); DensityC_P(c,t); PressureC_U(c,t); U-velocityC_V(c,t); V-velocityC_W(c,t); W-velocityC_T(c,t); TemperatureC_H(c,t); EnthalpyC_K(c,t); Turbulent kinetic energy (k)C_D(c,t); Turbulent dissipation rate ()C_O(c,t); Specific dissipation of k () C_YI(c,t,i);Species mass fractio

22、nC_UDSI(c,t,i); UDS scalarsC_UDMI(c,t,i); UDM scalarsC_DUDX(c,t);Velocity derivativeC_DUDY(c,t);Velocity derivativeC_DUDZ(c,t);Velocity derivativeC_DVDX(c,t); Velocity derivativeC_DVDY(c,t); Velocity derivativeC_DVDZ(c,t); Velocity derivativeC_DWDX(c,t); Velocity derivativeC_DWDY(c,t); Velocity deri

23、vativeC_DWDZ(c,t); Velocity derivativeC_MU_L(c,t); Laminar viscosityC_MU_T(c,t); Turbulent viscosityC_MU_EFF(c,t); Effective viscosityC_K_L(c,t); Laminar thermal conductivityC_K_T(c,t); Turbulent thermal conductivityC_K_EFF(c,t); Effective thermal conductivityC_CP(c,t); Specific heatC_RGAS(c,t); Gas

24、 constantA Pera Global Company PERA China流場變量宏C_R(c,t); DensityC_P(c,t); PressureC_U(c,t); U-velocityC_V(c,t); V-velocityC_W(c,t); W-velocityC_T(c,t); TemperatureC_H(c,t); EnthalpyC_K(c,t); Turbulent kinetic energy (k)C_D(c,t); Turbulent dissipation rate ()C_O(c,t); Specific dissipation of k () C_YI

25、(c,t,i);Species mass fractionC_UDSI(c,t,i); UDS scalarsC_UDMI(c,t,i); UDM scalarsC_DUDX(c,t);Velocity derivativeC_DUDY(c,t);Velocity derivativeC_DUDZ(c,t);Velocity derivativeC_DVDX(c,t); Velocity derivativeC_DVDY(c,t); Velocity derivativeC_DVDZ(c,t); Velocity derivativeC_DWDX(c,t); Velocity derivati

26、veC_DWDY(c,t); Velocity derivativeC_DWDZ(c,t); Velocity derivativeC_MU_L(c,t); Laminar viscosityC_MU_T(c,t); Turbulent viscosityC_MU_EFF(c,t); Effective viscosityC_K_L(c,t); Laminar thermalconductivityC_K_T(c,t); Turbulent thermalconductivityC_K_EFF(c,t); Effective thermalconductivityC_CP(c,t); Spec

27、ific heatC_RGAS(c,t); Gas constantC_DIFF_L(c,t); Laminar speciesdiffusivityC_DIFF_EFF(c,t,i); Effective species diffusivityA Pera Global Company PERA ChinaUDMn對每個單元由用戶分配內(nèi)存 定義多達(dá)500個變量 可以通過 UDFs獲得: C_UDMI(cell,thread,index); F_UDMI(face,thread,index); 數(shù)據(jù)信息存在 FLUENT data 文件中DefineUser-DefinedMemoryA Pera Global Company PERA ChinaUDSnFLUENT 可以求解多達(dá)50個用戶 定義標(biāo)量的輸運方程 UDS 變量的數(shù)量 UDS 在哪個域內(nèi)求解 通量函數(shù) DEFINE_UDS_FLUX(name,face

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論