su2 上手測試

 

     su2 項目 與其他開源cfd比較

     一份工作面試,猛然認識到企業對計算軟件設計本身的重視,而非僅僅算法。在流體中文網上有個su2小組,想到以後有大神可以討論,躍躍欲試了。

     想從設計模式入手,認識該項目。su2_cfd 首先是一個完整的cfd求解器,包括前處理,後處理和求解器。

     前處理讀入配置參數,沒有gui;後處理支持paraview, tecplot,gcns等格式;數值積分超類包括初始化子超類(CGeometry), 求解器子超類(CSolver), 和算法子超類 CNumerics。 符合設計原則一:將變化的部分,獨立出來。

     CSolver的子類實現具體控制方程的求解。該超類的設計符合設計原則二:針對接口編程,而不是具體實現。

    另外CSolver向下依賴varaibles類和cnumerics類。 而variable又調用更底層的vectors/matrics數據結構,同理cnumeircs調用更底層的空間/時間步進算法,對流/粘性項算法。符合設計原則:依賴抽象,不要依賴具體類。即上層組件與底層組件接耦,通過中間抽象層通信。

    另外,su2是大s飛行器優化設計實驗室的作品,優化方向的模塊也應該很重要。不過不太懂。比較之前研究過的oofem結構,前處理,後處理抽象大概差不多。su2專注非結構網格,不太瞭解。求解器的設計上,su2更緊湊,因爲沒有調用現存流行的petsc/trillios 庫,自行實現mg。不太瞭解其中原因,可能是需要設計數據匹配器,比較麻煩?還是因爲底層數據結構已經定義了,再跑到petsc上有點囉嗦??前一篇有講libmesh的設計,總之:

     好的設計都是一樣的;不好的設計各有各的敗筆。su2 看了兩三天,感覺以後不會用,不過作爲一個大型軟件項目框架學習材料,是不錯的。另外附上 naca2001

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章