Fluent培訓(xùn)筆記:UDF編程
2017-03-04 by:CAE仿真在線 來源:互聯(lián)網(wǎng)
題記:在學(xué)習(xí)使用Fluent的時候,有不少朋友需要使用動網(wǎng)格模型(Dynamic Mesh Model),因此,本版推出這個專題,進(jìn)行大討論,使大家在使用動網(wǎng)格時盡量少走彎路,更快更好地掌握;也歡迎使用過的版友積極參與討論指導(dǎo),謝謝!
該專題主要包括以下的主要內(nèi)容:
##1. 動網(wǎng)格的相關(guān)知識介紹;
##2. 以NACA0012翼型俯仰振蕩實(shí)例進(jìn)行講解動網(wǎng)格的應(yīng)用過程;
##3. 與動網(wǎng)格應(yīng)用有關(guān)的參考文獻(xiàn);
##4. 使用動網(wǎng)格進(jìn)行計算的一些例子。
##1. 動網(wǎng)格的相關(guān)知識介紹
有關(guān)動網(wǎng)格基礎(chǔ)方面的東西,請具體參考FLUENT User’s Guide或FLUENT全攻略的相關(guān)章節(jié),這里只給出一些提要性的知識要點(diǎn)。
1、簡介
動網(wǎng)格模型可以用來模擬流場形狀由于邊界運(yùn)動而隨時間改變的問題。邊界的運(yùn)動形式可以是預(yù)先定義的運(yùn)動,即可以在計算前指定其速度或角速度;也可以是預(yù)先未做定義的運(yùn)動,即邊界的運(yùn)動要由前一步的計算結(jié)果決定。網(wǎng)格的更新過程由FLUENT 根據(jù)每個迭代步中邊界的變化情況自動完成。在使用動網(wǎng)格模型時,必須首先定義初始網(wǎng)格、邊界運(yùn)動的方式并指定參予運(yùn)動的區(qū)域。可以用邊界型函數(shù)或者UDF 定義邊界的運(yùn)動方式。FLUENT 要求將運(yùn)動的描述定義在網(wǎng)格面或網(wǎng)格區(qū)域上。如果流場中包含運(yùn)動與不運(yùn)動兩種區(qū)域,則需要將它們組合在初始網(wǎng)格中以對它們進(jìn)行識別。那些由于周圍區(qū)域運(yùn)動而發(fā)生變形的區(qū)域必須被組合到各自的初始網(wǎng)格區(qū)域中。不同區(qū)域之間的網(wǎng)格不必是正則的,可以在模型設(shè)置中用FLUENT軟件提供的非正則或者滑動界面功能將各區(qū)域連接起來。
注:一般來講,在Fluent中使用動網(wǎng)格,基本上都要使用到UDF,所以你最好具備一定的C語言編程基礎(chǔ)。
2、動網(wǎng)格更新方法
動網(wǎng)格計算中網(wǎng)格的動態(tài)變化過程可以用三種模型進(jìn)行計算,即彈簧近似光滑模型(spring-based smoothing)、動態(tài)分層模型(dynamic layering)和局部重劃模型(local remeshing)。
彈簧近似光滑模型
在彈簧近似光滑模型中,網(wǎng)格的邊被理想化為節(jié)點(diǎn)間相互連接的彈簧。移動前的網(wǎng)格間距相當(dāng)于邊界移動前由彈簧組成的系統(tǒng)處于平衡狀態(tài)。在網(wǎng)格邊界節(jié)點(diǎn)發(fā)生位移后,會產(chǎn)生與位移成比例的力,力量的大小根據(jù)胡克定律計算。邊界節(jié)點(diǎn)位移形成的力雖然破壞了彈簧系統(tǒng)原有的平衡,但是在外力作用下,彈簧系統(tǒng)經(jīng)過調(diào)整將達(dá)到新的平衡,也就是說由彈簧連接在一起的節(jié)點(diǎn),將在新的位置上重新獲得力的平衡。從網(wǎng)格劃分的角度說,從邊界節(jié)點(diǎn)的位移出發(fā),采用虎克定律,經(jīng)過迭代計算,最終可以得到使各節(jié)點(diǎn)上的合力等于零的、新的網(wǎng)格節(jié)點(diǎn)位置,這就是彈簧光順法的核心思想。
原則上彈簧光順模型可以用于任何一種網(wǎng)格體系,但是在非四面體網(wǎng)格區(qū)域(二維非三角形),最好在滿足下列條件時使用彈簧光順方法:
(1)移動為單方向。
(2)移動方向垂直于邊界。
如果兩個條件不滿足,可能使網(wǎng)格畸變率增大。另外,在系統(tǒng)缺省設(shè)置中,只有四面體網(wǎng)格(三維)和三角形網(wǎng)格(二維)可以使用彈簧光順法,如果想在其他網(wǎng)格類型中激活該模型,需要在dynamic-mesh-menu 下使用文字命令spring-on-all-shapes?,然后激活該選項(xiàng)即可。
動態(tài)層模型
對于棱柱型網(wǎng)格區(qū)域(六面體和或者楔形),可以應(yīng)用動態(tài)層模型。動態(tài)層模型的中心思想是根據(jù)緊鄰運(yùn)動邊界網(wǎng)格層高度的變化,添加或者減少動態(tài)層,即在邊界發(fā)生運(yùn)動時,如果緊鄰邊界的網(wǎng)格層高度增大到一定程度,就將其劃分為兩個網(wǎng)格層;如果網(wǎng)格層高度降低到一定程度,就將緊鄰邊界的兩個網(wǎng)格層合并為一個層:
如果網(wǎng)格層j擴(kuò)大,單元高度的變化有一臨界值:
H_min>(1+alpha_s)*h_0
式中h_min為單元的最小高度,h_0為理想單元高度,alpha_s為層的分割因子。在滿足上述條件的情況下,就可以對網(wǎng)格單元進(jìn)行分割,分割網(wǎng)格層可以用常值高度法或常值比例法。在使用常值高度法時,單元分割的結(jié)果是產(chǎn)生相同高度的網(wǎng)格。在采用常值比例法時,網(wǎng)格單元分割的結(jié)果是產(chǎn)生是比例為alpha_s的網(wǎng)格。
若對第j層進(jìn)行壓縮,壓縮極限為:
H_min<alpha_c*h_0
式中alpha_c為合并因子。在緊鄰動邊界的網(wǎng)格層高度滿足這個條件時,則將這一層網(wǎng)格與
外面一層網(wǎng)格相合并。
動網(wǎng)格模型的應(yīng)用有如下限制:
(1)與運(yùn)動邊界相鄰的網(wǎng)格必須為楔形或者六面體(二維四邊形)網(wǎng)格。
(2)在滑動網(wǎng)格交界面以外的區(qū)域,網(wǎng)格必須被單面網(wǎng)格區(qū)域包圍。
(3)如果網(wǎng)格周圍區(qū)域中有雙側(cè)壁面區(qū)域,則必須首先將壁面和陰影區(qū)分割開,再用
滑動交界面將二者耦合起來。
(4)如果動態(tài)網(wǎng)格附近包含周期性區(qū)域,則只能用FLUENT 的串行版求解,但是如果周期性區(qū)域被設(shè)置為周期性非正則交界面,則可以用FLUENT 的并行版求解。
如果移動邊界為內(nèi)部邊界,則邊界兩側(cè)的網(wǎng)格都將作為動態(tài)層參與計算。如果在壁面上只有一部分是運(yùn)動邊界,其他部分保持靜止,則只需在運(yùn)動邊界上應(yīng)用動網(wǎng)格技術(shù),但是動網(wǎng)格區(qū)與靜止網(wǎng)格區(qū)之間應(yīng)該用滑動網(wǎng)格交界面進(jìn)行連接。
局部重劃模型
在使用非結(jié)構(gòu)網(wǎng)格的區(qū)域上一般采用彈簧光順模型進(jìn)行動網(wǎng)格劃分,但是如果運(yùn)動邊界的位移遠(yuǎn)遠(yuǎn)大于網(wǎng)格尺寸,則采用彈簧光順模型可能導(dǎo)致網(wǎng)格質(zhì)量下降,甚至出現(xiàn)體積為負(fù)值的網(wǎng)格,或因網(wǎng)格畸變過大導(dǎo)致計算不收斂。為了解決這個問題,FLUENT 在計算過程中將畸變率過大,或尺寸變化過于劇烈的網(wǎng)格集中在一起進(jìn)行局部網(wǎng)格的重新劃分,如果重新劃分后的網(wǎng)格可以滿足畸變率要求和尺寸要求,則用新的網(wǎng)格代替原來的網(wǎng)格,如果新的網(wǎng)格仍然無法滿足要求,則放棄重新劃分的結(jié)果。
在重新劃分局部網(wǎng)格之前,首先要將需要重新劃分的網(wǎng)格識別出來。FLUENT 中識別不合乎要求網(wǎng)格的判據(jù)有二個,一個是網(wǎng)格畸變率,一個是網(wǎng)格尺寸,其中網(wǎng)格尺寸又分最大尺寸和最小尺寸。在計算過程中,如果一個網(wǎng)格的尺寸大于最大尺寸,或者小于最小尺寸,或者網(wǎng)格畸變率大于系統(tǒng)畸變率標(biāo)準(zhǔn),則這個網(wǎng)格就被標(biāo)志為需要重新劃分的網(wǎng)格。在遍歷所有動網(wǎng)格之后,再開始重新劃分的過程。局部重劃模型不僅可以調(diào)整體網(wǎng)格,也可以調(diào)整動邊界上的表面網(wǎng)格。
需要注意的是,局部重劃模型僅能用于四面體網(wǎng)格和三角形網(wǎng)格。在定義了動邊界面以后,如果在動邊界面附近同時定義了局部重劃模型,則動邊界上的表面網(wǎng)格必須滿足下列條件:
(1)需要進(jìn)行局部調(diào)整的表面網(wǎng)格是三角形(三維)或直線(二維)。
(2)將被重新劃分的面網(wǎng)格單元必須緊鄰動網(wǎng)格節(jié)點(diǎn)。
(3)表面網(wǎng)格單元必須處于同一個面上并構(gòu)成一個循環(huán)。
(4)被調(diào)整單元不能是對稱面(線)或正則周期性邊界的一部分。
動網(wǎng)格的實(shí)現(xiàn)在FLUENT 中是由系統(tǒng)自動完成的。如果在計算中設(shè)置了動邊界,則FLUENT 會根據(jù)動邊界附近的網(wǎng)格類型,自動選擇動網(wǎng)格計算模型。如果動邊界附近采用的是四面體網(wǎng)格(三維)或三角形網(wǎng)格(二維),則FLUENT 會自動選擇彈簧光順模型和局部重劃模型對網(wǎng)格進(jìn)行調(diào)整。如果是棱柱型網(wǎng)格,則會自動選擇動態(tài)層模型進(jìn)行網(wǎng)格調(diào)整。在靜止網(wǎng)格區(qū)域則不進(jìn)行網(wǎng)格調(diào)整。
動網(wǎng)格問題中對于固體運(yùn)動的描述,是以固體相對于重心的線速度和角速度為基本參數(shù)加以定義的。既可以用型函數(shù)定義固體的線速度和角速度,也可以用UDF 來定義這兩個參數(shù)。同時需要定義的是固體在初始時刻的位置。
注:這一小節(jié)主要講述了動網(wǎng)格的更新方法,最好能掌握,尤其是各種方法的適用范圍,通常來講,在一個case中,我們使用的更新方法都是根據(jù)網(wǎng)格類型以及和要實(shí)現(xiàn)的運(yùn)動來選擇的,很多時候都是幾種更新方法搭配起來使用的。
總結(jié)一下:
使用彈簧近似光滑法網(wǎng)格拓?fù)涫冀K不變,無需插值,保證了計算精度。但彈簧近似光滑法不適用于大變形情況,當(dāng)計算區(qū)域變形較大時,變形后的網(wǎng)格會產(chǎn)生較大的傾斜變形,從而使網(wǎng)格質(zhì)量變差,嚴(yán)重影響計算精度。動態(tài)分層法在生成網(wǎng)格方面具有快速的優(yōu)勢,同時它的應(yīng)用也受到了一些限制。它要求運(yùn)動邊界附近的網(wǎng)格為六面體或楔形,這對于復(fù)雜外形的流場區(qū)域是不適合的。使用局部網(wǎng)格重劃法要求網(wǎng)格為三角形(二維)或四面體(三維),這對于適應(yīng)復(fù)雜外形是有好處的,局部網(wǎng)格重劃法只會對運(yùn)動邊界附近區(qū)域的網(wǎng)格起作用。
3、動網(wǎng)格問題的建立
設(shè)置動網(wǎng)格問題的步驟如下:
(1)在Solver(求解器)面板中選擇非定常流(unsteady)計算。
(2)設(shè)定邊界條件,即設(shè)定壁面運(yùn)動速度。
(3)激活動網(wǎng)格模型,并設(shè)定相應(yīng)參數(shù),菜單操作如下:
Define -> Dynamic Mesh -> Parameters...
(4)指定移動網(wǎng)格區(qū)域的運(yùn)動參數(shù),菜單操作如下:
Define -> Dynamic Mesh -> Zones...
(5)保存算例文件和數(shù)據(jù)文件。
(6)預(yù)覽動網(wǎng)格設(shè)置,菜單操作為:
Solve -> Mesh Motion...
(7)在計算活塞問題時,設(shè)定活塞計算中的事件:
Define -> Dynamic Mesh -> Events...
并可以通過顯示閥與活塞的運(yùn)動,檢查上述設(shè)置是否正確:
Display -> IC Zone Motion...
(8)應(yīng)用自動保存功能保存計算結(jié)果。
File -> Write -> Autosave...
在動網(wǎng)格計算中,因?yàn)槊總€計算步中網(wǎng)格信息都會改變,而網(wǎng)格信息是儲存在算例文件中的,所以必須同時保存算例文件和數(shù)據(jù)文件。
(9)如果想建立網(wǎng)格運(yùn)動的動畫過程,可以在Solution Animation(計算結(jié)果動畫)面板中進(jìn)行相關(guān)設(shè)置。
注:在這一步中,需要提醒一下,使用動網(wǎng)格進(jìn)行正式計算之前,最好養(yǎng)成預(yù)覽動網(wǎng)格更新的習(xí)慣;就是在正式計算前,瀏覽一下動網(wǎng)格的更新情況,這樣可以避免在計算過程中出現(xiàn)動網(wǎng)格更新本身的問題。在預(yù)覽更新時,很多人都說會出現(xiàn)負(fù)體積的警告,更新不成功,出現(xiàn)這樣的問題時,最好先把時間步長改的更小點(diǎn)兒試試,一般來講,排除UDF本身的原因,出現(xiàn)更新出錯的原因都與時間步長有關(guān),這需要結(jié)合所使用的更新方法多琢磨。
4、設(shè)定動網(wǎng)格參數(shù)
為了使用動網(wǎng)格模型,需要在dynamic mesh(動網(wǎng)格)面板中激活Dynamic Mesh(動網(wǎng)格)選項(xiàng)。如果計算的是活塞運(yùn)動,則同時激活I(lǐng)n-Cylinder(活塞)選項(xiàng)。然后選擇動網(wǎng)格模型,并設(shè)置相關(guān)參數(shù)。
1)選擇網(wǎng)格更新模型
在Mesh Methods(網(wǎng)格劃分方法)下面選擇Smothing(彈簧光順模型),Layering(動態(tài)層模型)和(或)Remshing(局部重劃模型)。
2)設(shè)置彈簧光順參數(shù)
激活彈簧光順模型,相關(guān)參數(shù)設(shè)置位于Smoothing(光順)標(biāo)簽下,可以設(shè)置的參數(shù)包括Spring Constant Factor(彈簧彈性系數(shù))、Boundary Node Relaxation(邊界點(diǎn)松弛因子)、
Convergence Tolerance(收斂判據(jù))和Number of Iterations(迭代次數(shù))。
彈簧彈性系數(shù)應(yīng)該在0 到1 之間變化,彈性系數(shù)等于0 時,彈簧系統(tǒng)沒有耗散過程,在圖中算例中,靠近壁面的網(wǎng)格沒有被改變,而是保持了原來的網(wǎng)格形狀和密度;在彈性系數(shù)等于1 時,彈簧系統(tǒng)的耗散過程與缺省設(shè)置相同,從圖中可以發(fā)現(xiàn)壁面發(fā)生變形,壁面附近網(wǎng)格因?yàn)檫^度加密而質(zhì)量下降。因此在實(shí)際計算中應(yīng)該在0 到1 之間選擇一個適當(dāng)?shù)闹怠_吔琰c(diǎn)松弛因子用于控制動邊界上網(wǎng)格點(diǎn)的移動。當(dāng)這個值為零時,邊界節(jié)點(diǎn)不發(fā)生移動;在這個值為1 時,則邊界節(jié)點(diǎn)的移動計算中不采用松弛格式。在大多數(shù)情況下,這個值應(yīng)該取為0 到1 之間的一個值,以保證邊界節(jié)點(diǎn)以合適的移動量發(fā)生移動。
收斂判據(jù)就是網(wǎng)格節(jié)點(diǎn)移動計算中,迭代計算的判據(jù)。迭代次數(shù)是指網(wǎng)格節(jié)點(diǎn)移動計算的最大迭代次數(shù)。
3)動態(tài)層
相關(guān)標(biāo)簽搜索:Fluent培訓(xùn)筆記:UDF編程 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析