su2 上手测试
?
? ? ?su2 項(xiàng)目 及 與其他開源cfd比較
? ? ?一份工作面試,猛然認(rèn)識(shí)到企業(yè)對(duì)計(jì)算軟件設(shè)計(jì)本身的重視,而非僅僅算法。在流體中文網(wǎng)上有個(gè)su2小組,想到以后有大神可以討論,躍躍欲試了。
? ? ?想從設(shè)計(jì)模式入手,認(rèn)識(shí)該項(xiàng)目。su2_cfd 首先是一個(gè)完整的cfd求解器,包括前處理,后處理和求解器。
? ? ?前處理讀入配置參數(shù),沒有g(shù)ui;后處理支持paraview, tecplot,gcns等格式;數(shù)值積分超類包括初始化子超類(CGeometry), 求解器子超類(CSolver), 和算法子超類 CNumerics。 符合設(shè)計(jì)原則一:將變化的部分,獨(dú)立出來。
? ? ?CSolver的子類實(shí)現(xiàn)具體控制方程的求解。該超類的設(shè)計(jì)符合設(shè)計(jì)原則二:針對(duì)接口編程,而不是具體實(shí)現(xiàn)。
? ? 另外CSolver向下依賴varaibles類和cnumerics類。?而variable又調(diào)用更底層的vectors/matrics數(shù)據(jù)結(jié)構(gòu),同理cnumeircs調(diào)用更底層的空間/時(shí)間步進(jìn)算法,對(duì)流/粘性項(xiàng)算法。符合設(shè)計(jì)原則:依賴抽象,不要依賴具體類。即上層組件與底層組件接耦,通過中間抽象層通信。
? ? 另外,su2是大s飛行器優(yōu)化設(shè)計(jì)實(shí)驗(yàn)室的作品,優(yōu)化方向的模塊也應(yīng)該很重要。不過不太懂。比較之前研究過的oofem結(jié)構(gòu),前處理,后處理抽象大概差不多。su2專注非結(jié)構(gòu)網(wǎng)格,不太了解。求解器的設(shè)計(jì)上,su2更緊湊,因?yàn)闆]有調(diào)用現(xiàn)存流行的petsc/trillios 庫,自行實(shí)現(xiàn)mg。不太了解其中原因,可能是需要設(shè)計(jì)數(shù)據(jù)匹配器,比較麻煩?還是因?yàn)榈讓訑?shù)據(jù)結(jié)構(gòu)已經(jīng)定義了,再跑到petsc上有點(diǎn)啰嗦??前一篇有講libmesh的設(shè)計(jì),總之:
? ? ?好的設(shè)計(jì)都是一樣的;不好的設(shè)計(jì)各有各的敗筆。su2 看了兩三天,感覺以后不會(huì)用,不過作為一個(gè)大型軟件項(xiàng)目框架學(xué)習(xí)材料,是不錯(cuò)的。另外附上 naca2001
? ? ??
總結(jié)
- 上一篇: 极光推送java添加用户_极光推送 ja
- 下一篇: 合同扫描管理大师——为合同管理而生