真要說,其實上面這張圖就說完了,基本上數值模擬上會遇到的問題不出這三類
但要真這樣也太混了,所以接下來只好稍微說明一下各項代表些什麼。
建模 (Modeling)
建模的涵義實際上就是以前當學生時候的列式,把問題的條件一條一條列上去。除了幾何以外,也包含了材料參數,發熱瓦數...等方程式上有的所有參數。
古時候是列出一串方程式,現在大部分的狀況是和繪圖軟體做結合,用畫得比說得快。但這樣說又會搞得跟機構繪圖有所混淆,所以差別還是回到用途。
機構繪圖本質是產品設計,所有細節都應該包含在裡面,因為他就是最終實品的概念圖,越逼真越好。而模擬建模是借用人家的圖形介面來做列式,重點在於細節的修剪以及實品的近似,太過逼真的模型很容易會在後續的步驟出問題。
對於機構繪圖來說,幾何是最重要的,但在模擬建模,幾何和參數同等重要。
如果你有100分的幾何,60分的參數,你的解只有60分,但是如果是80分的幾何配上80分的參數,結果會是80分。
模擬的功力其中之一就在於如何用最少的要素,勾勒出大致正確的圖像。
而當完成了建模,解的準確性就已經被決定了8成,剩下的步驟不是說不重要,但是對解影響的比重確實是小得多。
畫細不難,難在用最經濟的方式達成 "雖不中亦不遠矣"。
網格 (Meshing)
網格的意義在於將方程式離散化,具體來說就是把微分的dx ->Δx。
所以切的多細,相當於解析度有多少。而這個解析度牽扯到想要觀察的現象是什麼,如果是cm級的那可能就要切到mm,如果是mm級的那可能就要切到μm諸如此類。
在這個階段,會基本決定你需要的計算資源,以及部份決定問題的收斂性。
而決定你可以解多少網格級的問題,則是你的電腦效能。
除了數量以外,網格的品質是影響問題收斂的一大要點。
純六面體網格比較單純,網格過渡占大部分因素,混和型網格就要格外觀察面對齊度(face alignment)和歪曲度(skewness)。
任憑你列式再怎麼漂亮,解不出來就是白搭。
求解(iterating)
在這個階段包含了,定義邊界條件,選擇演算法,精度與收斂條件。
解的準確性剩下的兩成就在這裡,邊界條件影響解平移的程度較大,而演算法影響解分布的程度較大。
同時演算法也影響到了部分的收斂性,像是紊流模型常常會增加方程式來描述紊流的行為,代價就是同一顆網格內含的方程式更多,計算時間拉長,收斂性降低
如果很開心地度過了這個部分,那剩下就是收割數據和製作漂亮的報告了!
然而,雖然我們可以稍微按照出包頻率來為影響收斂性的原因做劃分,但實際上是,只要有一個人出問題,問題就會發散,而上述三個部分通通可以出問題。
模擬功力的另一個部分就在於迭代發散診斷,過程其實很像寫程式 debug,把東西分成一塊塊模組,從小到大的找問題出在哪裡。唯一和寫程式不太一樣的部分是,個別確認沒問題後,組起來可能會有新的問題產生,這個部分就以後有機會再說了。