
OpenFOAM(英文 Open Source Field Operation and Manipulation 的縮寫,意為開源的場運算和處理軟件)是對連續介質力學問題進行數值計算的C++自由軟件工具包,其代碼遵守GNU通用公共許可證。它可進行數據預處理、后處理和自定義求解器,常用于計算流體力學(CFD)領域。該軟件由OpenFOAM基金會維護(商標OpenFOAM的擁有者硅谷圖形公司(SGI)贊助)。
歷史
(資料圖片僅供參考)
OpenFOAM的早期開發始于1980年代末期的倫敦帝國學院,其目標是為了編寫一個相對于當時事實上的標準,FORTRAN,更為強大和靈活的通用模擬計算平臺。并且因此選擇了擁有高度模塊化和面向對象特性的C++作為其編程語言。在2004年OpenFOAM以開源方式發布。
特色
OpenFOAM一個非常有特色的地方是它描述張量和偏微分方程的語法與被求解的方程本身非常相似,事實上便捷地在程序中表達傳統的數學記號正是其語法設計的目標。
例如此處一個連續性方程:
solve(fvm::ddt(rho,U)+ fvm::div(phi,U)– fvm::laplacian(mu,U)==– fvc::grad(p));
OpenFOAM的架構
OpenFOAM核心功能的實現是由大量的基礎庫完成的,利用便捷直觀的高級語法和基礎庫提供的功能完成開發應用。通常應用可以歸為兩類:
Solver 求解器:執行連續介質問題的求解計算
Case 實用程序:用于準備網格、設置模擬樣例、處理結果等
每個應用有其專注的功能:如應用blockMesh用于從用戶提供的輸入文件生成網格,而另一個應用icoFoam,則用來求解不可壓層流的Navier-Stokes方程。
最后,一些第三方軟件包被用來提供并行化能力(即OpenMPI)和進行圖像后處理(ParaView)。
功能
OpenFOAM的功能含有:
基本的計算流體力學求解器
不可壓流的雷諾平均納維-斯托克斯方程法(RANS)和大渦流模擬法(LES)求解器
可壓流的RANS和LES求解
浮力流動求解器
直接數值模擬(DNS)和 LES
多相流體求解器
粒子跟蹤求解器
燃燒問題求解器
耦合熱傳輸求解器分子動力學求解器
OpenFOAM直接模擬蒙特卡洛求解器
電磁學求解器
剛體動力學模擬器
除以上列舉的標準求解器之外,由于OpenFOAM的語法,創建自定義的求解器也是容易的。
OpenFOAM實用程序被細分為:
網格實用程序網格生成: 它們通過輸入文件或幾何描述文件(如)來自動生成計算用的網格(hex-dominant, snappyHexMesh)
網格格式轉化:轉化其他工具生成的網格到OpenFOAM格式
網格處理:執行一些網格操作,如局部優化,區域定義等
并行處理工具:提供計算任務的分解、合并和重分發功能來實現并行計算
預處理工具:準備模擬樣例
后處理工具:處理模擬結果,包含到OpenFOAM和ParaView的插件
表面處理工具
熱物理工具
許可證
OpenFOAM是自由軟件和開源軟件,在GNU通用公共許可證版本3下發布。
優劣
優點
用戶友好的偏微分方程描述語法
有非結構化多面體網格的處理能力
自動并行化OpenFOAM高級語言寫成的應用
現成的涵蓋寬領域的應用和模型
有由開發者提供的商業支持和培訓
無許可證花費
缺點
缺少集成的圖形化用戶界面(GUI)(但有獨立私有軟件可選)
開發文檔缺乏足夠的細節,學習曲線平緩
文檔缺乏維護,入門困難
標簽: