はじめに

歴史

最初のバージョンの Catalyst は VTK ライブラリに大きく依存していたため、VTK に関する高度な知識と、それをシミュレーションコードにリンクする方法が必要でした。時間の経過と利用を通じて、私たちはこの最初のアプローチのさまざまな欠点を目にし、新しいアーキテクチャ Catalyst API を作成することにしました。

この新しい実装では、次のようになります。

  • シミュレーションに 実装しやすく (必要な知識が少ない)

  • バージョン間での 更新が容易 (依存関係が少なく、バイナリ互換性を持つ)

  • ParaView がランタイム中にシミュレーションパラメータを変更できる Steering モードを有効にすることが可能

この進化の詳細については、Background セクションを参照してください。

概要

Catalyst 対応シミュレーションの使用

As the simulation user, you just have to provide an usual ParaView Python script, as described in pvpython 入門. The easiest way to do is to open a representative dataset in ParaView. Then create a pipeline and visualization. Finally File > Save Catalyst State.

これで ParaView の全機能を活用できます!意味のあるデータを保存する際は、Extractors を使うことを忘れないでください。

スクリプトを保存する際に Live Visualization を有効にすることもできます。このモードでは、ParaView アプリケーションをリモートシミュレーションに接続し、まるで各タイムステップごとに自動更新されるファイルを開いたかのようにリアルタイムで結果を確認できます。さらに Live Visualization では、いくつかの Steering パラメータを設定して、実行中のシミュレーションを制御することも可能です。

しかも、この操作はシミュレーションのデータファイルをディスクに書き出すことなく行われます!

シミュレーションへの組み込み

シミュレーション側では、主な作業は Conduit ライブラリを使ってデータを記述することです。この記述により、ParaView はシミュレーションのメモリをコピーせずにラップすることが可能です。その後、この記述を catalyst_execute メソッドを通して ParaView に渡し、解析を実行したいタイミング(通常はシミュレーションのメインループ内)で呼び出す必要があります。

初期化パスでは、ユーザー定義の Python スクリプトを転送することを忘れないでください。

このスクリプトは分散環境で実行でき、MPI 通信を使用することが可能です。

専用の MPI ノードで解析を実行したい場合は、AdiosCatalyst バリアントを使用し、in transit 解析に移行してください。これは、可視化部分で GPU ノードを活用する際に有用です。

リソース

  • Catalyst API ドキュメント

  • AdiosCatalyst は、ParaViewCatalyst2 の in transit 実装用コードです

  • Catalyst2の歴史については、 Catalyst revised を参照のこと。

  • ParaView リポジトリからの、シミュレーションコードでの Contextual examples 使用例

  • Getting Started では、これらの例の使用方法を示しています。

  • ParaView フォーラムの In Situ Category でコミュニティからサポートを受けることができます。