Welcome to PyFemtet’s documentation!
概要
PyFemtet は ムラタソフトウェア製 CAE ソフト Femtet の拡張機能を提供します。
PyFemtet はオープンソースライブラリであり、無償かつ商用利用可能です。
このライブラリは現状のまま提供され、いかなる保証もいたしません。
PyFemtet は Femtet 本体のライセンスを一切変更しません。
評価のための試用版 Femtet は ムラタソフトウェア にお問い合わせください。
重要
PyFemtet 0.x をご利用中の皆様へ
PyFemtet バージョン 1 では、ユーザビリティと保守性等の向上のため、関数や引数の仕様が変更される予定です。詳しくは、以下のページをご覧ください。
PyFemtet の主要な機能
PyFemtet は Femtet の Python マクロインターフェースを利用して機能を提供するライブラリです。現在、 PyFemtet の唯一の機能は設計パラメータの最適化 であり、pyfemtet.opt サブパッケージとして実装されています。
pyfemtet.opt は、以下の特徴を有します。
単目的および多目的の最適化
プロセスモニタによるリアルタイム進行状況の表示
複数の Femtet インスタンスによる並列計算
Excel 等で分析が容易な csv 形式での結果出力
例題
Tip
例題 セクションにより多くの実施例があります。
シンプルな API
下記は多目的最適化の実施例です。add_parameter() と add_objective() で問題を設定し、optimize() で実施することができます。それ以外は通常の Femtet のマクロスクリプトを使用します。詳細な実施例は 使い方 セクションを確認してください。
from pyfemtet.opt import FEMOpt
def max_displacement(Femtet):
dx, dy, dz = Femtet.Gogh.Galileo.GetMaxDisplacement()
return dy
def volume(Femtet):
w = Femtet.GetVariableValue('w')
d = Femtet.GetVariableValue('d')
h = Femtet.GetVariableValue('h')
return w * d * h
if __name__ == '__main__':
femopt = FEMOpt()
femopt.add_parameter('w', 10, 2, 20)
femopt.add_parameter('d', 10, 2, 20)
femopt.add_objective(max_displacement, name='max_displacement', direction=0)
femopt.add_objective(volume, name='volume', direction='minimize')
femopt.optimize(n_trials=20)

