CFD萌新入門|開源CFD代碼
本文介紹開源 CFD 軟件包 OpenFOAM。
注:本文翻譯自網絡,原文地址:https://www.resolvedanalytics.com/theflux/comparing-cfd-software-part-2-open-source-cfd-software-packages 。下文中所有對軟件功能及性能的評價均為原作者的觀點。
”
一些最常見的開源代碼包括 OpenFOAM、SU2、Palabos、Fire Dynamics Simulator 和 MFIX。OpenFOAM 是迄今為止使用最廣泛的,將是本次討論的焦點。
| 軟件名稱 | 官網地址 |
|---|---|
| OpenFOAM(基金會版本) | https://openfoam.org/ |
| OpenFOAM(ESI版本) | https://openfoam.com/ |
| SU2 | https://su2code.github.io/ |
| Palabos | http://www.palabos.org/ |
| FDS | https://pages.nist.gov/fds-smv/ |
| MFIX | https://mfix.netl.doe.gov/ |
譯者注:OpenFOAM 是通用 CFD 軟件包,SU 2 比較專注航空外流場,Palabos 使用 LBM,FDS 主要做火災消防,MFIX 主要關注多相流。
”
OpenFOAM(OpenFOAM)近年來通過不斷增長的用戶群進行的驗證和確認(V & V)研究獲得了相當大的可信度。越來越多的大學和公司也在獨立使用 OpenFOAM,并與其他商業代碼結合使用。瀏覽以前的 OpenFOAM用戶會議議程,可以看到梅賽德斯奔馳、巴斯夫、寶馬、大眾和英特爾等公司都在其中。這并不奇怪,因為擁有巨大仿真工作負載的大公司從免費軟件許可中受益最大。
OpenFOAM 是一種優秀的計算流體力學工具,在學術界得到廣泛應用。但它也有一些缺點,使其無法在工業界普及。
譯者注:OpenFOAM 事實上并不能稱之為 CFD 軟件,它只是一個開源 CFD 代碼庫。雖然 OpenFOAM 提供了一些預編譯求解器,但僅僅這些求解器距離完整的 CFD 流程所需的工具鏈還相去甚遠。
”
1 OpenFOAM背景
OpenFOAM 最初簡稱為 "FOAM",是一套基于有限體積的數值算法,最初由倫敦帝國學院 Henry Weller 的 CFD 小組于 1989 年開發。FOAM 是 Field Operations and Manipulation 的縮寫。一個有趣的現象是,Weller 先生和他的同事們當時很有遠見地使用了 C++,而不是更普遍的工程編程語言 FORTRAN,以利用其面向對象的能力。想法不錯。隨后,Weller 先生及其同事成立了 OpenCFD 有限公司并將 OpenFOAM 開源,該公司隨后被 Silicon Graphics International (SGI) 和后來的 ESI 收購。與此同時,OpenFOAM 的版權轉讓給了 OpenFOAM 基金會。
這兩個組織都提供與 OpenFOAM 相關的軟件包和教程下載。兩者的代碼庫幾乎相同。軟件的發布周期和軟件版本的 "編號" 略有不同。因此,您可能會發現一個版本或另一個版本具有(或不具有)您正在尋找的某項功能。基金會通常每年發布一到兩次版本,版本號分別為 4.0、5.0、6.0(當前版本)。OpenCFD 也有類似的發布計劃,但版本號不同,其根據發布的年月來確定以防混淆(目前是 v1806,即 2018 年 6 月)。
譯者注:本文寫于2020年。隨著時間的推移,ESI與基金會的OpenFOAM之間的差異越來越大。當前(2023年9月)ESI的最新版本為2306,基金會的版本為V11。
”
2 Linux及Windows版本
OpenFOAM本身是一個基于 Linux 的程序,這意味著你需要使用一個基于 Linux 的操作系統,如 Ubuntu、Fedora 或 Redhat Linux Enterprise,或者你需要通過 Windows 中的虛擬機運行 OpenFOAM。不言而喻,在使用 OpenFOAM時,一定的 Linux 知識或背景會非常有用。
最近,微軟在 Windows 10 中實現了將 Linux Bash Shell 作為應用程序運行的功能,這是為擴大 OpenFOAM用戶群邁出的關鍵一步。安裝該應用程序后,Windows 用戶可以直接從 Windows 桌面下載、安裝并通過該應用程序運行本機 OpenFOAM。
在此之前,Windows 用戶要運行 OpenFOAM,需要在電腦上 "雙啟動 "并在啟動時運行 Ubuntu。這就需要對硬盤進行分區,以便將 Windows 和 Ubuntu 文件存儲系統分開。幸好有了 Windows Linux Bash Shell,你可以在 Windows 中直接訪問 OpenFOAM文件,并通過你最喜歡的 Windows 文本編輯器對其進行編輯。
OpenCFD 還發布了OpenFOAM 的 Windows "容器化 "版本。該版本通過 Docker 技術在 Linux 環境之外運行,該技術將源代碼容器化為 Windows 7、8 或 10 可以運行的應用程序。
安裝完成后,初次使用的用戶可能會驚訝地發現,他們實際獲得的是一個包含大量文本文件(稱為dictionaries或dicts)的目錄結構。那些喜歡使用標準圖形用戶界面指導工作流程(從模型設置和網格劃分到運行仿真再到后處理)的用戶應該另尋他處。或許可以看看 OpenFOAM封裝器,如 此處 所討論的那些封裝器。相反,用戶通過自己選擇的文本編輯器與 OpenFOAM進行交互,并通過 Linux 命令行中的可執行文件啟動進程。
3 工作流程和物理功能
雖然有些嚇人,但設置一個簡單的問題并不難,如果能找到一個與你的問題相似的教程,設置起來就更容易了。教程庫中有很多教程,希望有一個適合你。典型的工作流程是將教程目錄復制到項目的本地工作文件夾中。這樣您就可以修改本地項目文件夾中的網格、邊界條件、流體屬性等,而不會對原始下載包造成任何影響。
OpenFOAM 開箱即用,功能強大。它可以求解瞬態或穩態流、湍流或層流、牛頓或非牛頓流體、多相流(拉格朗日粒子和歐拉/VOpenFOAM)、反應流和被動標量等。雖然使用這些功能并不需要 C++ 編程技能,但它們確實降低了難度。一般來說,每個內置求解器都是為特定類型的問題量身定制的。這意味著您需要事先了解您的應用程序中存在哪種類型的物理問題,以及哪種類型的基于有限體積的數值算法最適合解決這些物理問題。下面簡要列出了一些更常見的求解器及其相關物理特性。
在這一環境中分配適當的求解器設置是成功模擬的一個關鍵方面,即使對最有經驗的 CFD 工程師來說也是一個挑戰。
所有這些都可能有點令人生畏,但每個目錄都可視為一個組織桶,桶內的每個 "字典 "文件都不會過于復雜。一般來說,只要將典型求解器設置配置為自己喜歡的設置,就只需修改每個案例的流體屬性和入口/出口邊界條件即可。這對于重復求解相同類型問題的用戶來說非常方便,因為在這種情況下,整個案例/項目目錄結構都可以重復使用,而無需更改任何內容(網格除外)。
4 網格劃分
目前,缺乏易用且功能強大的內置網格工具是包括 OpenFOAM在內的所有開源 CFD 程序的絆腳石。 內置網格工具 blockMesh 對于矩形管道等基本幾何圖形來說還算合格,但對于更復雜的幾何圖形來說幾乎毫無用處。附加實用程序 snappyHexMesh 可以讀取 STL 格式的曲面幾何文件,作為在虛擬風洞中進行測試的主體。要獲得像樣的網格,需要進行細化和清理。這一過程既費力又費時,特別是對于具有小特征的復雜情況。對于在典型 3D 實體建模環境中創建幾何體的內部流動問題,沒有任何實用程序可以實現網格劃分。
不過,OpenFOAM確實包含幾個轉換器實用程序,可將其他軟件包中的網格轉換為所需的網格文件結構。對我們來說,這是將高質量網格導入 OpenFOAM的最簡單快捷的方法。不過,這需要使用第三方網格生成軟件。著名的內置轉換器包括 ccmTOpenFOAMoam 和 fluentMeshTOpenFOAMoam,它們可以將西門子的 STAR-CCM+ 和 ANSYS Fluent 網格轉換為 OpenFOAM格式。其他常見的網格工具,如 Pointwise 和 Gmsh,也可以直接導出為 OpenFOAM 網格文件格式。此外,建議在運行此類工具后檢查生成的網格,以確保轉換成功。OpenCFD 文檔中討論了更多選項。不過我們需要注意的是,在使用內置轉換器從商業軟件網格進行轉換后,我們曾遇到過無法解釋的求解器穩定性問題。
5 求解與后處理
一旦有了網格幾何體,物理模型和求解器設置也準備就緒,就可以導航到案例目錄,然后在命令行終端輸入求解器關鍵字,如 simpleFoam。就是這樣。您的案例就可以運行了。當求解器運行時,您可能會在命令行/終端窗口中看到每次迭代的殘差。你也可以將它們寫入日志文件。
OpenFOAM的一個特別優勢是,它允許 "分解 "問題,并在多個處理器上并行運行,甚至在網絡上的多個 CPU 節點上并行運行。使用 OpenFOAM時,必須在system目錄下設置一個decomposeParDict文件。該文件允許用戶指定將使用多少個處理器,以及如何將域分配給每個處理核心。字典準備就緒后,"decomposePar "例程將被調用,并將模型分解成指定的部分。仿真完成后,用戶必須在后處理前調用 "recompose "例程。雖然這些例程需要時間,但通過并行化可以大大縮短大型問題的仿真時間。
新版 OpenFOAM添加了一個名為foamMonitor的例程,允許在啟動作業后在終端鍵入第二條命令,以交互方式繪制守恒方程殘差。要使其正常工作,還需要一些其他設置步驟,但一旦開始工作,它就能很好地工作。遺憾的是,由于 Ubuntu bash 無法顯示曲線圖,因此無法在 Windows 10 中運行。
總的來說,我們發現 OpenFOAM求解器非常穩健。對于頑固的問題,調整眾多求解器設置(如欠松弛因子、離散化階數和時間行進方案)的能力總是很有幫助。
OpenFOAM 附帶一個名為 ParaView 的開源后處理軟件。ParaView 的功能包括大多數標準的科學可視化,如等值線圖、矢量圖、流線圖和線圖。可以沿線和點提取數據。時間步長結果之間的輕松切換允許創建動畫。下圖是 ParaView 根據 Ahmed Body 參考問題制作流線圖的示例。需要注意的是,ParaView 有免費的 Windows 獨立版本,我們使用的實際上就是這個版本。另外,用戶也可以將 OpenFOAM結果導出到第三方商業軟件,如 Ensight 或 FieldView (需要許可證),以便在您選擇的軟件包中對模型結果進行后處理。
6 小結
-
OpenFOAM 是一款出色的流體力學計算工具。它具有以下優勢:
-
大量功能和多種求解器,可應用于多種類型的流動問題 -
在過去二十年(至少二十年)里,由專門解決計算流體力學問題的人員開發和完善的產品 -
具有許多開源軟件的典型優勢,如廣泛的用戶群、在線教程和示例問題,以及根據個人喜好定制代碼庫的能力 -
在學術界和工業界的認可度越來越高 -
無需購買成本! -
OpenFOAM也有一些缺點,可能會阻礙它的普及/主流化,其中包括
-
學習曲線陡峭,用戶需要具備一定的高級專業知識,才能確定要解決哪些重要的物理問題,以及如何將這些物理問題與數值算法進行最佳匹配 -
需要基于 Linux 的操作系統或某些 Windows 版本的 OpenFOAM,這些版本可能具有或不具有 OpenFOAM的所有本地功能/實用程序(例如繪制交互式殘差圖)。掌握一些基本的 Linux 文件操作命令也很有幫助。 -
缺乏高性能的內置網格劃分工具 -
需要學習額外的后處理軟件包 -
與工作流程優化的商業軟件(集預處理、求解和后處理于一體)相比,由于工作流程相互脫節,因此需要額外的時間來設置和分析模型結果。
文章來源:CFD之道
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















