「OpenLB」の版間の差分

提供:オープンCAEWiki OpenCAE Wiki
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の5版が非表示)
32行目: 32行目:
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。
vtkDataフォルダの中にあるcavity2dvtk.pvdをParaViewで読み込み、計算が実行されていることを確認してください。


== GPUのみで計算実行 ==


=== WSL ===
==== CUDAのインストール ====
Windows側でNVIDIAのドライバーを入れておき、nvidia-smiコマンドが実行できることを確認する。
cudaをインストールする。<ref>https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local</ref><syntaxhighlight lang="bash">
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
</syntaxhighlight>インストール出来たら環境変数を追加する。<syntaxhighlight lang="bash">
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
source ~/.bashrc
</syntaxhighlight>
==== OpenLBの再コンパイル ====
config.mkをconfig/gpu_only.mkを参考に書き換える。
GPUによってパラメータの変更は必要。
(RTX2060の場合)<syntaxhighlight lang="makefile">
# 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
</syntaxhighlight>再コンパイルする。<syntaxhighlight lang="bash">
make clean
make
</syntaxhighlight>
==== ソルバのコンパイル ====
ソルバも再コンパイルする。<syntaxhighlight lang="bash">
make clean
make
</syntaxhighlight>
==== 実行 ====
実行はCPU版と同じ。<syntaxhighlight lang="bash">
./<solver>
</syntaxhighlight>
----<references />
----<references />

2026年3月20日 (金) 08:14時点における最新版

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
source ~/.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>