ソルバーの結果から Python などの外部プログラムで結果処理、抽出する方法
始めに
本記事は、次の両方の条件に当てはまる方向けの記事です。
- 何かしらのソルバーを使っている
- Python などの外部ツールで結果を処理している
HyperStudy は結果抽出、結果処理機能がありますが、すでにそれらを行うツールが開発済み、ということであれば、HyperStudy で一から設定をやり直すよりも、それらのツールを使う方が、効率が良い場合があると思うので、そういう方向けの記事になっています。
なお、外部ツールとしてエクセルを使っている場合については、こちらの記事があります。
https://community.altair.com/community/ja?id=kb_article_view&sysparm_article=KB0124398
仕組み
次のような仕組みで外部ツールを動作させます。
- タスクモデル 1 として通常のソルバー実行を行う
- タスクモデル 1 の出力ファイルをタスクモデル 2 に渡す
- 外部ツールに必要なファイルなども渡す
- 必要に応じてソルバースクリプトの登録
- タスクモデル 2 で外部ツールを動作させ、結果を得る
(クリックで拡大)
例題
この例題では、OptiStruct の出力ファイルである .out ファイルから、モデルの体積情報を、Python で取得するという内容を行ってみます。
Python の中身は、このようになっており、model01.out ファイルの
ここの値を取得して、標準出力に出力するようになっています。ちなみに私は、Python スクリプトの中身を 1mm も理解しておりません。また、Python を使わなくても HyperStudy の標準の機能で OptiStruct の .out ファイルから体積を取得することもできます。あくまで HyperStudy の使い方を示す例ですので、そのあたりはご容赦願います。
詳細は動画で説明しますが、このやり方の胆は、ほぼ「モデルの定義」に集約されます。次のように、タスクモデルは、ソルバーと外部ツールがあるため、最低でも 2個並びます。ソルバー出力ファイルや、外部ツールに必要なファイルをタスクモデル 2 にコピーします。
(クリックで拡大)
動画による説明
詳しくは動画でご確認ください。
動画ファイル .mp4 のダウンロード:
KB0124682_ソルバーの結果から Python などの外部プログラムで結果処理、抽出する方法.mp4
この例題の HyperStudy アーカイブファイル: Study_1.hstx