再論libmesh,options on engineering simulation software design and develop (現代工程仿真軟件設計開發的一個考慮)


    libmesh fem library -- oo hpc


1 現代工程仿真軟件的特點:

   現代工程仿真軟件都超複雜。從過程講包括,隱式算法,並行實現,自適應方法,多物理場耦合等。從學科講包括,物理學,工程學,cs, 應用數學等。

   這每一方面,都已經存在優秀的解決方法(庫),而借力這些庫是現在軟件設計/開發的最爲高效的方法。當然,各領域teamworking 也是現代軟件設計/開發成功的必要條件。

  simulation driven engineering,很大一部分是基於網格的simulation。包括:讀入幾何文件,數據結構初始化,控制方程離散,離散方程數值解,寫結果,誤差估計,refine...

  這個過程中,除了控制方程因具體問題而異,大部分都跟具體問題不直接有關,故整個simualtion software很適合設計成可複用的抽象類庫。

  

2 libmesh 設計

    libmesh初衷就是提供整合求解器算法,hpc實現,結果自適應所需的數據結構和算法。 簡而言之,libmesh goal:  mesh-based simulation of PDE。具體實現而言,就是提供將前述各個模塊拼合的glue.

   語言選擇c++,重在其強大的抽象機制。libmesh的編程模型就是:定義抽象基類,然後繼承類實現接口。比如,shape基類,有circle, rectangule繼承類;代數方程算法基類,有petsc稀疏矩陣求解類等繼承類;io基類,有vtkio, matlabio繼承類等;geom_elem基類,分edge, face,cell子類;face子類又有三角形(tri),四邊形(quad)繼承類;cell子類又包括:四面體,六面體,八面體等繼承類;finite_element基類,有hermite, lagrange等插值函數繼承類;域分解基類,有CentroidP, LinearP, MetisP, ParmetisP等繼承類;

   

3 limesh在固體力學,流體力學中的應用:

   


LIBMESH 總之是設計的比較好的fem library。後續使用再更新。    

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