if 文を使って FEM 入力データを自由に書き換える方法

altair_fukuoka
altair_fukuoka
Altair Employee

はじめに

HyperStudy はパラメータ化ファイルと言う機能で、テキストファイルの数値を自由に書き換える手法があります。専用のエディタで数値を選ぶだけでパラメータ化できるのですが、

パラメータ化ファイル作成エディタ

 

実は Templex というプログラミング言語をテキストに埋め込んでいます。

https://2022.help.altair.com/2022/hwdesktop/hwd/topics/chapter_heads/templex_math_reference_guides_r.htm

 

そして Templex は数値を書き換えるだけではなく、プログラミング言語ですので if 文もあります。

https://2022.help.altair.com/2022/hwdesktop/hwd/topics/reference/templex/if.htm

 

これを使うと、ありとあらゆるテキストファイルを自由自在に書き換えることができます。FEM 入力ファイルをテキストファイルですので、自由自在にモデルを変更できるというわけです。

 

実践例: Templex 命令を埋め込む

本記事では、この RBE2 のオンオフのできる Templex 命令を考えていきたいと思います。

モデル

 

まずオンオフを決めるための設計変数を定義します。rbe2_1 と言う変数で、1 の時に一つの RBE2 が有効、1でないなら無効と使用と思います。

{parameter(rbe2_1, rbe2_1, 1, 0, 1)}

https://2022.help.altair.com/2022/hwdesktop/hwd/topics/reference/templex/parameter.htm

 

if 文を使って 1のときのみ RBE2 を書き出すようにします。{if} ~ {endif} までの間は、rbe2=1 以外のときには何も出力されません。つまりこの RBE2 は消えます。

{if(rbe2_1 == 1)} RBE2           1       2  123456      30         {endif}

https://2022.help.altair.com/2022/hwdesktop/hwd/topics/reference/templex/if.htm

 

これを必要な数だけ繰り返せば、自由自在にモデルの書き換えが可能です。

 

あ、この作業は好きなテキストエディタで行ってください。最初に張り付けた HyperStudy のテキストエディタでも構いません( if に関して特別な機能はありません )

 

HyperStudy での設定

このモデルはパラメータ化ファイルとして使うことができます。

モデル選択

 

この手の問題の場合は、設計変数を整数の離散値にするのが都合が良いと思います。

入力変数

 

これで DOE なり最適化なり行えば OK です。

一度にいろんなパターンを計算してみた例

 

このテキストファイルのダウンロードはこちら: model01.tpl

 

アルテアジャパン公式製品リンク

https://www.altairjp.co.jp/hyperstudy/