ParaView Catalyst †可視化ソフトウェアParaViewには、解析ソルバーの計算と連携して、計算しながら可視化処理を行う(in situと呼ばれる)機能として、ParaView Catalystがあります。 ここでは ParaViewCatalystGuide-5.8.1.pdf に基づいて説明します。 シミュレーションユーザのためのParaView Catalyst †ここでは、シミュレーションを行うユーザの観点から、ParaView Catalystについて説明します。Catalystは、従来の可視化方法と異なり、数値シミュレーションを行いながら、有用な可視化結果を効率的に抜き出します。 ParaView Catalystでは、前処理ステップとして、ユーザがシミュレーションからの可視化結果と出力結果を指定します。指定した出力データは、シミュレーション中に生成され、ユーザは後で分析します。Catalystは様々な出力を行えます。例えば、変数で色付けされたレンダー画像やプロット図(例、棒グラフ、線プロット図など)、データの抜き出し(例、等値面、切断面、流跡線など)や、計算量(例、翼の揚力、最大応力、流率など)。Catalystのゴールは、与えられた物理問題に対して有用な知見を得るまでの時間を短縮することであり、シミュレーション中に従来の可視化処理を行うことで、これを達成しようというものです。この改善されたワークフローは、in situの結果をParaView Catalystを使って行いますが、ユーザはParaViewに慣れている必要はありません。Catalystの前処理ステップにおける設定は、所望の出力を生成するための一般的な情報(例えば、等値面に対しては、変数名と等値面の値)があればよく、また、出力は画像ファイルやユーザが慣れているファイル形式に書き出すことが可能です。 ユーザがCatalystを使ってin situの分析と可視化を行うには、主に2つの方法があります。1つ目は、事前に設定されたCatalyst pipelineに渡すパラメータを指定する方法です。もう一つは、ParaViewのGUIを使って、Catalyst pipelineスクリプトを作成する方法です。 事前に設定されたParaView Catalyst Pipeline †事前に設定されたCatalyst pipelineは、シミュレーション開発者が作成するので、開発者の負担は大きくなりますが、ユーザにとっては簡単になります。事前に設定されたpipelineを使用すると、Catalystをシミュレーションコードと一緒に使用する障壁を下げることができます。これにより、ほとんどのフィルターに対して、設定に必要なパラメータを制限することができます。例えば、Sliceフィルターに対しては、ユーザは、切断面を定義する点と法線だけを指定します。他の例として、thresholdフィルターでは、変数名と値の範囲だけを指定します。ただ、各pipelineに対しては、出力するファイル名と出力頻度もパラメータに含める必要があります。これらのパラメータは、ユーザがシミュレーションの入力を作成する通常のワークフローに含めさせることもできるでしょう。 ParaViewでParaView Catalystスクリプトを作成 †事前に設定されたスクリプトを使用することの欠点は、シミュレーション開発者がそのスクリプトを作成した場合のみ有用であるということです。このようなスクリプトは、ユーザが関心をもつであろう多くのユースケースを網羅することができますが、ユーザはより高い機能性や柔軟な制御を要求してくるようになります。また、シミュレーションユーザがParaViewのGUIを用いて、自分のCatalyst Pythonスクリプトのパイプラインを作成できるのは有用です。 古いCatalystScriptGeneratorプラグインはバージョン5.5以降はなくなりましたので、ご注意ください。このプラグインで作成されていたメニューは、ParaViewから直接使用できましたが、今は廃止されており、代わりにCatalyst Panelが追加されています。 ParaViewのGUIでCatalyst Pythonスクリプトを作成するためには、2つの前提条件があります。1つ目は、スクリプトを作成するParaViewのバージョンは、シミュレーションコードと一緒に走るParaView Catalystのバージョンと同じである必要があります。2つ目の前提条件は、ユーザがシミュレーション開始時に代表的なデータセットを持っていることです。これの意味するところは、データセットをディスクからParaViewに読み込んだとき、データセットのタイプ(例えば、vtkUnstructuredGrid, vtkImageDataなど)やメッシュ上で定義されたアトリビュートがシミュレーションのアダプターコードがシミュレーション中にCatalystに渡すものと同じ必要があるということです。形状と値の範囲は、シミュレーションの実行から得られるものと同等であると理想的です。ParaView GUiでCatalystのPythonパイプラインを作成する手順は以下の通りです: 1. 最初に、代表的なデータセットを読み込み、パイプラインを作成します。 2. sourceの名前(すなわち、input connectionのないパイプラインオブジェクト)をアダプターが作成するデータの記述内容と同じ名前に変更します。アダプターが"input1"というメッシュを生成するときは、パイプラインブラウザにあるreaderの名称を"input1"に変更します。通常は、"Sources"メニューに含まれるsourceは含まないことに注意しましょう。これは、必要となるオブジェクト(例えばstreamlineの種)は、生成したPythonスクリプトの中で生成するからです。 3. Catalystパイプラインが生成されたら、出力の設定をします。このステップでは、どのデータを出力し、画像を生成するかを指定します。これは、Catalist > Define Export で表示される、Catalyst Export Inspectorから行います。 このパネルには、3つのセクションがあります:
4. Python Scriptを生成します。これは、Catalyst > Export Catalyst ScriptでExport optionをクリックすることで行えます。 注意:Catalystパネルの内容は、ParaViewのstateファイルに保存されます。したがって、修正したいときに、全体のスクリプトを設定し直す必要はありません。 代表的なデータセットの作成 †代表的なデータセットを作成する方法はどうするのかという質問がよく聞かれます。これを行うには2つの方法があります。1つの方法は、全てのメッシュと全ての変数の情報を出力するスクリプトでCatalystとシミュレーションを走らせます。2つ面の方法は、ParaViewの中でsourcesとfilterを使います。GUIで作成できる最も簡単なメッシュは、image data grids (すなわち、uniform rectilinear grids)、polydataとunstructured gridsです。VTKについてよく知っている場合は、programmable sourceを使用して、全てのメッシュタイプのデータを作成できます。もし、multi-block gridが必要な場合は、Group Datasetsフィルターで複数のデータセットを1つにまとめることで作成可能です。次のステップは、付属のデータ情報を作成することです(i.e., point and/or cell data)。これは、Calculatorフィルターで容易に作成可能です。Calculatorフィルターで、1成分や3成分のデータを作成し、アダプターで与えられる配列名と同じ配列名をつけ、適切な値の範囲を設定します。これが完了したら、ユーザーはこれを保存してからファイルを読み込んで、readerがパイプラインのソースとして機能するようにします。 Pythonスクリプトの操作 †Pythonのプログラミングになれているユーザであれば、与えられたスクリプトを好きなように修正することをお勧めします。以下の情報は、これを行うために役立ちます:
|