Paraviewを用いた3Dデータ表示

ここでは、Paraviewを用いてR2D2の計算結果を三次元表示する方法を説明する。

データ準備

すでに計算を実行していて、何らかのデータが準備できている状況を想定する。 データをParaviewで扱うためにVTKフォーマットに変換する。 変換後に用意するべきデータは

  • ある物理量の三次元データ

  • ある物理量の :\tau=1 でのデータ

それぞれのデータのためにR2D2 Pythonでは以下の関数が用意してある。

R2D2.vtk.write_3D(qq, x, y, z, file, name)

3次元のスカラー量をVTKフォーマットで出力するための関数

パラメータ:
  • qq (float) -- 出力したい物理量の3次元numpy配列

  • x (float) -- x方向の座標

  • y (float) -- y方向の座標

  • z (float) -- z方向の座標

  • file (str) -- 出力先のVTKフォーマットの名前

  • name (str) -- Paraviewで管理するために用いる出力した物理量の名前

R2D2.vtk.write_vtk.write_3D_vector(qx, qy, qz, x, y, z, file, name)

3次元のベクトル量をVTKフォーマットで出力するための関数

パラメータ:
  • qx (float) -- x方向のベクトルの3次元numpy配列

  • qy (float) -- y方向のベクトルの3次元numpy配列

  • qz (float) -- z方向のベクトルの3次元numpy配列

  • x (float) -- x方向の座標

  • y (float) -- y方向の座標

  • z (float) -- z方向の座標

  • file (str) -- 出力先のVTKフォーマットの名前

  • name (str) -- Paraviewで管理するために用いる出力した物理量の名前

R2D2.vtk.write_optical_surface(qq, height, y, z, file, name)

\tau=1 での2次元データを出力するための関数

パラメータ:
  • qq (float) -- 出力したい物理量の2次元配列

  • height (float) -- \tau=1 の高さの情報。self.qt['he'] を出力することが想定されている。

  • y (float) -- y方向の座標

  • z (float) -- z方向の座標

  • file (str) -- 出力先VTKフォーマットの名前

  • name (str) -- Paraviewで管理するために用いる出力した物理量の名前

例えば、以下のようにして実行する

run init # 初期設定
d.read_qq(100) # 100番目の3次元データを読込
bb = sqrt(d.qq['bx']**2 + d.qq['by']**2 + d.qq['bz']**2) # 磁場の強さを計算
d.read_tau(100) # 100番目のtau=1の2次元データを読込

R2D2.vtk.write_3D(bb,x,y,z,'bb.vtk','bb')
# 変数名をbbとしてファイル名bb.vtkに3次元データを出力
R2D2.vtk.write_optical_surface(d.qt['in'],d.qt['he'],y,z,'in.vtk','in')
# 変数名をinとしてファイル名in.vtkに2次元データを出力

Paraviewを用いて3次元表示

Paraviewのサイト からParaviewをダウンロード。Windows, Linux, macOSのそれぞれのソフトウェアがあるのでインストール方法は各自確認すること。ここでは、macOSでの利用方法を示すが、確認している限りは、Linuxでもほとんど同じ。ここでは非常に簡単にParaviewの使い方を説明する。詳しくはParaviewの公式マニュアルなどを読むこと。

  1. まず右上のファイルアイコンをクリック

    _images/paraview01.png
  2. Pythonで生成したファイルを選択。2次元, 3次元ファイルどちらも選択する。一個一個選択しても良いし、一度に選択しても良い。時系列データの時は、すべてを一度に選択するとアニメーションを作りやすい。

    _images/paraview02.png
  3. Applyをクリック。選択した二つのデータが表示される。

    _images/paraview03.png
  4. 2次元データの方は、すぐに面として表示されるが、三次元データは表示方法を選ぶ必要がある。

    _images/paraview04.png
  5. 三次元データのボリュームレンダリングが行いたいので、Volumeを選ぶ。

    _images/paraview05.png
  6. 三次元データのボリュームレンダリングが表示されるので、便宜描画を回転させるなどして、解析する。

    _images/paraview06.png

最終更新日:2024年04月05日