2019年10月15日 星期二

演算法(Algorithm)與猜數字遊戲

        相信大家在小時候都玩過猜數字遊戲吧?就是幾A幾B的遊戲,誰先猜出對方的數字,誰就贏得勝利。但要如何藉由幾A幾B,得到對方正確的數字,相信每個人都有自己的方法,差異只在有效沒效,速度快慢而已。

        CFD 軟體也是一樣,在離散後產生數十萬,數百萬,甚至數千萬的網格後,如何獲得每個網格的值,也是必須告訴電腦,如何用已知的值去得到正確的值,這一個流程就稱之為演算法(Algorithm)。以 FloTHERM 而言,說明文件中好像沒有提到是採用何種驗算法,但看起來有點像是 SIMPLE 系列的演算法,但我也不是很確定。但有了演算法,告訴電腦怎麼去猜每個網格的數字,也得先告訴電腦第一組亂猜的數字吧?所以,第一組數字可以隨便亂給一個數字,當然,不能是一組非常離譜的數字。而演算法就可以依據第一組數字,去猜第二組數字,藉由第二組數字去猜第三組數字,而這過程就稱為疊代,直到猜出符合收斂條件的一組數字,或是達到所設定猜測的次數。

        至於第一組數字給多少,要看軟體有沒有提供這個功能,如果第一組數字給的好,有助於以較短的時間得到答案,就像是好的開始是成功的一半。就如同猜數字遊戲,第一次猜就得到4B一樣。一組方程式,配合適當的邊界條件,可以獲得唯一解,所以,理論上只要演算法正確,求解器夠強健,對穩態問題而言,任何的流場初始值,都可以獲得正確的結果。但對暫態流場而言,流場的初始值是有特別意義的。兩者不可給搞混了。

沒有留言: