ソルバーの結果から Python などの外部プログラムで結果処理、抽出する方法

altair_fukuoka
altair_fukuoka
Altair Employee

始めに

本記事は、次の両方の条件に当てはまる方向けの記事です。

  • 何かしらのソルバーを使っている
  • Python などの外部ツールで結果を処理している

 

HyperStudy は結果抽出、結果処理機能がありますが、すでにそれらを行うツールが開発済み、ということであれば、HyperStudy で一から設定をやり直すよりも、それらのツールを使う方が、効率が良い場合があると思うので、そういう方向けの記事になっています。

 

なお、外部ツールとしてエクセルを使っている場合については、こちらの記事があります。

https://community.altair.com/community/ja?id=kb_article_view&sysparm_article=KB0124398

 

仕組み

次のような仕組みで外部ツールを動作させます。

 

  1.  タスクモデル 1 として通常のソルバー実行を行う
  2.  タスクモデル 1 の出力ファイルをタスクモデル 2 に渡す
    1.  外部ツールに必要なファイルなども渡す
    2.  必要に応じてソルバースクリプトの登録
  3.  タスクモデル 2 で外部ツールを動作させ、結果を得る

 

タスクモデルの流れ

(クリックで拡大)

 

例題

この例題では、OptiStruct の出力ファイルである .out ファイルから、モデルの体積情報を、Python で取得するという内容を行ってみます。

 

Python の中身は、このようになっており、model01.out ファイルの

image

 

ここの値を取得して、標準出力に出力するようになっています。ちなみに私は、Python スクリプトの中身を 1mm も理解しておりません。また、Python を使わなくても HyperStudy の標準の機能で OptiStruct の .out ファイルから体積を取得することもできます。あくまで HyperStudy の使い方を示す例ですので、そのあたりはご容赦願います。

image

 

詳細は動画で説明しますが、このやり方の胆は、ほぼ「モデルの定義」に集約されます。次のように、タスクモデルは、ソルバーと外部ツールがあるため、最低でも 2個並びます。ソルバー出力ファイルや、外部ツールに必要なファイルをタスクモデル 2 にコピーします。

タスクモデル

(クリックで拡大)

 

動画による説明

詳しくは動画でご確認ください。


 

動画ファイル .mp4 のダウンロード:

KB0124682_ソルバーの結果から Python などの外部プログラムで結果処理、抽出する方法.mp4

 

この例題の HyperStudy アーカイブファイル: Study_1.hstx