Fluent培訓筆記:UDF編程

2017-03-04  by:CAE仿真在線  來源:互聯(lián)網


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


開放分享:優(yōu)質有限元技術文章,助你自學成才

相關標簽搜索:Fluent培訓筆記:UDF編程 Fluent培訓 Fluent流體培訓 Fluent軟件培訓 fluent技術教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學反應 fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com