Google ColaboratoryでPySPHを使用する


Google ColaboratoryでPySPHを使用する


2020/06/25現在、この方法はなぜかうまくいきません。


Google ColaboratoryでPySPHを使って流体シミュレーションのテストを
行ってみたのでまとめ

前提知識

PySPH

Pythonで利用可能なSPH法(Smoothed Particle Hydrodynamics Method)のライブラリ。

現在の最新バージョンはv1.0b1であり、pipによってインストールされるstableバージョンv1.0a6は古く、Python3.4までしか対応していない。そのため、pipを使うときに注意が必要。

Google Colaboratory

Google Colaboratoryの無料GPU環境を使ってみた より

Google Colaboratoryは、Jupyter Notebookをベースとした、Googleの仮想マシン上で動くPython実行環境です。無料であり、Googleアカウントさえあれば、インストール等の作業に手間を取られることなく、すぐにコードを実行することができます。

流体計算を行う

Colaboratoryの設定

流体計算にGPUを使いたいが、利用し始めてすぐの段階ではGPUは利用できない状態になっている。
Google Colaboratoryの無料GPU環境を使ってみた を参考に設定を変更。

ランタイム->
ランタイムのタイプを変更->
ハードウェアアクセラレータをGPUに

PySPHのインストール

2020/05/09現在、エラーを起こさずインストールする方法はこんな感じ

!pip install pyopencl numpy-stl pytest-mpl
!pip install https://github.com/pypr/compyle/zipball/master
!pip install https://github.com/pypr/pysph/zipball/master

楕円液滴を計算してみる

PySPHのチュートリアルにあるように、OpenCLを使って楕円液滴を計算。
どのGPUを使うか聞かれるが、Enterを押しておけば問題ない。

!pysph run elliptical_drop --opencl

結果の出力

/content/elliptical_drop_output/comparison.pngが生成されたようなので表示。

from IPython.display import Image,display_png
display_png(Image("/content/elliptical_drop_output/comparison.png"))

出力ファイルをローカルPCに保存

参考:Colaboratoryのデータの入出力まとめ

from google.colab import files
files.download('/content/elliptical_drop_output/comparison.png')

出力ファイルをGoogleDriveに保存

#認証などの前準備
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

#ファイルのコピー
upload_file = drive.CreateFile()
upload_file.SetContentFile("/content/elliptical_drop_output/comparison.png")
upload_file.Upload()