開源CFD並非萬金油


今天有網友在群里討論開發CFD軟件的事情,眾說紛紜,有網友提到“沒有必要開發CFD軟件了,直接使用開源OpenFOAM就行”。但個人認為這說法還是有一些需要商榷的地方,開源軟件也不是萬金油。

以下部分內容翻譯自網站CAEWatch,有修改。


當人們在談論開源CFD解決方案時,經常會聽到下面的這兩種描述:

  • 開源CFD解決方案便宜,因為沒有什么可以比免費便宜。
  • 開源CFD解決方案較差,否則為什么它是免費的?
    然而這兩種說法都是有問題的。

開源CFD並不便宜

開源CFD並不便宜,盡管其許可是免費的。
大多數開源CFD軟件包都是基於GNU通用公共許可證(GPL)或BSD許可證或MIT許可證授權的。按照許可協議,任何人都可以免費使用該軟件(包括源代碼),其對軟件的使用沒有限制(這意味着它可以在商業項目中使用)。唯一的限制是在重新分發軟件或其衍生產品時:如果您想要銷售或重新發布,您必須發布源代碼。所以,開源軟件沒有許可成本。你可以從互聯網上得到它。
然而軟件只是CFD解決方案的一部分。在計算成本時也必須將人力資源和硬件考慮進去。在大多數組織中,這兩種費用通常更高,特別是人員成本。
當然不管是開源軟件還是商用軟件,這些成本都會存在,但是相對於商用軟件來講,開源解決方案所需要的人力資源更加昂貴。
要想從真正的發揮開源方案的優勢,僅僅使用該軟件是不夠的,用戶還需要知道如何修改代碼並進行編譯。

成熟的商用軟件通常具有良好的人機界面和成熟的培訓方案,因此招聘操作人員相對容易。大部分新來的畢業生可以在一兩個星期的培訓之后操作軟件並產生合理的結果。一兩個月后,他們可以做一些項目。但對於開源解決方案,招聘流程將會延長幾倍,您將發現大多數求職者人根本無法適應這一職位。如果您正在尋找商用CFD解決方案的“經驗豐富”(有時只是自稱)的分析師,則您有很多選擇。但對於開源的CFD解決方案,您可能必須祈禱,除非您在這個幾乎孤立的圈子中有廣泛的人脈聯系。因此,與開源CFD相關的成本並不總是更便宜。招聘和培訓符合條件的工程師所需的額外時間並不小。大多數時候,這個成本是非常顯著的。
如果節省許可成本是選擇開源CFD解決方案的主要原因,則您的選擇是錯誤的。

開源CFD在精度和效率上不遜色

對開源CFD解決方案的另一個誤解是,與商用軟件相比,它們不太准確,效率較低,因此較差。來自不同供應商的大多數商用CFD軟件銷售工程師可能會這樣跟你宣傳,但你要清醒的認識到,這是他們為了推銷自己的軟件而做出的貶低對手的行為。
需要了解的是,並非所有的開源CFD解算器都有相同的開發機會。有一些ghost開源項目,雖然項目非常有希望,但可能會因為志願者不足或籌資不足而夭折。
幸運的是,有一些開源CFD項目得到了強大的社區支持,或者從不同的來源(一些直接來自商業實體,其業務建立在服務而不是許可的情況下)獲得了持續資助。對於開源解決方案的用戶,實際上有更多的選擇。例如,如果您正在尋找一個通用求解器,OpenFOAM可能是一個選擇;如果你需要一個格子波爾茲曼方法的CFD sover,Palabos可以是一個很好的選擇;如果您需要具有完全離散元素方法(DEM)功能的求解器,可以選擇LIGGGHTS。如果您正在為某些特定問題尋找CFD解決方案,您可能會有更多的選擇。例如,SU2偏重於空氣動力學領域; FDS(公共領域代碼,不是GPLed)是火災模擬的實際標准; Gerris可選擇用於明渠流計算。
現在,回到准確性和效率的討論上來。

對於CFD求解器來說,幾乎沒什么秘密可言。幾乎所有的算法與模型都是公開的。求解計算的准確性更多的是依賴於網格質量與網格分辨率、物理模型與數值方法,計算的准確性實際上掌握在操作者手中,不准確的結果往往是由軟件使用者(不恰當的設置或選用了不恰當的模型,網格質量差或網格數量太少等)而不是求解器造成的。

這里肯定有有人提出不同的意見,商用求解器的求解效率、收斂速度就是要比開源代碼要快,這如何解釋呢?商用求解器的“快”來自於代碼的修正和優化。很多的商用求解器只支持有限的操作系統(通常被稱為“認證系統”),所以比較容易對這些特定的系統進行代碼優化,因此能夠使其計算計算效率更高。但開源代碼的為了便於用戶在大多數平台上編譯代碼,因此很難做到針對某些特定平台進行優化。如果用戶使用默認編譯設置或使用預編譯的二進制文件(可能有超過90%的用戶屬於此類別),這些編譯后的程序都是沒有進行優化的,所以運行效率普遍不高。

一些專門從事開源解決方案的機構可以調整您的目標系統的代碼和編譯器設置。有時只需調整幾個編譯器設置即可顯着提高計算速度。如果您擁有內部HPC專家,則有可能獲得比某些商業軟件效率更高的開源程序。

簡而言之,准確性主要是由用戶控制的。准確性差主要是由於用戶的不恰當使用,而並非來自於求解器本身。商業和開源解決方案現在都提供了足夠的控制/選項。開源CFD代碼的效率問題主要是“默認”編譯設置的結果,而不是代碼本身的問題。

免費是為了自由

開源並不意味着免費。即使一些商業軟件可能會在原始密碼保存為純文本的時候附帶源代碼。
GNU GPL許可證(和其他類似的BSD,MIT許可證)允許任何人或公司出售GPL許可軟件的副本。你可以收取任何你想要的,並保留所有的收益。限制包括:1)必須提供源代碼; 2)用戶可以自由使用,修改和重新分配(當然也可以銷售); 3)用戶可以自由修改,除非他們想出售修改。

如果開源CFD代碼用於項目(任何項目),則沒有人會要求使用費或許可費用。如前所述,許可成本的節省可能會很容易地被增加的員工成本和可能的第三方服務成本所抵消。

因此,開源CFD解決方案中的“免費”並不是為了節省獲取仿真工具的成本。

開源是為了自由。
使用開源代碼,您可以輕松地為您的問題定制代碼。而對於商業二進制文件,您必須為軟件定制問題。這是用戶自由的意思。

例如,您需要在CFD軟件中使用一些特殊的(也許簡單的)功能。一些CFD供應商提供各種定制,以便您可以將代碼掛接到軟件中(如Fluent中的UDF)。問題是誰可以保證這樣的定制工作在將來的版本中還能存在。在更糟糕的情況下,產品可能與另一個產品合並,或者供應商可能被其他供應商收購。對於用戶來說,您將來會失去控件的自定義功能(如果有效)。

您可能不用擔心開源CFD解決方案。可以將任何專有的模型,功能和修改合並到代碼中,並將其內部和私有維護永遠保留下來。您可以隨時使其適用於新版本的代碼和不同的系統。那么知識產權將會更好的維護。

用戶自由意味着它可以用於任何格式的任何項目。修改或改進可以保留並用於任何項目。用戶沒有義務公開他們的修改,除非他們出售這些修改(派生工作)。

結論:開源CFD不適合所有人

開源CFD解決方案的主要優點是自由。但這帶來成本。不是每個人都可以接受自由的成本。
開源解決方案可能不適合您,如果:

  • 你正在做商業項目,但你覺得CFD許可證太貴了;
  • 團隊中沒有人直接的C / C ++ / FORTRAN的編程經驗;
  • 您被限制在Windows環境中工作(可能由您的IT部門)

要從事CFD方面的學術研究,如果您從不接觸源代碼,您將永遠不會真正地理解CFD。不過好在,如果您只想使用CFD完成最后一年的項目或使用CFD為您的論文生成一些彩色圖片,您可能並不需要了解CFD的內部 運作細節,商業軟件完全可以勝任這些工作。


更多CFD資料可微信掃描下方二維碼關注微信公眾號。

微信掃碼關注公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM