AutodeskのXLBで流体シミュレーションを実行すると、計算結果をVTKファイルとして出力できます。
PNGは結果をすぐ確認するには便利ですが、VTKをParaViewで開くと、密度や流速の切り替え、カラーマップ調整、タイムステップの再生、画像・動画の書き出しなどができます。
本稿では、WSL2のUbuntu上に保存されたXLBのVTKファイルを、Windows版ParaViewから直接開いて可視化する手順を説明します。VTKをWindows側へ毎回コピーする必要はありません。
この記事でできること
- WSL2上のVTK出力フォルダをWindowsのエクスプローラーで開く
- Windows版ParaViewからWSL2上のVTKを直接読み込む
- XLBの
u_magnitudeを使って速度分布を表示する - 複数のVTKを時系列として再生する
- 可視化結果をPNGまたは動画として保存する
- 必要に応じて
u_xとu_yから速度ベクトルを作り、矢印で表示する
想定環境
画面名称と操作は、2026年9月時点のParaView 6.1系を基準にしています。細かなボタン配置はバージョンによって変わることがありますが、基本的な流れは同じです。
- Windows 11
- WSL2
- Ubuntu 24.04 LTS
- XLB
0.3.x - Windows版ParaView
- XLBの
examples/cfd/lid_driven_cavity_2d.py、または同等のラッパーを実行済み
ParaViewのダウンロード時は、Release CandidateやNightlyではなく、原則として最新の安定版を選びます。本稿執筆時に確認できる安定版はParaView 6.1.1です。
前提:XLBのVTKファイルが生成されていること
本稿では、XLBのLid-driven cavity exampleを次のような出力ディレクトリで実行したものとします。
~/src/XLB/runs/jax-quick
WSL2のUbuntuターミナルで、出力ファイルを確認します。
cd ~/src/XLB/runs/jax-quick
ls -lh *.vtk
次のような連番ファイルが表示されれば準備完了です。
lid_driven_cavity_0000000.vtk
lid_driven_cavity_0000100.vtk
lid_driven_cavity_0000199.vtk
ファイル名末尾の数値は、XLBがVTKを書き出したときのタイムステップです。
VTKファイルが見つからない場合は、XLBを実行したときのカレントディレクトリを確認してください。XLBのexampleは、特に出力先を変更しなければ実行時のカレントディレクトリへVTKとPNGを保存します。
1. Windows版ParaViewをインストールする
ParaViewの公式ダウンロードページを開きます。
Windows 64-bit向けの最新安定版をダウンロードします。インストーラー版とZIP版のどちらでも構いません。
インストーラー版は画面の案内に従ってインストールします。ZIP版を使用する場合は、任意のフォルダへ展開して、展開先にあるbin/paraview.exeを起動します。
2. WSL2のVTK出力フォルダをエクスプローラーで開く
UbuntuターミナルでVTKの出力ディレクトリへ移動します。
cd ~/src/XLB/runs/jax-quick
現在のディレクトリをWindowsのエクスプローラーで開きます。
explorer.exe .
末尾の.を忘れないでください。.は「現在のディレクトリ」を意味します。
エクスプローラーのアドレス欄には、環境によって次のようなUNCパスが表示されます。
\\wsl.localhost\Ubuntu-24.04\home\<Linuxユーザー名>\src\XLB\runs\jax-quick
または、次の形式で表示されることもあります。
\\wsl$\Ubuntu-24.04\home\<Linuxユーザー名>\src\XLB\runs\jax-quick
ディストリビューション名がUbuntuやUbuntu-22.04の場合は、その名前に置き換わります。
Windows形式のパスだけ確認したい場合は、WSL2上で次のコマンドも使用できます。
wslpath -w "$(pwd)"
なぜWindows側へコピーしなくてもよいのか
WSL2のLinuxファイルシステムは、Windowsから\\wsl$または\\wsl.localhost経由で参照できます。そのため、WindowsネイティブアプリケーションであるParaViewからも、WSL2上のVTKを直接開けます。
XLBのソースコードや計算途中のファイルは、/mnt/cではなく~/srcなどのWSL2側へ置いたままで問題ありません。Microsoftも、Linuxコマンドラインで扱うプロジェクトは、性能面からWSLファイルシステムへ保存することを推奨しています。
3. ParaViewでVTKを開く
ParaViewを起動し、次の順番で操作します。
- メニューの
File→Openを選択する - エクスプローラーで確認したWSL2のUNCパスを、
Look in欄またはパス欄へ貼り付ける -
lid_driven_cavity_...vtkを選択する -
OKを押す - 左側の
PropertiesパネルでApplyを押す
File → Openの代わりに、Ctrl + OでもOpen Fileダイアログを開けます。
ParaViewでは、ファイルを選択しただけではデータが描画されません。最後にApplyを押すことが重要です。
.vtkに使用するReaderの選択画面が表示された場合は、Legacy VTK Readerを選択します。通常は拡張子から自動選択されます。
4. u_magnitudeで速度分布を表示する
VTKを読み込んだ直後は、外形だけが表示されたり、単色で表示されたりすることがあります。次の設定を行います。
-
Pipeline Browserで読み込んだVTKを選択する -
RepresentationをSurfaceにする -
Coloringをu_magnitudeにする - カメラを
+Zまたは-Z方向へ向ける -
Reset Cameraを押す -
Rescale to Data Rangeを押す - 必要に応じて
Toggle Color Legend Visibilityでカラーバーを表示する
Lid-driven cavityはXY平面上の2次元計算なので、Z軸方向から見ると全体を正面から確認できます。
u_magnitudeは速度の大きさです。値が大きい領域と小さい領域を色で確認できるため、最初に表示する変数として適しています。
XLBのVTKに含まれる主な変数
Lid-driven cavity exampleでは、次のフィールドがVTKへ保存されます。
| 変数 | 意味 | 最初の確認での用途 |
|---|---|---|
rho |
密度 | 密度変動や計算の安定性を確認する |
u_x |
X方向の速度成分 | 左右方向の流れを確認する |
u_y |
Y方向の速度成分 | 上下方向の流れを確認する |
u_magnitude |
速度の大きさ | 流速分布を直感的に確認する |
これらはXLBの出力ではCell Dataとして保存されています。ParaViewはCell Dataをそのまま色付けできるため、u_magnitudeを表示するだけならフィルターの追加は不要です。
5. 表示を見やすく調整する
格子線も表示する
格子の構造を確認したい場合は、RepresentationをSurface With Edgesへ変更します。
64×64程度の小さな格子では見やすいですが、大規模格子では線が密集するため、通常はSurfaceの方が見やすくなります。
カラーマップを変更する
Edit Color Mapを開くと、カラーマップや数値範囲を調整できます。
プリセットを変更する場合は、Choose Presetから選択します。流速のような「小さい値から大きい値まで」を表す量には、連続的に明度が変化するカラーマップが適しています。
色が一色に見える場合
Rescale to Data Rangeを押し、現在のデータの最小値と最大値へ色範囲を合わせます。
タイムステップごとに色範囲を自動変更すると、同じ色でも時刻によって値が変わり、比較しにくくなることがあります。時系列を比較するときは、後述するRescale to Data Range over All Timestepsで全時刻共通の範囲を使用します。
6. 複数のVTKを時系列として読み込む
XLBが次のような連番VTKを出力している場合、ParaViewは通常、ファイルを自動的にグループ化します。
lid_driven_cavity_0000000.vtk
lid_driven_cavity_0000100.vtk
lid_driven_cavity_0000199.vtk
Open Fileダイアログでは、個々のファイルではなく、ひとまとまりのファイルシリーズとして表示された項目を選びます。
読み込み後にApplyを押すと、画面上部のVCRコントロールで次の操作ができます。
- 最初のタイムステップへ移動
- 1ステップ戻る
- 再生・停止
- 1ステップ進む
- 最後のタイムステップへ移動
ParaViewは連番を時系列として順番に読み込みます。ただし、ファイルシリーズから得られるParaView上の時間値は、必ずしもXLBの物理時間そのものを意味しません。ここでは「保存された計算状態を順番に再生するもの」と考えるのが安全です。
ファイルシリーズとしてまとまらない場合
Open Fileダイアログ右上にある、ファイルシリーズのグループ化を切り替えるボタンを確認します。グループ化が無効になっている場合は有効にしてから、ファイル一覧を確認してください。
最終結果だけ確認したい場合は、ファイルシリーズを展開し、末尾のタイムステップのVTKだけを選択して開くこともできます。
時系列全体で色範囲を固定する
アニメーションを比較しやすくするため、u_magnitudeを選択した状態でRescale to Data Range over All Timestepsを実行します。
この操作では、ParaViewが全タイムステップを読み、全体の最小値と最大値を計算します。ファイル数やデータ量が多い場合は時間がかかるため、小規模なexampleで使用するか、代表的な範囲を手動設定してください。
7. 可視化結果をPNGで保存する
表示を整えたら、次の操作で画像を保存できます。
-
File→Save Screenshotを選択する - ファイル形式にPNGを選択する
- 保存先とファイル名を指定する
-
Image Resolutionを設定する -
OKを押す
Qiitaへ掲載する画像では、たとえば次の解像度が扱いやすいです。
1600 x 1200
横長の画面構成なら、次のような解像度でもよいでしょう。
1920 x 1080
Save Screenshot Optionsでは、背景の透過や保存時だけのカラーパレット変更も設定できます。
8. アニメーションを保存する
連番VTKを読み込んでいる場合は、File → Save Animationから動画または連番画像を書き出せます。
Windows版では、環境に応じてMP4やAVIなどを選択できます。コーデックの違いによる問題を避けたい場合は、まずPNGの連番画像として保存する方法が確実です。
設定例です。
Frame Rate: 10〜30
Frame Stride: 1
Frame Strideを2にすると、1つおきのタイムステップを書き出します。
9. オプション:速度を矢印で表示する
XLBのVTKには、速度ベクトルが1つの配列としてではなく、u_xとu_yの2つのスカラー配列として保存されています。矢印で表示するには、ParaView上で2成分をベクトルへまとめます。
9.1 Cell DataをPoint Dataへ変換する
Pipeline BrowserでVTKを選択し、次を実行します。
Filters → Alphabetical → Cell Data to Point Data
Applyを押します。
9.2 Calculatorで速度ベクトルを作る
Cell Data to Point Dataを選択した状態で、次を実行します。
Filters → Alphabetical → Calculator
次のように設定します。
Result Array Name: velocity
u_x*iHat + u_y*jHat
Applyを押します。
iHatとjHatは、それぞれX方向とY方向の単位ベクトルです。これにより、velocityという2次元速度を含む3成分ベクトルが作られます。Z成分は0です。
9.3 Glyphで矢印を表示する
Calculatorを選択し、次を実行します。
Filters → Alphabetical → Glyph
主な設定を次のようにします。
Glyph Type: Arrow
Orientation Array: velocity
Scale Array: velocity
Applyを押します。
矢印が多すぎる場合は、表示するサンプル数を減らします。64×64格子なら、最初は500〜1,000本程度を目安にすると見やすくなります。
背景の速度分布も同時に表示したい場合は、Pipeline Browserで元データの目のアイコンをオンにし、背景をu_magnitudeで着色します。
トラブルシューティング
Applyを押しても何も表示されない
次を順番に確認します。
-
Pipeline Browserの目のアイコンがオンになっているか -
RepresentationがSurfaceになっているか -
+Zまたは-Z方向から見ているか -
Reset Cameraを押したか -
Coloringに存在する変数を選んでいるか
2次元データはZ方向の厚みがほぼないため、横方向から見ると線のように見える場合があります。
外枠しか表示されない
RepresentationがOutlineになっている可能性があります。Surfaceへ変更してください。
u_magnitudeが選択肢に出てこない
まずApplyを押して、データの読み込みを完了させます。その後、Pipeline BrowserでVTKのReaderを選び直してColoringを確認します。
それでも表示されない場合は、InformationパネルでCell Data Arraysを確認します。別のXLB exampleでは、保存される変数名が異なることがあります。
色がほとんど変化しない
Rescale to Data Rangeを押してください。タイムステップ全体で比較する場合は、Rescale to Data Range over All Timestepsを使用します。
VTKがファイルシリーズとして認識されない
Open Fileダイアログのファイルシリーズ・グループ化を有効にします。また、ファイル名が同じプレフィックスと連番で構成されていることを確認します。
良い例:
lid_driven_cavity_0000000.vtk
lid_driven_cavity_0000100.vtk
別シリーズと判定される可能性がある例:
cavity_start.vtk
cavity_final.vtk
ParaViewのOpen FileダイアログからWSL2が見えない
パス欄へ直接、次の形式を貼り付けます。
\\wsl$\Ubuntu-24.04\home\<Linuxユーザー名>\src\XLB\runs\jax-quick
または、Ubuntuターミナルで次を実行し、エクスプローラーからフォルダを開き直します。
explorer.exe .
Windows側でWSLディストリビューションが停止している場合は、PowerShellから起動します。
wsl -d Ubuntu-24.04
ディストリビューション名は、次のコマンドで確認できます。
wsl --list --quiet
WSL2上のファイルを直接開くと遅い
小規模なexampleでは通常問題ありませんが、大量のVTKや大きな3次元データでは、Windows側へ可視化対象だけコピーした方が扱いやすい場合があります。
Windows側に保存先を作成したうえで、必要なVTKだけコピーします。
mkdir -p /mnt/c/Users/<Windowsユーザー名>/Documents/XLB-vtk
cp lid_driven_cavity_*.vtk \
/mnt/c/Users/<Windowsユーザー名>/Documents/XLB-vtk/
ただし、XLBの計算そのものはWSL2側の~/srcなどで実行し、可視化用ファイルだけを必要に応じてコピーする運用がおすすめです。
ParaViewがVTKを読み込めない
View → Output Messagesを開き、Readerのエラーを確認します。
XLBの処理が途中で中断され、VTKが書き込み途中のまま残った場合は、そのファイルを削除してシミュレーションを再実行します。ファイルサイズが0バイト、または他のタイムステップと比べて極端に小さくないかも確認してください。
ls -lh *.vtk
まとめ
WSL2上のXLBが出力したVTKは、Windows側へコピーしなくても、次の流れでWindows版ParaViewから直接可視化できます。
XLBをWSL2で実行
↓
VTK出力フォルダで explorer.exe .
↓
Windows版ParaViewで File → Open
↓
Apply
↓
Representation: Surface
Coloring: u_magnitude
↓
+Z / -Z、Reset Camera、Rescale to Data Range
最初はu_magnitudeを色で表示し、慣れてきたら時系列再生、スクリーンショット保存、速度ベクトルのGlyph表示へ進むと理解しやすくなります。