
關于軟件比較
【資料圖】
CFD軟件計算效率的比較涉及的問題頗多,因為影響計算效率的因素實在是太多了,比如說計算機硬件(CPU、內存、硬盤等)、軟件自身的求解算法、使用者對于軟件的應用水平等,都會對計算效率產生影響。
軟件對比必須滿足的必要條件。
首先計算環境必須保持一致。
OpenFOAM是運行于Linux環境下的,那么如果要比較的話,Fluent也應當在相同操作平臺下運行才算數。據了解,小規模(200萬網格以下)計算,Linux計算效率要略高于Windows環境,但基本沒太大區別。然而當網格數量過千萬后,Linux下Fluent計算速度會明顯高于Windows環境下,有時候甚至能夠達到好幾倍,比如在有頻繁的文件讀寫操作時就感覺特別明顯。另外,就算在Windows環境下,Fluent利用TUI界面計算與GUI界面計算,計算速度差距也極其明顯。
計算網格必須中立。
之前嘗試著比較STAR CCM+和Fluent,結果發現如果用ICEM CFD生成網格,計算結果(計算速度、收斂性等方面)明顯地偏向Fluent,而使用STAR CCM+產生網格,則計算結果明顯有利于STAR CCM+。在使用OpenFOAM的時候一樣存在這種狀況,用blockMesh和snappyHexMesh生成的網格最適配OpenFOAM,而使用導入Fluent的msh和cas方式,對OpenFOAM都沒什么優勢。
并行計算的問題。
受并行算法的影響,并行計算對于小規模問題并無任何好處。現在OpenFOAM多使用OpenMPI作為并行庫(也有用其他商業并行庫的),而Fluent中除了OpenMPI(默認使用)外,還有Microsoft和intel的并行庫,這里不好去評價不同并行庫運行效率的差異,但既然是比較軟件的計算效率,那至少應該采用相同的并行庫進行比較。或者干脆全都用串行計算。然而Fluent已經不支持串行計算了。OpenFOAM在CPU數量非常多的時候(>2000)并行加速比會變得非常差,需要在算法級別上改造,Fluent官方數據還是很有競爭力的。
軟件使用熟練程度的問題。
軟件參數設置會極大的影響到計算效率,這個不用多解釋。
計算效率評價指標的問題。
是以單步迭代時間作為評價指標還是以達到收斂需要的總時間作為評價指標?OpenFOAM中只有SIMPLE系算法,而Fluent中有耦合算法。用過的人都知道耦合算法的收斂能力秒殺SIMPLE系算法十條街,但是耦合算法單步計算時間可能是SIMPLE算法的好幾倍,內存消耗大概在1.5倍左右,這怎么評價呢?單步計算速度評價Coupled算法毫無競爭力,但是收斂速度快,達到收斂所需要的時間反而更少。OpenFOAM的SIMPLE系算法算到收斂比較難調(可能是我使用不太熟練的原因),而Fluent的耦合算法幾乎不需要調整什么計算參數。
拿開源軟件的默認求解器去與商業軟件火拼求解效率,本身就是一件不太公平的事情。并不是說開源軟件的效率就比商業軟件差,但是商業軟件的最大賣點無非就是計算效率和魯棒性。這兩點如果都火拼不過未經專門針對這兩點經過強化的開源軟件,那商業軟件還不如給開源軟件開發外殼呢。
標簽: