新規購入お見積

PyTecplot:Tecplotのスクリプト

航空エンジニアである Paul Ferlemann は、NASAラングレー研究所の Hypersonic Airbreathing Propulsion Branch (HAPB) の研究員です。HAPB では、航空機の極超音速エアブリージング推進システム向けの高度な技術を開発するための研究を行なっています。研究の焦点は、広範な飛行マッハ数にわたって高い性能を持つ機体統合型エンジンの概念です。

 

課題

Paul は、112 の異なるゾーンで構成された複雑なジオメトリを使って作業していました。彼は露出した端のみを表示することを望んでいました。構造化データの場合、Tecplot 360 で境界線スタイルを調整すると、表示する各ゾーンの境界を指定することができます。各ゾーンにどの境界が表示されるのかを知ることが課題になります。112 ゾーンのスタイルを手動で調整するのは、煩雑で、エラーが発生しやすく、時間がかかります。同じプロセスを、はるかに複雑で、何千ものゾーンのあるさまざまなジオメトリで再現するなど論外です。

図1 : (左) すべてのエッジを表示した例。 (右) 露出端のみを表示した例

 

ソリューション

Paul は Tecplot 360 のマクロ言語を使い、このタスクをエッジ検出アルゴリズムを使用して自動化することにしました。そして、アルゴリズムの結果を使用し、マクロで各ゾーンのエッジの境界線設定を調整し、望んだとおりの結果を得ました。この解決策はうまくいきましたが、Tecplot 360 のマクロ言語は共有エッジを決定するのに必要なデータアクセスのために最適化されていません。その結果、スクリプトは 800 行以上になり、作成やデバッグが難しく、比較的小さいジオメトリ上で実行するにも 18 分かかりました。

Paul はこう言っています。「当時 (2011年) は Tecplot 360 のマクロ言語を使用して自動的に境界線のスタイルを設定して、露出端のみを表示することが唯一の選択肢で、少なくとも概念的にはかなり簡単なことに思えました。 (通常、ランチの前や大規模ケースの場合は夜間に実行していたため) マクロは「人の」時間を節約してくれた一方、効率的にインタラクティブに使用できないことにイライラしていました。」

 

PyTecplot ソリューション

Tecplot社のエンジニアが PyTecplot (Tecplot 360 2017 以降のリリースに含まれる Python API) を使用して Paul のエッジ検出アルゴリズムを書き直しました。Python はコンパクトで表現力豊かな言語であり、その結果、最終的なスクリプトは 200 行未満のコードになり、わずか 7.3 秒で実行されました!

「Tecplot のエンジニアが PyTecplot を使用して実装した同じアルゴリズムは、時間を飛躍的に短縮してくれました。今後、Tecplotスクリプトプロジェクトに PyTecplot を使うのが楽しみです。」と Paul は言っています。

 

結論

Tecplotマクロ言語と比較してみると、PyTecplot は記述しやすく、デバッグしやすく、かつ迅速に実行できます。PyTecplot は、TecPLUS に加入している Tecplot 360 ユーザーが利用可能です。関連動画やマニュアルについては、PyTecplot をご覧ください。