Rescale で Gnuplot を使用してシミュレーションの結果を自動化および視覚化する

グラフ
経歴
HPC アプリケーションの実行を担当する多くのエンジニアは、通常、シミュレーションを監視して、計算が期待どおりに進んでいることを確認したり、解の誤差が一般的なエンジニアリング エラーのしきい値を下回ったかどうかを判断したり、シミュレーションしている物理現象の整合性を検証したりすることに熱心に取り組んでいます。 ほとんどの商用アプリケーションは、グラフィカル駆動インターフェイス内でこの種のデータを何らかの形式で視覚化またはプロットする機能を提供していますが、プロットのオプションは通常限られており、プロット自体は魅力的ではないか、他の人に結果を提示したり文書化するのには適していません。
Gnuplot は、いくつかのプラットフォーム用に存在するポータブルなコマンドライン駆動のグラフィック ユーティリティで、元々は科学者や学生が数学関数やデータをインタラクティブに視覚化できるように作成されましたが、その後、多くの非インタラクティブな使用をサポートするように成長しました。 Gnuplot には、ユーザーがプロット作成を自動化し、素晴らしいプロットを作成できるようにするいくつかの利点があります。 ユーザーは、さまざまな関数やデータセット間で再利用できるスクリプトまたはテンプレートをセットアップできます。 これらのスクリプトは、プロットのフォーマット方法、使用されるデータの解析方法などを定義できます。 Gnuplot の多用途性は、図に示す例で強調されています。 1   5.

matlab_line_colors_2014
図 1: デフォルトの Matlab R2014 の線色でプロットされた次数 XNUMX から次数 XNUMX までのバッセル関数
クラインボトル
図 2: クラインの壷
ワールドカラー3D (1)
図 3: Natural Earth II の世界の陰影起伏と水のプロット
equirectangular_projection
図 4: 世界の正距円筒図法
animate_bessel
図 5: ベッセル関数のアニメーション

分析の説明
エンジニアや科学者が Rescale で自分のシミュレーションをモニタリングするのに有益であると思われる方法で Gnuplot を使用することを実証するために、出版に適した結果のプロットを生成することに加えて、単純な 3D レイノルズ平均ナビエ ストークス (RANS) シミュレーションを以下を使用して実行します。スタンフォード大学の非構造化 (SU2) オープンソースの有限体積ソルバー。 プロットは、CFD シミュレーション全体で監視されるソリューション残差と空気力学係数メトリクスの両方について、Gnuplot を使用して定期的に生成されます。 ユーザーは、実行中の特定のシミュレーションの [ジョブ ステータス] ページで生成されているプロットを表示できます。
このプロセスの概要は、最初に Gnuplot コマンドまたはスクリプト ファイルを定義することによって説明されます。このファイルでは、プロットの形式が定義され、プロット自体が生成されます。 この Gnuplot コマンド ファイル内では、Gnuplot にコマンド ファイルを定期的に再読み込みさせるための簡単なステートメントがファイルの最後に追加されています。 RANS シミュレーションが実行され、モニター ファイルが更新されると、Gnuplot はソルバーが終了するまで、更新されたシミュレーション結果を使用して新しいプロットを生成します。
この例では、ファイル SU2.gnu 使用されている。

リセット # ポストスクリプト 端末ポストスクリプトを設定 eps 拡張カラー サイズ 5.47,3.33 フォント ”Verdana, 12” 線幅 2 # カラー定義 境界線の幅を設定 1.5 スタイル ライン 1 を設定 lc rgb '4dbeee' lt 1 lw 2 シアン スタイル ライン 2 を設定 lc rgb 'a2142f ' lt 1 lw 2 レッド セット スタイル ライン 3 lc rgb 'd95319' lt 1 lw 2 オレンジ セット スタイル ライン 4 lc rgb 'edb120' lt 1 lw 2 イエロー セット スタイル ライン 5 lc rgb '77ac30' lt 1 lw 2 グリーン セット スタイルline 6 lc rgb '0072bd' lt 1 lw 2 blue set style line 7 lc rgb '7e2f8e' lt 1 lw 2 violet # キーセットキー右下左 # 軸セットスタイル line 11 lc rgb '808080' lt 1 set border 3 back ls 11 set tics nomirror outscale 0.75 # グリッド セット スタイル ライン 12 lc rgb '808080' lt 0 lw 1 グリッド バックを設定 ls 12 set xlabel 'Iteration' set ylabel 'Residual' set mxtics 2 set mytics 10 set datafile Separator ”,”形式を設定 '%g' 形式 y を設定 '10 %.0s}' 出力を設定 'residuals.eps' プロット 'history.plt' Every::4 u 1:12 t 'rho' wl ls 1, 'history.plt'毎::4 u 1:13 t 'x-mom' wl ls 2, 'history.plt' 毎::4 u 1:14 t 'y-mom' wl ls 3, 'history.plt' 毎::4 u 1:15 t 'z-mom' wl ls 4, 'history.plt' 毎::4 u 1:16 t 'エネルギー' wl ls 5, 'history.plt' 毎::4 u 1:17 t ' nu' wl ls 6 set ylabel 'リフト係数、CLift' 形式を設定 y '%g' 出力を設定 'lift.eps' プロット 'history.plt' Every::4 u 1:2 t 'CLift' wl ls 1 set ylabel 'ドラッグ係数、CDrag' set 出力 'drag.eps' プロット 'history.plt' Every::4 u 1:3 t 'CDrag' wl ls 2 set xlabel 'リフト係数、CLift' set ylabel 'リフトとドラッグの比率、 L/D' 出力を設定 'lift-drag.eps' プロット 'lift-drag.dat' u 1:2 t 'L/D' wls 1 一時停止 30 再読み込み

コマンド ファイルは、PostScript 端末が使用される端末設定を定義することから始まります。 Gnuplot 内ではいくつかの端末が利用可能で、Gnuplot プロンプトで「set Terminal」と入力すると、使用可能な端末がリストされます。 通常、ドキュメント内で使用するプロットを生成する場合は、postscript ターミナル オプションが推奨されます。 一方、出力を Web パブリッシングに使用する場合は、svg ターミナルと pngcairo ターミナルが推奨されます。 LATEX または TEX ドキュメント内に数式やテキストを統合するためのオプションも存在します。
次に、解の残差を含む 2 つのプロットで使用されている多数のメトリクスを区別しやすくするために、色付きのいくつかの線スタイルが定義されます。 キー (または凡例) は右下に配置され、テキストは左揃えになります。 軸の色 (グレー) と線の太さが指定され、目盛りの書式設定とその配置が指定されます。 プロットの書式設定オプションをすべて設定したら、SUXNUMX のhistory.plt ファイルを使用して実際のデータがプロットされ、シミュレーションの実行中にシミュレーションに関連付けられたデータが反復ごとに出力されます。
Gnuplot には、一見無限に見える一連の書式設定オプションが含まれています。 最初はオプションの数に圧倒されるかもしれませんが、好みに合わせてグラフが表示されるように設定してしまえば、それ以降のグラフに変更を加える必要はほとんどありません。 必要に応じて、特定のプロットの作成に使用されるデータまたは関数を更新するために必要な数行だけを編集できます。 したがって、これらのコマンド ファイルを再利用できると、長期的には貴重な時間を節約できます。
最後の XNUMX 行は XNUMX 秒の遅延を追加し、Gnuplot にコマンド ファイルを再度読み取るか実行するように促します。 データ ソース ファイルに追加されたデータは、次回コマンド ファイルが実行されるときにプロットに追加されます。 これにより、プロットされる内容が最新の変更で更新されます。
Rescale では、提供されたコマンド ファイルで Gnuplot を開始し、そのプロセスをバックグラウンドで配置し、ソルバーを実行する単純なラッパー スクリプトだけが必要です。 あるいは、Rescale でジョブを設定するときに、これらの個別のコマンドをソフトウェア設定ページの「コマンド」フィールドに追加することもできます。 SU2 を使用したこの特定の RANS シミュレーション例では、 るんす2 ラッパー スクリプトが使用されており、独自のカスタム スクリプトを作成するための例として役立ちます。
シミュレーションソリューション
ジョブセットアップ全体を複製して実行できます。 こちらをクリック。 シミュレーションの実行中に生成され利用可能なプロットの例を図に示します。 6   9.

残差
図 6: 解の残差履歴
持ち上げる
図 7: 揚力係数 (CLift) の履歴
かわいいです
図 8: 抗力係数 (CDrag) の履歴
リフトドラッグ
図 9: 抗力比 (L/D) 対揚力係数 (CLift) のプロット

まとめ
モデル化されている物理現象の整合性を検証するために、HPC アプリケーションから生成されたシミュレーション結果の後処理とレポートは、どのエンジニアや科学者にとっても多大な労力を要するプロセスとなる可能性があります。 Gnuplot は、出版に適した魅力的なプロットの生成に関わる作業の多くを自動化する非対話型の手段を提供します。 Rescale では、Gnuplot はどのシミュレーションにもアクセスでき、シミュレーションの実行中に重要な特定のメトリクスを簡単に視覚化して監視できるという追加の利点も提供します。
Rescale のクラウドベースの HPC プラットフォームでここで概説した例を今すぐ試してみてください。

類似の投稿