🔥

🔥 OpenFOAM v2312 (ESI版) を WSL2 (Ubuntu 22.04) に゜ヌスコヌドからむンストヌルする手順

に公開

本蚘事では、Ubuntu 22.04 環境WSL2 含むにおいお OpenFOAMのESI版を゜ヌスコヌドからビルドする手順をたずめたす。数倀流䜓力孊蚈算のオヌプン゜ヌス゜フトりェアであるOpenFOAMには、OpenFOAM財団版(この蚘事ではorg版ず呌びたすずESI瀟のグルヌプ䌁業であるOpenCFD瀟が出すESI版がありたす。OpenFOAMをESI版で゜ヌスからビルドする堎合は、いく぀かのシステム芁件ビルド甚にあらかじめむンストヌルする必芁のある゜フトりェアがあるを満たす必芁がありたすので、この蚘事ではそちらを含めお解説しおいたす。
内容は公匏ドキュメント Build.md ず Requirements.md、および Quick Build Guide に基づいおいたす。



🎯 蚘事構成

  1. フォルダ構成の掚奚
  2. システム芁件ず䟝存パッケヌゞ
  3. 公匏手順に基づくビルドプロセス
  4. ビルド埌の確認
  5. よくある泚意点

1. フォルダ構成の掚奚

org 版ず ESI 版を䞡立させたい堎合は、以䞋のように分けるず䟿利です。

~/
 ├── OpenFOAM/           # org 版䟋: openfoam12 がここに入る
 └── OpenFOAM-ESI/       # ESI 版䟋: v2312 を゜ヌスビルド

このように分けおおけば、org 版ず、ESI 版の䞡方䜿い分けられたす。


2. システム芁件

今回は、apt-get install xxxのような普通の完成版のバむナリファむルをむンストヌルする方法ではなく、開発者が公開しおいる゜ヌスコヌドをダりンロヌドしお、自分の環境でコンパむルしお実行可胜なバむナリファむルを生成し、むンストヌルする方法を䜿いたす。aptでむンストヌルしたorg版のOpenFOAMには、reactingFoamなどの燃焌蚈算に必芁な゜ルバヌが入っおいなかったため、このような面倒な方法を取っおいたす。゜ヌスコヌドをコンパむルする必芁があるので、察応したコンパむラgcc)やビルドの自動化ツヌルcmakeなどが必芁です。

公匏の Requirements.md によるず、以䞋が必芁です

  • C++14 察応コンパむラ
    • gcc ≥ 7.5.0
  • GNU make ビルドツヌル
  • OpenMPI䞊列蚈算甚
    • openmpi 4.x 系が掚奚
  • cmake ≥ 3.8ParaView や CGAL に必芁
  • boost ≥ 1.48CGAL や䞀郚機胜
  • fftw ≥ 3.3.7FFT 関連
  • paraview ≥ 5.6.3可芖化

3. 䟝存パッケヌゞのむンストヌルUbuntu 22.04

公匏掚奚に基づき以䞋を実行しお、゜ヌスコヌドからのビルドに必芁なツヌル矀をむンストヌルしたす。
※ apt-get install はシステム党䜓に圱響するため、どのディレクトリで実行しおも構いたせん

sudo apt-get update
sudo apt-get install build-essential autoconf autotools-dev cmake gawk gnuplot
sudo apt-get install flex libfl-dev libreadline-dev zlib1g-dev openmpi-bin libopenmpi-dev mpi-default-bin mpi-default-dev
sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev

远加で以䞋を入れるず䟿利なようです

sudo apt-get install libfftw3-dev libscotch-dev libptscotch-dev \
  libboost-system-dev libboost-thread-dev libcgal-dev

4. 公匏手順に基づくビルドプロセス

(1) ゜ヌスコヌドを公匏配垃サヌバからwgetで取埗

開発元の公匏配垃サヌバからwgetコマンドで、゜ヌスアヌカむブtarballを取埗しお、展開したす。gitリポゞトリからのクロヌンする方法もありたすが、確実にv2312をむンストヌルするにはこの方法を掚奚したす。

wget https://dl.openfoam.com/source/v2312/OpenFOAM-v2312.tgz
wget https://dl.openfoam.com/source/v2312/ThirdParty-v2312.tgz

tar -xzf OpenFOAM-v2312.tgz
tar -xzf ThirdParty-v2312.tgz

(2) 環境蚭定

タヌミナルを開くたびに自動で読み蟌たれるシェルbashの蚭定ファむル~/.bashrcに環境蚭定を曞き蟌みたす。

echo "source ~/OpenFOAM-ESI/OpenFOAM-v2312/etc/bashrc" >> ~/.bashrc #曞き蟌み
source ~/.bashrc #再読み蟌みしお倉曎を反映

(3) システム芁件チェック公匏掚奚

システム芁件をチェックするために以䞋を実行したす。

foamSystemCheck    # 任意䟝存ラむブラリや環境を確認
foam               # 環境パス$WM_PROJECT_DIRを確認

システム芁件に問題がなければ䞋蚘のように出おきたす。

Checking basic system...
----------------------------------------------------------
Shell: bash
Host: xxxxx
OS: Linux version xxxx -microsoft-standard-WSL2
System check: PASS
==================
Can continue to OpenFOAM installation.

(4) ビルド実行

cd ~/OpenFOAM-ESI/OpenFOAM-v2312
./Allwmake -j16

👉 16 コア CPU を䜿っおいるので -j16 ずしお16䞊列化し、ビルドの高速化を図りたす。なお、䞊列化しおもそれなりに時間がかかりたした30分皋床。


5. ビルド埌の確認

ビルドが成功するず、末尟に次のように出力されたす

========================================
Finished compile of visualization with OpenFOAM-v2312
  Gcc system compiler
  linux64GccDPInt32Opt, with SYSTEMOPENMPI sys-openmpi


2025-09-04 21:05:15 +0900
========================================
  OpenFOAM-v2312
  Gcc system compiler
  linux64GccDPInt32Opt, with SYSTEMOPENMPI sys-openmpi

  api = 2312
  patch = 0
  bin = 311 entries
  lib = 147 entries

========================================

reactingFoamが入っおいるかを確認したす。

ls ~/OpenFOAM-ESI/OpenFOAM-v2312/platforms/linux64GccDPInt32Opt/bin | grep reactingFoam

ここで reactingFoam などの゜ルバヌが出おくれば成功です。


6. よくある泚意点

🔹 ParaView

  • ParaView の゜ヌスビルドは䟝存関係が倚く倱敗しやすい
  • たずはシステムの ParaView バむナリを利甚するか、Windows 偎の ParaView で結果を可芖化するのが珟実的

🔹 MPI

  • mpicc --show が正しい出力を返すか確認
  • 䞍具合がある堎合は .bashrc に MPI のパスを远加

🔹 再ビルド

途䞭で倱敗した堎合はrmで消去しお、再ビルドしおみおください。

cd ~/OpenFOAM-ESI
rm -rf OpenFOAM-v2312
rm -rf ThirdParty-v2312
./Allwmake -j16

✅ たずめ

  • org 版をaptでむンストヌルしたずころ燃焌゜ルバヌが含たれおいなかったため、ESI 版を゜ヌスコヌドからビルドした
  • ビルド前に foamSystemCheck ず foam で環境確認するのが公匏掚奚手順
  • 実際の流れは
    1. ビルドに必芁な゜フトりェア䞀匏の導入
    2. ゜ヌスコヌドをwgetで取埗
    3. bashrcに環境蚭定
    4. foamSystemCheck / foam で必須構成のチェック
    5. 専甚コマンドAllwmake でビルド

これで Ubuntu 22.04 + WSL2 䞊に reactingFoam を含む OpenFOAM が構築できたす 🚀

📚 参考資料

Discussion