15. ターゲット:ParaView & CTH
15.1. はじめに
このチュートリアルでは、CTHのデータセット(spcthファイルと呼ばれる)を可視化する方法を紹介します。CTHはSandia National Laboratoriesで開発された、マルチマテリアル、大変形、強い衝撃波、固体力学のコードです。CTHに関するより完全な記事はこちら:http://www.sandia.gov/CTH/. CTH Spyplot ファイルはオイラー型、または構造メッシュのデータセットです。フラットメッシュまたはアダプティブメッシュリファインメント(AMR)であることがあります。
15.2. ParaViewのCTHリーダー
paraview
は非常に効率的にspcthファイルを読み込みます。すべてのマテリアルボリューム配列は0(0%を表す)から1(100%を表す)までの値をとります。これらは実際にはフロート(4バイト)またはダブル(8バイト)としてファイルに格納されています。paraview
はこれらを0から255の範囲で符号なしバイトに読み込みます。一般に、表面(コンターまたはスカラーによるクリップ)は10%程度にするのがよいでしょう。
15.3. CTH 部品抽出フィルタによる Contour の作成
目標は、材料の体積分率が10%になるようなコンターを作ることです。
paraview
を起動します。spcth_a.0.[0-3] を開きます。
すべての variables をオンにします。
Apply を実行します。
注意:
読み込まれたデータは3種類あります。
Volume data は CTH シミュレーションの構造データです。
Tracers は、マテリアルと共に移動するメッシュ上の点で、可変情報を含むことができます。
Marker は、マテリアルと一緒に移動する点のグループです。
Down Convert Volume Fraction がチェックされていることに注意してください。これは、ParaViewが体積分率を符号なしバイトとして保存することを意味します。

Y-
注:2つのマテリアルを互いに接触させるので、デフォルトの Volume Fraction Value では、いくつかのセルが重なって表示されます。これが嫌な場合は、値を 0.5 に変更します。
点での色付けは、セルでの色付けよりも滑らかになります。従って、着色するものについては、変数をポイントに変換することにします。
Filters/CTH/Extract CTH Parts.
Material Volume Fractions - 1 を除く、すべての Volume Array をオフにします。
Apply を実行します。
Filters → Alphabetical → Cell Data to Point Data.
Apply を実行します。
Coloring to Pressure を設定します。
パイプラインブラウザで、ボリュームデータを(つまり、生のcthデータをもう一度)選択します。
Filters → CTH → Extract CTH Parts.
Material volume fraction - 2 を除く、すべての Volume Array をオフにします。
Apply を実行します。
Representationを "Surface With Edges" に変更しました。

Representationを "Surface" に戻します。
マウスの左ボタン で、3Dビューを掴んで下にドラッグします。これにより、ブロックが下向きに回転します。
マウスの右ボタン で3Dビューを掴み、下にドラッグします。これでブロックの表面に近づくことができます。
8回目のタイムステップまで 再生 してください。

15.4. スカラーでのクリップフィルタを使った塗りつぶし等値空間の作成
私たちの目標は、マテリアルの体積分率が10%のソリッド3Dアイソボリュームを作成することです。これにより、オブジェクトをスライスすることができます。
ゼロから始めましょう。
Edit → Reset Session.
spcth_a.0.[0-3] を開きます。
すべての variables をオンにします。
Apply を実行します。
ここで、データをセルベースではなく、ポイントベースに移行してみたいと思います。
Filters → Alphabetical → Cell Data to Point Data.
Apply を実行します。
ここで、1つの材料体積を抽出します。ParaView は実際に材料体積率データを 0 から 255 までの符号なしバイトで読み込んでいます。10%で約25%、50%で128%です。10%でアイソボリュームを作成しましょう。
Filters → Common → Clip.
Clip Type を Scalar に設定します。
Scalars を Material volume fraction - 1 に設定します。
Value を 25 に設定します。
Apply を実行します。
Cell Data to Point Data フィルタの 表示設定 をオフにします。
Filters → Common → Slice.
Y Normal.
Apply を実行します。
Show Planeチェックボックスの 選択をはずします。
Coloring to Pressure を設定します。
次に、カラーマップを変更したいと思います。
View → Color Map Editor をクリックします。(編集メニューの下にショートカットアイコンがあります)
Preset アイコン(ハートのついた小さなフォルダー)をクリックします。
Rainbow Desaturated.
Apply を実行します。
Close.
Rescale to Custom Data Range (ソースの下の小さなアイコン)をクリックします。
設定範囲は 0~2e10 です。

パイプラインブラウザで Volume Data を選択します。
Filters → CTH → Extract CTH Parts.
Material volume fraction - 2 のみを選択します。
Apply を実行します。
Filters → Alphabetical → Cell Data to Point Data 。(これで各セルの色が滑らかになります)
Apply を実行します。
Coloring を Temperature (eV) に設定します。
この画像は3つのスライスを持ち、不透明度を0.5にして、Extract CTH Partsフィルタを温度で塗り分けているところです。

15.5. マテリアルインターフェイスフィルタによるフラグメントの解析
次の目標は、このシミュレーションによって生成されたフラグメントを解析することです。そのために、マテリアルインターフェイスフィルタを使用します。
もう一度、ゼロから始めましょう。
Edit → Reset Session.
spcth_a.0.[0-3] を開きます。
すべての変数をオンにします。
Apply を実行します。
このフィルタがやっかいです。次のように正確に行います。
Filters → CTH → Material Interface Filter.
Select Material Fraction Arrays で、Material volume fraction - 1 (ボール)を選択します。
Select Mass Arrays で、Mass (g) - 1 (材料の体積分率-1 の質量配列) を選択します。
Compute volume weighted average over で、Pressure と Temperature を選択します。
Compute mass weighted average over は空欄のままにしてください。
Apply を実行します。
10回目のタイムステップに進みます。
ペイントは Pressure で行います。
+Y

パイプラインブラウザの geometry iの表示設定をオフにします。これは、目玉をクリックすることで行います。
点のあるところがフラグメントの中心です。このフラグメントごとに統計を取っています。
パイプラインブラウザの geometry の表示設定をオンにします。
次に、スプレッドシートビューで統計情報を見てみましょう。
split vertical です。(このアイコンは3Dウィンドウの右上にあります)
Spreadsheet View
Pipeline Browser で、statistics の目玉をクリックします。
各行はフラグメントを表します。
スプレッドシートビューで、Mass 列をクリックします。これでスプレッドシートの並べ替えが完了しました。
一番大きなフラグメントは上段です。
一番上の行をクリックします。上の3Dビューで選択された状態になります。
3Dビューでクリックし、パイプラインブラウザで geometry の表示設定をオフにします。フラグメントのジオメトリが、選択された統計ポイントを隠しています。
なお、ジオメトリの不透明度を変更することで、この選択されたポイントを見ることができます。

15.6. セルデータの表示
次の目標は、個々のセルのデータを掘り下げて表示することです。これは、Hover Cells Onという機能で行います。
もう一度、ゼロから始めましょう。
Edit/Reset Session.
spcth_a.0.[0-3] を開きます。
すべての variables をオンにします。
Apply を実行します。
私たちが作業をするためには、ソリッドサーフェスが必要です。
Representation: Surface with Edges
Coloring を Pressure に設定します。
-Y
次に、ビューの左上セクションにある Hover Cells On アイコンをクリックします。
セルにカーソルを合わせ、停止します。セルのデータが画面に表示されます。
Hover Cells On が唯一機能し、データを提供する選択項目です。
データセットの途中のセルを見たい場合は、Clip, Slice, Clip by Scalar フィルタを使用してデータを取得します。

15.7. Plot over line
また、データセットを通る線に沿って2Dプロットを作成することもできます。以下はその方法です。
もう一度、ゼロから始めましょう。
Edit → Reset Session.
spcth_a.0.[0-3] を開きます。
すべての variables をオンにします。
Apply を実行します。
ここでも、作業するためのソリッドサーフェスが必要です。
Representation を Surface with Edges に設定します。
Coloring to Pressure を設定します。
-Y.
アルミの球が鉄のブロックに当たっているところが見えるようになりました。
Filters → Data Analysis → Plot Over Line.
Apply を実行します。
ブロックの内側で、関心のある領域を横切る線を水平に重ねたいと思います。これを行うには、サーフェスにセットしてから移動させます。
X Axisをクリックします。線が水平になり、データを通るようになりました。矢印の基部は右側、頭部は左側にあります。
カーソルをブロックの右端、上部の3/4の位置に合わせます。1 キーを押します。これでベースが移動しました。
カーソルをブロックの左端、上部の3/4の位置に合わせます。2 キーを押します。これで頭部の移動は完了です。

Plot Over Line フィルタが選択されたままであることを確認します。
Apply を実行します。
Properties タブで、プロットしない変数をすべて非選択にします。

Plot フィルタの実行方法の詳細は、チュートリアルの 5 章 に記載されています。
15.8. 密度を計算する
密度はCTHリーダーで非一様直線格子に対して計算されますが、AMRに対しては計算されません。以下は、AMRグリッドの計算方法です。
もう一度、ゼロから始めましょう。
Edit → Reset Session.
spcth_a.0.[0-3] を開きます。
すべての variables をオンにします。
セルの体積分率を0から1にする必要があるため、Down Convert Volume Fraction の選択を解除します。
Apply を実行します。
ここで、各セルの体積を計算します。
Cell Size.
Compute Volume にのみチェックを入れておきます。
Apply を実行します。
ここで、密度を計算します。
Filter → Common → Calculator を選択します。
Attribute Type を Cell Data に設定します。
出力配列 Density.
Expression を (Mass(g) - 2) / (Volume *(Material Volume Fraction - 2)) に設定します。
目標は、あるセル内の質量を、そのセルがこの物質である体積で割ることです。

図 15.1 アルミ板を滑るボール。ボールは黄色、板は密度によって塗られ、密度の変化を示しています。