ただし空気抵抗は無視しないものとする

流体解析の勉強の題材として日頃気になったことをまとめたり確かめたりしていく予定です。OSSしか使わないつもりです。

Jupyter LabでParaViewを扱う

はじめに

 Jupyter Lab上でParaViewをimportするためのインストール手順と例を紹介します。

f:id:inabower:20190105163242g:plain

実行環境

  • Ubuntu 18.04
  • Python 2.7(Anaconda 4.5.12)
  • OpenFOAM v1812 (ParaView 5.6.0)

インストール

以下の手順でインストールしていきます。

$ conda install -c conda-forge nodejs
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
$ conda create -n paraview python=2.7 anaconda
$ conda activate paraview
(paraview)$ conda install -c conda-forge paraview
(paraview)$ jupyter kernelspec install-self --user

これによりparaviewがインストールされた環境がJupyterのKernelとして登録されます。

【追記】この方法でインストールしても描画の際にうまく動作しない場合がありました。下の記事で別の方法も記載しておりますのでそちらをお試しください。

inabower.hateblo.jp

下準備

適当なディレクトリで新しいターミナルを開きJupyterLabを起動します。

$ jupyter lab

f:id:inabower:20190105214649p:plain

ここでparaviewをimportできれば準備完了です。

[ ] : from paraview.simple import *

活用例

今回は以下のコマンドを実行したディレクトリを使用します。

cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily ./
cd ./pitzDaily
foamRunTutorials
cd ..
jupyter lab

 そこでまず以下のようにOpenFOAMのデータを読み取ります。
この辺りのやり方は以下の方法により把握することができます。

  • 普通にParaViewで描画した後に
    • Save State で出力される.pyスクリプト
    • Start Trace(Excelで言うところの『マクロの保存』)

 "paraFoam"を行った場合はOpenFOAMケースがOpenFOAMReaderではなくPVFoamReaderというプラグインにより読み込まれるため注意してください。結構項目が変わります。

 次に以下のような関数を定義します。

 この関数は以下のように使用します。
 関数の中ではまずレンダリングの設定を行いレンダラーを作成しSaveScreenShotでpngに保存し、JupyterLab内で表示します。  png保存のタイミングで画像がポップアップで表示されるためレンダラーのオブジェクトを最後にdelしています。前まではUseOffScreenRenderingというパラメーターをTrueにしていたらこの作業はなかったのですがParaView5.5からこのパラメーターがなくなってしまいました。現在対抗作を模索中です。(API Changes between ParaView versions — ParaView/Python 5.6.0-13-g04d2b0c4aa documentation

 この関数にJupyterのwidget機能を組み合わせると以下のようにちょっとだけインタラクティブな描画を行うことができます。

f:id:inabower:20190105163242g:plain

参考文献

Paraview :: Anaconda Cloud

PENGUINITIS - Python による Paraview の操作 (OpenFOAM 編)

ParaViewによる可視化中級編

Jupyter NotebookでOpenFOAMの結果をインタラクティブに可視化した - Qiita

Paraview Pythonのインストール - Qiita