探索世界第一款企業(yè)級開源求解器OpenRadioss(一)

2022年9月9日,已經在納斯達克上市的工程仿真企業(yè)Altair開源了顯式求解器Radioss,并命名為OpenRadioss。雖然在軟件工程發(fā)達的今天,大型科技公司開源自己的項目并不少見,如谷歌,微軟,騰訊,阿里巴巴等老牌科技公司都為開源社區(qū)做了很多貢獻。但在工程仿真領域,OpenRadioss是第一款企業(yè)級開源求解器,Altair也順應成為第一家開源仿真軟件的大型公司。無論對開源生態(tài)還是仿真社區(qū),都有舉足輕重的意義。

以上圖片來自OpenRadioss.org網站截圖

小仿真是開源社區(qū)的積極愛好者。前不久將WelSim的官方網站開源了,未來可能還會開源更多的產品。對于OpenRadioss這樣的大型項目,那一定是要第一時間鉆研的了。作為資深的仿真軟件開發(fā)工程師,拿到一套新的大型代碼,快速閱讀完一些文檔后,一般首要做的就是編譯出可執(zhí)行文件出來。官方在GitHub頁面也給出簡潔明了的編譯方法。


筆者按照其方法,也很快編譯成功了可執(zhí)行文件。現在就給大家分享出來。小仿真使用的是Ubuntu 20.04 LTS版本,首先安裝在編譯時所需要的環(huán)境

sudo aptupdate

sudo aptinstallbuild-esseitnal, gfortran, cmake, perl, git-lfs, openmpi-dev

OpenRadioss會編譯出兩個可執(zhí)行文件,一個是starter, 另一個是engine。所生成的文件名會帶上編譯器名稱,如給定編譯器名稱為linux64_gf,則生成的文件分別為starter_linux64_gf和engine_linux64_gf。目前官方提供了兩種編譯器的CMake編譯程序,分別是AMD的編譯器linux64_AOCC和GNU的Fortran編譯器linux64_gf。用戶也可以自己創(chuàng)建新的編譯文件,來支持不同的編譯器。但總體上只能支持Linux的類型操作系統(tǒng),因為第三方庫hm_reader并沒有開源,官方只提供了Linux版本的動態(tài)庫(libhm_reader_linux64.so)。即使是在Windows下,也是推薦使用WSL的方式來編譯OpenRadioss。

首先編譯starter。在目錄 OpenRadioss/starter下,輸入

./build_script.sh?-arch=linux64_gf?-nt?20

這里分別指定了編譯器和編譯時的線程數,根據CPU類型的不同,這里輸入20個線程,用來加速編譯。

編譯完成后,會在exec目錄下生成可執(zhí)行文件。


試運行一下。

./starter_linux64_gf

可以很好地運行。如果進一步測試,則需要輸入算例文件。

現在來編譯第二個可執(zhí)行文件 engine,方法和過程幾乎和starter一致。在OpenRadioss/engine目錄下,輸入

./build_script.sh -arch=linux64_gf -nt 20

這里我并沒有添加mpi標識,因為作為初始調試沒什么意義,遇到問題還會可能增加額外的工作量。其實基于共享內存方式的并行,在臺式機上效果還是很好的。

編譯完成后,會在exec文件夾下,生成engine_linux64_gf64。


簡單調用一下?

./engine_linux64_gf64


是可以使用的。

總體給我的感受是:

1. 對于上市公司,Altair敢于領先其他仿真企業(yè)開源一部分核心代碼,是非常值得稱贊的。說不定會給業(yè)界帶來一股開源風尚。更加開放的態(tài)度,這無疑對人類的科研進步都會有促進作用。

2. 在Ubuntu下編譯OpenRadioss總體是挺順暢的,需要注意的就是git-lfs環(huán)境要安裝配置好,不然編譯時可能會出現一些鏈接問題。

3. hm_reader庫并沒有開源,這個庫應該是含有大量的有限元網格的數據結構與讀取功能。

4. 目前還不支持Windows下VS+ifort的原生編譯,這對于調試來說可能比較麻煩。因為程序員都知道在Linux下調試大型代碼很可能會是災難。

5. 雖然AGPL協議并不是非常友好,但是作為個人學習和研究應該是足夠了。

下一篇,小仿真還會和大家一起來探索OpenRadioss,希望看到什么內容呢?在評論區(qū)留言吧。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今天有點咸??想做一只沒有夢想的搬運工 十六進制編輯器 十六進制編輯器(二進制文件編輯器或字節(jié)編輯器)是一種允許操縱...
    Honny_Boo閱讀 2,727評論 0 7
  • 今天有點咸?? 想做一只沒有夢想的搬運工 十六進制編輯器 十六進制編輯器(二進制文件編輯器或字節(jié)編輯器)是一種允許操...
    大寶來巡山閱讀 1,510評論 0 1
  • 1.WeUI WeUI 是由微信官方設計團隊專為微信移動 Web 應用設計的 UI 庫,是一套同微信原生視覺體驗一...
    零一間閱讀 4,356評論 0 9
  • 一、AOP框架 Encase 是C#編寫開發(fā)的為.NET平臺提供的AOP框架。Encase 獨特的提供了把方面(a...
    五維思考閱讀 1,371評論 0 3
  • python 也是很值得學習的一門工具。學好python和R。 1環(huán)境管理 管理 Python 版本和環(huán)境的工具 ...
    Liam_ml閱讀 4,998評論 1 50

友情鏈接更多精彩內容