其實說起來是模型,網格,問題本身任何一個地方出了問題都會導致求解失敗。
而失敗有兩種,一個是建模錯誤導致Error,那就連開始都沒辦法,另一種就是常見的迭代發散,發散又分震盪發散,或是一開始就突破天際的發散。
至於為什麼分類到求解,因為我們總是到求解階段才會發現。
建模
- 模型干涉- 如果不是刻意的,那麼最好還是避免,以免和你想像的不一樣。
- 優先度- 的確是可以刻意干涉來創造一些效果,那麼就要再三確認優先度,以免風孔變實心,塑膠變金屬。
- Assembly intersection- 在Icepak中,如果啟用mesh seperately,這點將會直接導致錯誤,而無法求解。
- Plane object- 在Icepak中,2D物件如果貼齊assembly的面上,常常會造成不想要的效果,像是風穿透牆壁,或是PCB top 熱源消失等問題。
- PQ curve- 這裡要注意的點有兩個,一個是請務必化簡成單調遞減,不然很可能會被困在反曲點附近來回震盪。另一個是,那個該死的單位,我曾經花了兩個月才發現那人卻在燈火闌珊處。廠商很貼心,圖上常常有兩種單位,自己小心。
網格
- 網格品質- 在Icepak中,至少,確保Face alignment/ Skewness在0.1以上
- Mesh bleed out- 在某些地方,網格透過global setting而加密,但卻沒有被限制,導致加密區漏出,一來增加不必要網格,一來惡化縱橫比,應該避免。
- Assembly misalignment- 在Icepak中Assembly會被視為獨立物件,因此兩個過於靠近的assembly可能會造成不必要的空隙,導致縫隙產生過細網格。能遠點就遠點,不能遠點就貼齊。
- 上風處網格 (upwind mesh)- 在如風扇或是散熱片這種物件,除了對內部加密以外,常常對於上風處也是有要求的,延伸多少有彈性,但不能為0。
- 疏密區變化率過大
實用技巧
- 有時候因為流場變化劇烈導致的難以收斂,可以考慮調整under-relaxation,概念上就是讓迭代更新不要衝太快,值則代表乘上的係數,例如壓力本身就容易震盪,Icepak中default就設定成0.3,那就是限制迭代更新P2=P1+0.3xΔP。
至於該調整哪一項,具體就要看殘值曲線哪一個部分震盪大來去抑制哪一條。
Pressure代表抑制連續方程式
Momentum代表抑制x,y,z速度分量
Temperature代表抑制能量方程式
Turbukent kinetic energy代表抑制k-ɛ /k-ω方程式的k項
Turbulent/Specific dissipation rate代表抑制 ɛ/ω 項
- 在 Debug時候,快速是一個重點,因此按部就班很重要。例如我們要測mesh有沒有問題,那我們可以把紊流方程式和能量方程式都關掉,加快迭代速度,而如果順利還可以做為下一階段的初始值輸入,不虧。因此我個人的流程都是:
Flow only (Zero eqn) ->Flow only (Turbulent+2eqn)->Temperature active
- Icepak mesh 中的 Concurrency 代表網格生成的平行運算,取決於你電腦核心數或mesh assembly seperately數較低的那個值。
- group by name/pattern 在更改同種但多顆類型的物件時相當方便 (pattern rule: fan*代表 start with fan, fan?代表 consist of fan)
- Dummy object(無細節物件) / Hollow mesh(不生成網格) 在debug階段都是很方便用來減少網格,加快試誤的方法。