paraview - システム創成工学科 機械科学コース...

52
オープンCAE講習会@秋田 トレーニング講習資料 2017/1/28 中山 勝之 (オープンCAE勉強会@富山) ParaView 講習

Upload: duongthuy

Post on 26-Mar-2018

238 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

オープンCAE講習会@秋田トレーニング講習資料

2017/1/28

中山勝之 (オープンCAE勉強会@富山)

ParaView講習

Page 2: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

講習の概要

2

ParaViewの使用未経験者・初心者を対象として、ParaViewの基本的な操作方法から、等値面図やベクトル図等の可視化図の作成方法、Pythonスクリプトを利用した、可視化処理の自動化についての講習を行います

Page 3: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

講習の内容

3

2. マウス・キー操作のレコーディング機能(トレース機能)を用いた操作の自動化手法(30分)

1. ParaViewの基本的な使用方法操作、データ入力、面塗り、コンター、ベクトル図の作成(60分)

Page 4: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

配布データについて

4

ディレクトリ名 説明

cavity 実習作業用データ(Cavity)

cavity_orig 実習用データ(Cavity)のオリジナル誤作動からの復旧用

データ形式はVTK形式

Page 5: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

講習PC環境について

5

ParaView Version : 5.0.1

インストール方法

Windows版

以下のURLから入手可能

MacOS版

http://www.paraview.org/download/

Page 6: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

ParaViewの特徴

6

マルチブロック

入力可能なデータ形式が豊富

AMR

構造格子

非構造格子

データ構造

商用・非商用アプリケーションのデータ形式に対応

ANSYS Dyna3D EnSight FLUENT LSDYNA VTK NASTRAN OpenFOAM Plot3D Tecplot

データ操作・処理

面塗り コンター ベクター表示 データ抽出 バッチ処理

オープンソース。無料で使用可能。

Page 7: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

7

ParaViewの基本的な使用方法

ファイル入力から可視化画像作成まで

Page 8: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

8

2次元Cavity流れ

OpenFOAM Users-Guide 2.1節の内容(サーフェス表示)を可視化する

可視化対象について

http://cfd.direct/openfoam/user-guide/cavity/

Page 9: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

ParaViewのインターフェース

9

Menu Bar

Toolbar

Pipeline Browser

Advanced Toggle

3D View

Page 10: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

10

をクリック。または[File]-[open]をクリック

Toolbarから

可視化データ読み込み

cavity.vtkを選択しOKをクリック

左サイドウインドウ : Pipeline Browserにcavityが表示される

Page 11: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

11

Applyボタン(緑)を押す

操作:モデルの表示

Page 12: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

12

Surfaceをクリックすると他の表示形式が選択できるので、この中からSurface With Edgesを選択

操作:メッシュの確認

Page 13: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

13

操作:メッシュの確認

左側のウインドウからinformationタブをクリックすると計算データの情報(セル数, 変数値の範囲など)が表示されます。

Page 14: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

マウス操作

14

ドラッグ Shift + ドラッグ

2軸回転 平行移動 拡大・縮小 1軸回転 平行移動

※ホイール操作は拡大・縮小

2軸回転

Ctrl + ドラッグ

拡大・縮小 2軸回転 拡大・縮小

メニューバー:[Edit]-[Settings]-[Cameras]タブでボタンの割り当てを変更可能

Page 15: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

カメラ操作

15

Toolbarのボタン群でカメラを操作できる

モデル全体を画面に合わせる

Zoom to Data

選択範囲をズーム カメラを座標軸に沿わせる

Page 16: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

16

Coloringで◆ pを選択する

Properties内のRepresentationを Surfaceにする

ColoringでRescaleを押す

Coloringでshowを押す(左サイドウインドウを下にスクロールすることで見つけることができます)

操作:圧力サーフェスの表示(1)-圧力表示に変換 -

Page 17: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

17

右サイドウインドウにColor Map Editorが表示されていることを確認する無いならば

を選択する

①Choose presetを選択

②Blue to Red Rainbowを選択

③Applyを選択

④closeを選択

操作:圧力サーフェスの表示(2)-カラーマップ変更 -

Page 18: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

18

メニューバーから

を選択する

操作:圧力サーフェスの表示(3)-カラーバー表示 -

Page 19: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

19

画像ファイルの作成

① [File]—[Save Screenshot..] ② 画面サイズ等を指定してOKをクリック

③ ファイル名を指定してOKをクリック

画像ファイル(jpg, tiff, png, bmp,ppm)を作成可能

Page 20: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

20

アニメーションの作成

① [File]—[Save Animation..] ② フレームレート等を指定してOKをクリック

③ ファイル名を指定してOKをクリック

静止画連番データ(ex. animation.0000.png, animation.0001.png, ・・・)が作成

動画データはavi(Windows, MacOS版), ogv(Linux版)が作成可能

Page 21: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

21

設定の保存と読み込み

可視化の設定を保存したり、読み込んだりするには、メニューバー[File] の [Save State] と [Load State] を使用する拡張子はpvsm

Page 22: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

22

1. メニューバーから[Edit]-[Reset Session]を選択しParaViewを初期化する

2. 可視化ファイルを開く

3. Applyボタン(緑)を押す

操作:ParaViewを初期化

Page 23: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

23

① Pipeline Browser内でcavity.vtkが選択されていることを確認

操作:速度ベクトルの表示(1)

③ Properties内の設定を以下のようにする

②メニューバーからGlyphアイコンをクリック

Page 24: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

24

操作:速度ベクトルの表示(2)

Page 25: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

25

操作:圧力コンターの表示(1) -スライス面の作成-

① Pipeline Browser内でcavity.vtkが選択されていることを確認

③ Properties内でZ NormalをクリックしApplyをクリック

②メニューバーからsliceアイコンをクリック

赤枠を消すにはshow planeのチェックを外す

Page 26: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

26

操作:圧力コンターの表示(2)

① Pipeline Browser内でSlice1を選択

③ Properties:[Contour By], [Coloring]で pを選択

②メニューバーからcontourアイコンをクリック

3. Stepsは10に設定してOKをクリック

④ Isosurfacesで以下の順序で操作

1

2

⑤ Applyをクリック

⑥ Pipeline Browser内でSlice1を表示する

Page 27: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

27

操作:圧力コンターの表示(3)

Page 28: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

28

紹介:データ抽出

Page 29: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

29

紹介:スプレッドシート

① 3DviewのSplitボタンをクリック

② SpreadSheet Viewボタンをクリック

Page 30: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

30

マウス・キー操作のレコーディング機能(トレース機能)を用いた操作の自動化手法

Page 31: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

31

2-1圧力サーフェス表示操作をトレース機能を用いてマクロ登録する

Page 32: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

32

1. [Tools] – [Start Trace]を選択

2. GUIで操作を実行

3. [Tools] – [Stop Trace]を選択

スクリプトが生成され、スクリプトエディタに表示される

[File] - [Save]で保存

シェルの読み込み

1. [Tools] – [Python Shell]を選択

2. Run Scriptを選択しファイルを選択

トレース操作

※トレース実行時にはStop Traceに変更される

ParaViewのGUI上で行った操作をPythonスクリプトとして書き出す

Page 33: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

33

1. メニューバー[Macros] – [Add New Macro..]を選択

2. ファイルを選択

マクロファイルは/home/user/.config/ParaView/Macros/に保存される

Pythonスクリプトをマクロ登録

Page 34: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

34

1. メニューバーから[Edit]-[Reset Session]を選択しParaViewを初期化する

2. 可視化ファイルを開く

3. Applyボタン(緑)を押す

操作:ParaViewを初期化

Page 35: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

35

1. [Tools] → [Start Trace]を選択

3. 操作:圧力サーフェスの表示(1)ー(3)(スライド17-19)を実行

2. Trace Optionsはany *modified* propertiesを選択し、他のチェックをONにしてOKをクリック

4. [Tools] → [Stop Trace]を選択しトレース終了

Properties To Trace On Createオプション

all properties

• 可能な限りすべての情報を記述する• 他のユーザー設定があっても一貫した状態を確保できるが、非常に冗長な出力となり読みにくい

any *modified* properties

• デフォルト設定から変更されていない記述は無視される• ほとんどの利用で適したオプション

only *user-modified* properties

• ユーザーが変更した設定のみ記述される• トレースの動作は内部設定に依存する

Color maps, color bar etc. オプション

• チェックするとカラーバー、カラーマップ、注釈(anotation)の情報を記述する

Miscellaneousオプション

• チェックするとトレース記述時Script Editorに書き込まれる• チェックがない場合、Stop trace時にトレース内容が一括して書き込まれる

操作:トレースの実行

Page 36: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

36

5. Script Editorが表示されるので、[File] - [save as]で保存

ファイル名はp_contour.pyで保存する

6. マクロ登録はメニューバーから[Macros] - [Add new macro]を選択し、 p_contour.pyを選択することで登録される

操作:スクリプトの保存とマクロ登録

Page 37: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

37

1. メニューバーから[Edit]-[Reset Session]を選択しParaViewを初期化する

2. VTKファイルを開く

3. Applyボタン(緑)を押す

4. メニューバーから[Macros]-[p_countour]を選択

操作:マクロ実行

Page 38: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

38

2-2圧力サーフェス表示操作のトレース内容を確認する

Page 39: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

39

#### import the simple module from the paraviewfrom paraview.simple import *#### disable automatic camera reset on 'Show'paraview.simple._DisableFirstRenderCameraReset()

12345

Python コードでは、先頭にimportするライブラリを指定する

ParaViewの操作に必要なライブラリをインポート

p_contour.py

ParaViewライブラリのインポート

Page 40: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

40

p_contour.py

# get active source.caivtyvtk = GetActiveSource()

# get active viewrenderView1 = GetActiveViewOrCreate('RenderView')# uncomment following to set a specific view size# renderView1.ViewSize = [1071, 674]

# get display propertiescaivtyvtkDisplay = Show(cavityvtk, renderView1)

6789101112131415

アクティブソース・ビュー・ディスプレイ設定の取得

renderView1をアクティブなウインドウに指定

renderView1.ViewSizeはコメントされているサイズの数値はトレース時のウインドウにサイズに依存

GetActiveSource():アクティブなソースを取得するcaivtyvtkという名前で利用

GetDisplayProperties() :ディスプレイ設定を取得caivtyvtkDisplayという名前で利用

Page 41: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

41

p_contour.py

# trace defaults for the display properties.cavityvtkDisplay.ColorArrayName = [None, '']cavityvtkDisplay.GlyphType = 'Arrow'cavityvtkDisplay.ScalarOpacityUnitDistance = 0.01924175606617764cavityvtkDisplay.SetScaleArray = ['POINTS', 'p']cavityvtkDisplay.ScaleTransferFunction = 'PiecewiseFunction'cavityvtkDisplay.OpacityArray = ['POINTS', 'p']cavityvtkDisplay.OpacityTransferFunction = 'PiecewiseFunction'

1617181920212223

表示する変数の定義

Page 42: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

42

p_contour.py

# set scalar coloringColorBy(cavityvtkDisplay, ('POINTS', 'p'))

# rescale color and/or opacity maps used to include current data rangecavityvtkDisplay.RescaleTransferFunctionToDataRange(True)

2829303132

変数pの設定(1)

POINTS(点データ)、p(変数:圧力)に対してのカラー表示

データ内での最大・最小値でリスケールを行う

Page 43: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

43

p_contour.py

# get color transfer function/color map for 'p'pLUT = GetColorTransferFunction(‘p’) #pに対するルックアップテーブルを取得

pLUT.RGBPoints = [-4.366660118103027, 0.231373, 0.298039, 0.752941,0.24093985557556152, 0.865003, 0.865003, 0.865003, 4.84853982925415, 0.705882,0.0156863, 0.14902]pLUT.ScalarRangeInitialized = 1.0

# get opacity transfer function/opacity map for 'p'pPWF = GetOpacityTransferFunction('p')pPWF.Points = [-4.366660118103027, 0.0, 0.5, 0.0, 4.84853982925415, 1.0, 0.5,0.0]pPWF.ScalarRangeInitialized = 1

3738

39

4041424344

45

カラーマップの対応RGBPoints=[値1, R, G, B, 値2, R, G, B, ・・・・]ただし現時点のカラーマップはCool to Warmに対応しているので注意

言い換えると、トレース出力は、実際の描画に不要な記述が含まれている

変数pの設定(2)

pLUTという名前で利用

Page 44: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

44

p_contour.py

# Apply a preset using its name. Note this may not work as expected when presets have duplicate names.pLUT.ApplyPreset('Blue to Red Rainbow', True)

# show color bar/color legendaOpenFOAMDisplay.SetScalarBarVisibility(renderView1, True)

47

48

3435

pLUT.ApplyPreset:プリセットカラーマップの設定

aOpenFOAMDisplay.SetScalarBarVisibility :

カラーバー表示設定 (True/False)

カラーマップ・カラーバーの設定

Page 45: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

45

p_contour.py

#### saving camera placements for all active views

# current camera placement for renderView1renderView1.CameraPosition = [0.05000000074505806, 0.05000000074505806, 0.27888724573938806]renderView1.CameraFocalPoint = [0.05000000074505806, 0.05000000074505806, 0.004999999888241291]renderView1.CameraParallelScale = 0.07088723543695315

#### uncomment the following to render all views# RenderAllViews()# alternatively, if you want to write images, you can use SaveScreenshot(...).

50515253

54

5556575859

以下の記述はStop trace実行時に記述される

Adjust Camera内のCamera Positionsの内容が記述されている

カメラ位置の設定・その他

Page 46: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

46

トレース機能を利用した可視化操作の自動化手法についての紹介

• 圧力サーフェスの表示の自動化を行った• マクロ登録機能の紹介

トレース機能が生成するpython スクリプトの解説

• ファイル操作と、記述されたスクリプトの対応関係についての解説を行った

• トレース機能の出力するスクリプトは必要最小限な記述ではないことに注意する

2章まとめ

Page 47: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

47

F A Q etc...

Page 48: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

48

不明な関数があった場合 - Python Shellから探す方法- (1)

メニューバーからTools → Python Shellを選択することでPython Shellが起動

help(関数名)でEnterを押すことで内容を確認することができる

Page 49: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

49

help(関数名):簡易な記述で表示される

Python 2.7.12 (default, Jul 1 2016, 15:12:24) [GCC 5.4.0 20160609] on linux2>>> from paraview.simple import *>>> help(GetActiveSource) ⏎Help on function GetActiveSource in module paraview.simple:

GetActiveSource().. _GetActiveSource:Returns the active source.

>>>

不明な関数があった場合 - Python Shellから探す方法- (2)

Page 50: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

50

help(関数名()):詳細な記述が表示される

Python 2.7.12 (default, Jul 1 2016, 15:12:24) [GCC 5.4.0 20160609] on linux2>>> from paraview.simple import *>>> help(GetActiveSource()) ⏎Help on PVFoamReader in module paraview.servermanager object:

class PVFoamReader(SourceProxy)| Proxy for a server side object. A proxy manages the lifetime of| one or more server manager objects. It also provides an interface| to set and get the properties of the server side objects. These| properties are presented as Python properties. For example,| you can set a property Foo using the following::| | proxy.Foo = (1,2)| | or| ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

不明な関数があった場合 - Python Shellから探す方法- (3)

Page 51: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

51

不明な関数があった場合 - webから探す方法 -

http://www.paraview.org/ParaView3/Doc/Nightly/www/py-doc/index.html

Page 52: ParaView - システム創成工学科 機械科学コース …hirose/ockitatohoku/ref/nakayama...ParaViewの特徴 6 マルチブロック 入力可能なデータ形式が豊富

52

参考資料

ParaView Guide

http://www.paraview.org/documentation/

ParaView Tutorials

以下のURLから入手可能