Help us understand the problem. What is going on with this article?

OpenFOAMをGCPにインストール

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 ホスト名のみで接続できるので便利。

config
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を読み込むようになる。

.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

まとめ

環境整備
試計算、データコピーまで

nmmg0031785
機械メーカー開発職
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away