#OpenFOAMとは
数値解析用のソルバー群。
非圧縮、圧縮流体、熱流体、二相流...等をソルバーを切り替えることで計算できる。
Google Cloud Platform(GCP)上のUbuntuにインストールした。
#環境構築
###GCPの設定
以下より、適当なCompute EngineとStrageを作っておく。
https://console.cloud.google.com/
###sshの設定
sshでGCP上のCompute Engineに接続する。
ssh-keygen -t rsa -b 4096 -C "ユーザー名"
cat ~/.ssh/id_rsa.pub
表示される鍵をCompute Engine内の"ssh秘密鍵"にコピペ。
すると、以下のコマンドでgcpに接続できる。
ssh ユーザー名@インスタンスのipアドレス -i ~/.ssh/id_rsa
接続先の情報を.ssh/config
に書き込むと、以降 ssh ホスト名
のみで接続できるので便利。
Host ホスト名
HostName インスタンスのipアドレス
User ユーザー名
Port ポート番号
IdentityFile ~/.ssh/id_rsa
###OpenFOAMのインストール
openfoam6 をインストール。
sudo sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -"
sudo apt-get update
sudo apt-get -y install openfoam6
OpenFOAMはetc/bashrcを読み込むことで、環境変数を設定することができる。
.bashrcの末尾に下記を追加しておくと、ターミナル起動のたびにbashrcを読み込むようになる。
source /opt/openfoam6/etc/basic
試しに、適当なチュートリアルをコピーして計算してみる。
cp -r /opt/openfoam6/tutorials/incompressible/simpleFoam/motorBike/ .
cd motorBike
./Allrun
計算が開始される。
###Google Cloud経由でデータを移動
計算結果はインスタンス上に保存されるため、
そのままではCUI上でしか計算結果を見ることができない。
(数値の確認は可能だが、流れの可視化は厳しい)
一旦、Google Cloudを経由してローカル環境に落とす必要がある。
Google Cloud上の操作をターミナル上から行うために、gsutilをインストールする。
gcloud Auth login
を入力するとGoogleのアカウント認証画面に遷移する。
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud Auth login
接続できているか確認。
gsutil ls #すべてのバケットを表示
gsutil ls gs://[バケット名] #バケット内のファイルを表示
先程計算したフォルダをGoogleCloudに移動させる。
gsutil cp -r ./motorBike gs://[バケット名]
ローカル環境にダウンロードする。
gsutil cp -r gs://[バケット名]/motorBike .
あとは、ローカル環境上で可視化、結果整理等行う。
###追記(OpenCFD版のインストール)
OpenFOAM-v1912を入れようとしたところ少しハマる。
基本的には下記の通りだが、gcpにデフォルトでmakeが入っていないようで、sudo make install
で解決した。
(エラーメッセージはちゃんと読むべき...)
https://www.openfoam.com/download/install-source.php
sudo apt-get update
sudo apt-get install build-essential tmux emacs git
# ソースをダウンロード
wget "https://sourceforge.net/projects/openfoam/files/v1912/OpenFOAM-v1912.tgz"
wget "https://sourceforge.net/projects/openfoam/files/v1912/ThirdParty-v1912.tgz"
tar -xzf OpenFOAM-v1912.tgz
tar -xzf ThirdParty-v1912.tgz
# OpenFOAMフォルダを作成
mkdir OpenFOAM
mv OpenFOAM-v1912 OpenFOAM/
mv ThirdParty-v1912 OpenFOAM/
# 追加インストール
sudo apt install libopenmpi-dev
sudo apt-get install build-essential flex bison cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev
sudo apt install qt5-default libqt5x11extras5-dev libqt5help5 qtdeclarative5-dev qttools5-dev libqtwebkit-dev freeglut3-dev libqt5opengl5-dev texinfo
sudo apt-get install libscotch-dev libcgal-dev
# コンパイル
source ~/OpenFOAM/OpenFOAM-v1912/etc/bashrc
foamSystemCheck
foam
./Allwmake -j -s -l
#まとめ
環境整備
試計算、データコピーまで