• 検索結果がありません。

ParaView講習_オープンCAE講習会@秋田

N/A
N/A
Protected

Academic year: 2021

シェア "ParaView講習_オープンCAE講習会@秋田"

Copied!
52
0
0

読み込み中.... (全文を見る)

全文

(1)

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

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

(2)

講習の概要

2

ParaViewの使用未経験者・初心者を対象として、

ParaViewの基本的な操作方法から、等値面図やベクトル図等の可

視化図の作成方法、Pythonスクリプトを利用した、可視化処理の自

動化についての講習を行います

(3)

講習の内容

3

2. マウス・キー操作のレコーディング機能(トレース機能)を用いた

操作の自動化手法(30分)

1. ParaViewの基本的な使用方法

操作、データ入力、面塗り、コンター、ベクトル図の作成(60分)

(4)

配布データについて

4

ディレクトリ名

説明

cavity

実習作業用データ(Cavity)

cavity_orig

実習用データ(Cavity)のオリジナル

誤作動からの復旧用

データ形式はVTK形式

(5)

講習PC環境について

5

ParaView Version : 5.0.1

インストール方法

Windows版 以下のURLから入手可能 MacOS版

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

(6)

ParaViewの特徴

6

マルチブロック 入力可能なデータ形式が豊富 AMR 構造格子 非構造格子 データ構造 商用・非商用アプリケーションのデータ形式に対応

ANSYS Dyna3D EnSight FLUENT LSDYNA VTK NASTRAN OpenFOAM Plot3D Tecplot データ操作・処理

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

(7)

7

ParaViewの基本的な使用方法

(8)

8

2次元Cavity流れ

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

可視化対象について

(9)

ParaViewのインターフェース

9

Menu Bar Toolbar Pipeline Browser Advanced Toggle 3D View

(10)

10

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

可視化データ読み込み

cavity.vtkを選択しOKをクリック 左サイドウインドウ : Pipeline Browserにcavityが表示される

(11)

11

Applyボタン(緑)を押す

(12)

12

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

(13)

13

操作:メッシュの確認

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

(14)

マウス操作

14

ドラッグ Shift + ドラッグ 2軸回転 平行移動 拡大・縮小 1軸回転 平行移動 ※ホイール操作は拡大・縮小 2軸回転 Ctrl + ドラッグ 拡大・縮小 2軸回転 拡大・縮小 メニューバー:[Edit]-[Settings]-[Cameras]タブでボタンの割り当てを変更可能

(15)

カメラ操作

15

Toolbarのボタン群でカメラを操作できる モデル全体を 画面に合わせる Zoom to Data 選択範囲をズーム カメラを座標軸に沿わせる

(16)

16

Coloringで◆ pを選択する Properties内のRepresentation を Surface にする ColoringでRescaleを押す Coloringでshowを押す (左サイドウインドウを下にスクロールすることで 見つけることができます)

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

(17)

-17

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

を選択する

①Choose presetを選択

②Blue to Red Rainbowを選択

③Applyを選択 ④closeを選択

(18)

-18

メニューバーから

を選択する

(19)

-19

画像ファイルの作成

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

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

(20)

20

アニメーションの作成

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

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

静止画連番データ(ex. animation.0000.png, animation.0001.png, ・・・)が作成 動画データはavi(Windows, MacOS版), ogv(Linux版)が作成可能

(21)

21

設定の保存と読み込み

可視化の設定を保存したり、読み込んだりするには、

メニュー バー[File] の [Save State] と [Load State] を使用する 拡張子はpvsm

(22)

22

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

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

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

操作:ParaViewを初期化

(23)

23

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

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

③ Properties内の設定を以下のようにする ② メニューバーからGlyphアイコンをクリック

(24)

24

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

(25)

25

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

-スライス面の作成-① Pipeline Browser内でcavity.vtkが選択されていることを確認 ③ Properties内でZ NormalをクリックしApplyをクリック ② メニューバーからsliceアイコンをクリック 赤枠を消すには show planeのチェックを外す

(26)

26

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

① Pipeline Browser内でSlice1を選択

③ Properties:[Contour By], [Coloring]で pを選択 ② メニューバーからcontourアイコンをクリック 3. Stepsは10に設定してOKをクリック ④ Isosurfacesで以下の順序で操作 1 2 ⑤ Applyをクリック ⑥ Pipeline Browser内でSlice1を表示する

(27)

27

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

(28)

28

紹介:データ抽出

(29)

29

紹介:スプレッドシート

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

(30)

30

マウス・キー操作のレコーディング機能(トレース機能)

を用いた操作の自動化手法

(31)

31

2-1 圧力サーフェス表示操作を

(32)

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スクリプトとして書き出す

(33)

33

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

2. ファイルを選択

マクロファイルは

/home/user/.config/ParaView/Macros/

に保存される

(34)

34

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

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

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

操作:ParaViewを初期化

(35)

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時にトレース内容が一括して 書き込まれる

操作:トレースの実行

(36)

36

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

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

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

(37)

37

1. メニューバーから[Edit]-[Reset Session]を選択しParaViewを初期化する 2. VTKファイルを開く 3. Applyボタン(緑)を押す 4. メニューバーから[Macros]-[p_countour]を選択

操作:マクロ実行

(38)

38

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

(39)

39

#### import the simple module from the paraview

from paraview.simple import *

#### disable automatic camera reset on 'Show'

paraview.simple._DisableFirstRenderCameraReset() 1 2 3 4 5

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

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

p_contour.py

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

(40)

40

p_contour.py

# get active source.

caivtyvtk = GetActiveSource()

# get active view

renderView1 = GetActiveViewOrCreate('RenderView')

# uncomment following to set a specific view size # renderView1.ViewSize = [1071, 674]

# get display properties

caivtyvtkDisplay = Show(cavityvtk, renderView1) 6 7 8 9 10 11 12 13 14 15

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

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

renderView1.ViewSizeはコメントされている

サイズの数値はトレース時のウインドウにサイズに依存

GetActiveSource():アクティブなソースを取得する

caivtyvtkという名前で利用

GetDisplayProperties() :ディスプレイ設定を取得

caivtyvtkDisplayという名前で利用

(41)

41

p_contour.py

# trace defaults for the display properties.

cavityvtkDisplay.ColorArrayName = [None, ''] cavityvtkDisplay.GlyphType = 'Arrow' cavityvtkDisplay.ScalarOpacityUnitDistance = 0.01924175606617764 cavityvtkDisplay.SetScaleArray = ['POINTS', 'p'] cavityvtkDisplay.ScaleTransferFunction = 'PiecewiseFunction' cavityvtkDisplay.OpacityArray = ['POINTS', 'p'] cavityvtkDisplay.OpacityTransferFunction = 'PiecewiseFunction' 16 17 18 19 20 21 22 23

表示する変数の定義

(42)

42

p_contour.py

# set scalar coloring

ColorBy(cavityvtkDisplay, ('POINTS', 'p'))

# rescale color and/or opacity maps used to include current data range

cavityvtkDisplay.RescaleTransferFunctionToDataRange(True) 28 29 30 31 32

変数pの設定(1)

POINTS(点データ)、

p(変数:圧力)に対してのカラー表示

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

(43)

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 37 38 39 40 41 42 43 44 45 カラーマップの対応 RGBPoints= [値1, R, G, B, 値2, R, G, B, ・・・・] ただし現時点のカラーマップはCool to Warm に対応しているので注意 言い換えると、トレース出力は、実際の描画に不要な 記述が含まれている

変数pの設定(2)

pLUTという名前で利用

(44)

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 legend

aOpenFOAMDisplay.SetScalarBarVisibility(renderView1, True) 47 48 34 35

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

aOpenFOAMDisplay.SetScalarBarVisibility :

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

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

(45)

45

p_contour.py

#### saving camera placements for all active views

# current camera placement for renderView1

renderView1.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(...).

50 51 52 53 54 55 56 57 58 59

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

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

(46)

46

トレース機能を利用した

可視化操作の自動化手法についての紹介

• 圧力サーフェスの表示の自動化を行った

• マクロ登録機能の紹介

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

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

解説を行った

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

ないことに注意する

2章まとめ

(47)

47

(48)

48

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

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

(49)

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.

>>>

(50)

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)

(51)

51

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

(52)

52

参考資料

ParaView Guide

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

ParaView Tutorials

以下のURLから入手可能

参照

関連したドキュメント

ZoomのHP https://zoom.us にアクセスし、画面右上の「サインアップは無料です」をクリッ

オープン後 1 年間で、世界 160 ヵ国以上から約 230 万人のお客様にお越しいただき、訪日外国人割合は約

ポンプの回転方向が逆である 回転部分が片当たりしている 回転部分に異物がかみ込んでいる

一方で、自動車や航空機などの移動体(モービルテキスタイル)の伸びは今後も拡大すると

事故時運転 操作手順書 事故時運転 操作手順書 徴候ベース アクシデント マネジメント (AM)の手引き.

そして会場は世界的にも有名な「東京国際フォーラ

[r]

(A-2 級) 起動・停止 屋外設置位置 スイッチ操作 MUWC 接続口外側隔離弁 1(A) 弁閉→弁開 屋外接続口位置 手動操作 MUWC 接続口外側隔離弁 2(A) 弁閉→弁開 屋外接続口位置