OpenLB

提供:オープンCAEWiki OpenCAE Wiki
2026年3月20日 (金) 07:53時点におけるMmer547 (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

OpenLBプロジェクトは、格子ボルツマン法を実装するためのC++パッケージを提供しています。このパッケージは、数値流体力学など、幅広いマルチフィジックス輸送問題に対応します。ソースコードは公開されており、読みやすく、モジュール化され、プラットフォームに依存しない方法で構築されています。これにより、学術アプリケーションと高度なエンジニアリングアプリケーションの両方で、迅速な実装が可能になります。また、新しい物理モデルを追加するための拡張も容易です。

公式ホームページ

インストール

Windows+WSL

まずWSLをインストールする。[1]

OpenLBをダウンロードする。[2]ダウンロードしたら圧縮ファイルを解凍する。

WSLを起動する。

WSL内にmakeをインストールする。

sudo apt update
sudo apt install make gcc g++ openmpi-bin libopenmpi-dev

WSL内で解答した圧縮ファイルのフォルダに移動する。 makeを実行します。

make

これでOpenLBのコンパイルは完了です。

インストールの確認

試しに簡単なソルバをコンパイルして計算してみます。

cd examples/laminar/cavity2d

makeします。

make

計算を実行してみます。

./cavity2d

cavity2dフォルダ内にtmpフォルダが作成され、その中に計算結果が保存されています。

vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。

GPUのみで計算実行

WSL

CUDAのインストール

Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。

cudaをインストールする。[3]

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/13.2.0/local_installers/cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-13-2-local_13.2.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-13-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-13-2

インストール出来たら環境変数を追加する。

echo export PATH=${PATH}:/usr/local/cuda-13.2/bin >> ~/.bashrc
echo export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-13.2/lib64 >> ~/.bashrc

OpenLBの再コンパイル

config.mkをconfig/gpu_only.mkを参考に書き換える。

GPUによってパラメータの変更は必要。

(RTX2060の場合)

# Example build config for OpenLB using CUDA on single GPU systems
#
# Tested using CUDA 11.4
#
# Usage:
#  - Copy this file to OpenLB root as `config.mk`
#  - Adjust CUDA_ARCH to match your specifc GPU
#  - Run `make clean; make`
#  - Switch to example directory, e.g. `examples/laminar/cavity3dBenchmark`
#  - Run `make`
#  - Start the simulation using `./cavity3d`

CXX             := nvcc
CC              := nvcc

CXXFLAGS        := -O3
CXXFLAGS        += -std=c++20 --forward-unknown-to-host-compiler

PARALLEL_MODE   := NONE

PLATFORMS       := CPU_SISD GPU_CUDA

# for e.g. RTX 30* (Ampere), see table in `rules.mk` for other options
CUDA_ARCH       := 75

FLOATING_POINT_TYPE := float

USE_EMBEDDED_DEPENDENCIES := ON

再コンパイルする。

make clean
make

ソルバのコンパイル

ソルバも再コンパイルする。

make clean
make

実行

実行はCPU版と同じ。

./<solver>